Skip to content

Commit 08161bf

Browse files
committed
fix: fix accessing atest web pages err
Signed-off-by: yuluo-yx <yuluo08290126@gmail.com>
1 parent 80189da commit 08161bf

File tree

4 files changed

+76
-5
lines changed

4 files changed

+76
-5
lines changed

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,6 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0
131131
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
132132
github.com/linuxsuren/go-fake-runtime v0.0.5 h1:x1qvuGMfly3L4BTwx6Hq5oUcuf/1u0kSVPzQylHHpwI=
133133
github.com/linuxsuren/go-fake-runtime v0.0.5/go.mod h1:hlE6bZp76N3YPDsKi5YKOf1XmcJy4rvf8EtkTLYRYLw=
134-
github.com/linuxsuren/go-service v0.0.2-0.20251117091849-c58edc8748d9 h1:w5prP6ROOxInPV38KL+0laf7ZDIHlidBerhrphHqWHU=
135-
github.com/linuxsuren/go-service v0.0.2-0.20251117091849-c58edc8748d9/go.mod h1:QX22v61PxpOfJa4Xug8qzGTbPjclDZFx2j1PlGLknJw=
136134
github.com/linuxsuren/go-service v0.0.2 h1:4pq+LEXs1/V6qBCVW749PZbaXSQb3dyz/VR+xsdf95o=
137135
github.com/linuxsuren/go-service v0.0.2/go.mod h1:QX22v61PxpOfJa4Xug8qzGTbPjclDZFx2j1PlGLknJw=
138136
github.com/linuxsuren/http-downloader v0.0.99 h1:fEu+HkHdYeLM932c7IfmuaDJqWxVU5sIEnS/Aln8h9o=

pkg/server/remote_server_test.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -883,6 +883,17 @@ func TestStoreManager(t *testing.T) {
883883
}
884884
})
885885

886+
t.Run("GetStores without extension config", func(t *testing.T) {
887+
server, clean := getRemoteServerInTempDirWithoutExtensions()
888+
defer clean()
889+
890+
reply, err := server.GetStores(ctx, &SimpleQuery{})
891+
assert.NoError(t, err)
892+
if assert.Equal(t, 1, len(reply.Data)) {
893+
assert.Equal(t, "local", reply.Data[0].Name)
894+
}
895+
})
896+
886897
t.Run("CreateStore", func(t *testing.T) {
887898
server, clean := getRemoteServerInTempDir()
888899
defer clean()
@@ -979,6 +990,23 @@ func getRemoteServerInTempDir() (server RunnerServer, call func()) {
979990
return
980991
}
981992

993+
func getRemoteServerInTempDirWithoutExtensions() (server RunnerServer, call func()) {
994+
dir, _ := os.MkdirTemp(os.TempDir(), "remote-server-no-extension")
995+
call = func() { os.RemoveAll(dir) }
996+
997+
themePath := filepath.Join(dir, "data", "theme")
998+
os.MkdirAll(themePath, 0755)
999+
os.WriteFile(filepath.Join(themePath, "simple.json"), []byte(simplePostman), 0755)
1000+
1001+
bindinPath := filepath.Join(dir, "data", "key-binding")
1002+
os.MkdirAll(bindinPath, 0755)
1003+
os.WriteFile(filepath.Join(bindinPath, "default.json"), binding, 0755)
1004+
1005+
writer := atest.NewFileWriter(dir)
1006+
server = NewRemoteServer(writer, newLocalloaderFromStore(), nil, nil, dir, 1024*1024*4)
1007+
return
1008+
}
1009+
9821010
type fakeLocalLoaderFactory struct {
9831011
}
9841012

@@ -1073,6 +1101,15 @@ func TestGetStoreKinds(t *testing.T) {
10731101
assert.Equal(t, 1, len(reply.Data))
10741102
}
10751103

1104+
func TestGetStoreKindsWithoutExtensionConfig(t *testing.T) {
1105+
server, clean := getRemoteServerInTempDirWithoutExtensions()
1106+
defer clean()
1107+
1108+
reply, err := server.GetStoreKinds(context.Background(), &Empty{})
1109+
assert.NoError(t, err)
1110+
assert.Empty(t, reply.Data)
1111+
}
1112+
10761113
func TestGetThemes(t *testing.T) {
10771114
server, clean := getRemoteServerInTempDir()
10781115
defer clean()

pkg/testing/store.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -278,10 +278,16 @@ func (s *storeFactory) GetStoreKinds() (kinds []StoreKind, err error) {
278278
storeConfig := &StoreConfig{}
279279

280280
var data []byte
281-
if data, err = os.ReadFile(path.Join(s.configDir, "data", "core", "extension.yaml")); err == nil {
282-
if err = yaml.Unmarshal(data, storeConfig); err == nil {
283-
kinds = storeConfig.Extensions
281+
if data, err = os.ReadFile(path.Join(s.configDir, "data", "core", "extension.yaml")); err != nil {
282+
// 扩展定义文件是可选的,首次启动缺失时返回空配置。
283+
if os.IsNotExist(err) {
284+
err = nil
284285
}
286+
return
287+
}
288+
289+
if err = yaml.Unmarshal(data, storeConfig); err == nil {
290+
kinds = storeConfig.Extensions
285291
}
286292
return
287293
}

pkg/testing/store_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package testing
1818

1919
import (
2020
"os"
21+
"path/filepath"
2122
"testing"
2223

2324
"github.com/stretchr/testify/assert"
@@ -48,6 +49,35 @@ func TestStoreFactory(t *testing.T) {
4849
assert.NoError(t, err)
4950
})
5051

52+
t.Run("GetStoreKinds when extension config missing", func(t *testing.T) {
53+
dir, err := os.MkdirTemp(os.TempDir(), "store-kind-missing")
54+
assert.NoError(t, err)
55+
defer os.RemoveAll(dir)
56+
57+
factory := NewStoreFactory(dir)
58+
kinds, err := factory.GetStoreKinds()
59+
assert.NoError(t, err)
60+
assert.Empty(t, kinds)
61+
})
62+
63+
t.Run("GetStoreKinds when extension config invalid", func(t *testing.T) {
64+
dir, err := os.MkdirTemp(os.TempDir(), "store-kind-invalid")
65+
assert.NoError(t, err)
66+
defer os.RemoveAll(dir)
67+
68+
coreDir := filepath.Join(dir, "data", "core")
69+
err = os.MkdirAll(coreDir, 0755)
70+
assert.NoError(t, err)
71+
72+
err = os.WriteFile(filepath.Join(coreDir, "extension.yaml"), []byte("items: ["), 0644)
73+
assert.NoError(t, err)
74+
75+
factory := NewStoreFactory(dir)
76+
kinds, err := factory.GetStoreKinds()
77+
assert.Error(t, err)
78+
assert.Nil(t, kinds)
79+
})
80+
5181
t.Run("GetStore", func(t *testing.T) {
5282
store, err := factory.GetStore("db")
5383
assert.Nil(t, err)

0 commit comments

Comments
 (0)