Skip to content

Commit 8cd6433

Browse files
committed
add more unit tests
1 parent 95c6d73 commit 8cd6433

File tree

7 files changed

+79
-14
lines changed

7 files changed

+79
-14
lines changed

pkg/server/remote_server.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ func NewRemoteServer(loader testing.Writer, storeWriterFactory testing.StoreWrit
122122
if secretServer == nil {
123123
secretServer = &fakeSecretServer{}
124124
}
125+
loader.WithUserConfigDir(configDir)
125126
GrpcMaxRecvMsgSize = grpcMaxRecvMsgSize
126127
return &server{
127128
loader: loader,
@@ -193,7 +194,7 @@ func resetEnv(oldEnv map[string]string) {
193194
}
194195
}
195196

196-
func (s *server) getLoaders(ctx context.Context) (loader []testing.Writer, err error) {
197+
func (s *server) getLoaders() (loader []testing.Writer, err error) {
197198
var stores []testing.Store
198199
if stores, err = testing.NewStoreFactory(s.configDir).GetStores(); err != nil {
199200
return
@@ -1449,7 +1450,7 @@ func (s *server) GetMenus(ctx context.Context, _ *Empty) (result *MenuList, err
14491450

14501451
result = &MenuList{}
14511452
var loaders []testing.Writer
1452-
if loaders, err = s.getLoaders(ctx); err != nil {
1453+
if loaders, err = s.getLoaders(); err != nil {
14531454
return
14541455
}
14551456

pkg/server/remote_server_test.go

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
Copyright 2024 API Testing Authors.
2+
Copyright 2024-2025 API Testing Authors.
33
44
Licensed under the Apache License, Version 2.0 (the "License");
55
you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@ import (
2121
"io"
2222
"net/http"
2323
"os"
24+
"path/filepath"
2425
"reflect"
2526
"sync"
2627
"sync/atomic"
@@ -950,10 +951,21 @@ func TestRemoteRunnerAdapter(t *testing.T) {
950951
assert.Error(t, err)
951952
}
952953

954+
//go:embed testdata/extension.yaml
955+
var extensionConfig []byte
956+
953957
func getRemoteServerInTempDir() (server RunnerServer, call func()) {
954958
dir, _ := os.MkdirTemp(os.TempDir(), "remote-server-test")
955959
call = func() { os.RemoveAll(dir) }
956960

961+
corePath := filepath.Join(dir, "data", "core")
962+
os.MkdirAll(corePath, 0755)
963+
os.WriteFile(filepath.Join(corePath, "extension.yaml"), extensionConfig, 0755)
964+
965+
themePath := filepath.Join(dir, "data", "theme")
966+
os.MkdirAll(themePath, 0755)
967+
os.WriteFile(filepath.Join(themePath, "simple.json"), []byte(simplePostman), 0755)
968+
957969
writer := atest.NewFileWriter(dir)
958970
server = NewRemoteServer(writer, newLocalloaderFromStore(), nil, nil, dir, 1024*1024*4)
959971
return
@@ -1039,3 +1051,32 @@ func (s *fakeServerStream) RecvMsg(m interface{}) error {
10391051

10401052
return nil
10411053
}
1054+
1055+
func TestGetStoreKinds(t *testing.T) {
1056+
server, clean := getRemoteServerInTempDir()
1057+
defer clean()
1058+
1059+
reply, err := server.GetStoreKinds(context.Background(), &Empty{})
1060+
assert.NoError(t, err)
1061+
1062+
assert.Equal(t, 1, len(reply.Data))
1063+
}
1064+
1065+
func TestGetThemes(t *testing.T) {
1066+
server, clean := getRemoteServerInTempDir()
1067+
defer clean()
1068+
1069+
themeServer, ok := server.(ThemeExtensionServer)
1070+
assert.True(t, ok)
1071+
1072+
reply, err := themeServer.GetThemes(context.Background(), &Empty{})
1073+
assert.NoError(t, err)
1074+
assert.Equal(t, 1, len(reply.Data))
1075+
1076+
var theme *CommonResult
1077+
theme, err = themeServer.GetTheme(context.Background(), &SimpleName{
1078+
Name: "simple",
1079+
})
1080+
assert.NoError(t, err)
1081+
assert.NotNil(t, theme)
1082+
}

pkg/server/testdata/extension.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
items:
2+
- name: atest-store-database
3+
dependencies:
4+
- name: atest-store-database
5+
link: https://github.com/LinuxSuRen/atest-ext-store-database
6+
params:
7+
- key: database
8+
defaultValue: 'atest'

pkg/testing/loader.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ type Loader interface {
2323
GetContext() string
2424
GetCount() int
2525
Reset()
26+
WithUserConfigDir(string)
2627

2728
Verify() (readOnly bool, version string, err error)
2829
PProf(name string) []byte

pkg/testing/loader_file.go

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,34 @@ var (
4141
)
4242

4343
type fileLoader struct {
44-
paths []string
45-
index int
46-
parent string
44+
paths []string
45+
index int
46+
parent string
47+
userConfigDir string
4748

4849
lock *sync.RWMutex
4950
}
5051

5152
// NewFileLoader creates the instance of file loader
5253
func NewFileLoader() Loader {
53-
return &fileLoader{index: -1, lock: &sync.RWMutex{}}
54+
return &fileLoader{
55+
index: -1,
56+
lock: &sync.RWMutex{},
57+
userConfigDir: home.GetUserConfigDir(),
58+
}
5459
}
5560

5661
func NewFileWriter(parent string) Writer {
57-
return &fileLoader{index: -1, parent: parent, lock: &sync.RWMutex{}}
62+
return &fileLoader{
63+
index: -1,
64+
parent: parent,
65+
lock: &sync.RWMutex{},
66+
userConfigDir: home.GetUserConfigDir(),
67+
}
68+
}
69+
70+
func (l *fileLoader) WithUserConfigDir(userConfigDir string) {
71+
l.userConfigDir = userConfigDir
5872
}
5973

6074
// HasMore returns if there are more test cases
@@ -529,7 +543,7 @@ func (l *fileLoader) GetRoundTripper(name string) (roundTripper http.RoundTrippe
529543
}
530544

531545
func (l *fileLoader) GetThemes() (result []string, err error) {
532-
dataDir := home.GetThemeDir()
546+
dataDir := filepath.Join(l.userConfigDir, "data/theme")
533547
_ = filepath.WalkDir(dataDir, func(path string, d os.DirEntry, err error) error {
534548
if err != nil {
535549
return err
@@ -544,7 +558,7 @@ func (l *fileLoader) GetThemes() (result []string, err error) {
544558
}
545559

546560
func (l *fileLoader) GetTheme(name string) (result string, err error) {
547-
dataDir := home.GetThemeDir()
561+
dataDir := filepath.Join(l.userConfigDir, "data/theme")
548562
themeFile := filepath.Join(dataDir, name+".json")
549563
var data []byte
550564
if data, err = os.ReadFile(themeFile); err == nil {

pkg/testing/loader_non.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ func NewNonWriter() Writer {
2727
return &nonLoader{}
2828
}
2929

30+
func (l *nonLoader) WithUserConfigDir(userConfigDir string) {
31+
// non-implement
32+
}
33+
3034
// HasMore returns if there are more test cases
3135
func (l *nonLoader) HasMore() bool {
3236
return false

pkg/util/home/common.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,6 @@ func GetUserDataDir() string {
3737
return filepath.Join(GetUserConfigDir(), "data")
3838
}
3939

40-
func GetThemeDir() string {
41-
return filepath.Join(GetUserConfigDir(), "data/theme")
42-
}
43-
4440
func GetBindingDir() string {
4541
return filepath.Join(GetUserConfigDir(), "data/key-binding")
4642
}

0 commit comments

Comments
 (0)