fix: 修复 TestSaveAndLoadConfig 测试隔离问题,使用临时目录替代真实用户配置
This commit is contained in:
@@ -10,6 +10,7 @@ import (
|
|||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
"gopkg.in/yaml.v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestLoadConfig_DefaultValues(t *testing.T) {
|
func TestLoadConfig_DefaultValues(t *testing.T) {
|
||||||
@@ -135,21 +136,7 @@ func TestLoadConfig_AutoCreate(t *testing.T) {
|
|||||||
|
|
||||||
func TestSaveAndLoadConfig(t *testing.T) {
|
func TestSaveAndLoadConfig(t *testing.T) {
|
||||||
tmpDir := t.TempDir()
|
tmpDir := t.TempDir()
|
||||||
|
configPath := filepath.Join(tmpDir, "config.yaml")
|
||||||
homeDir, err := os.UserHomeDir()
|
|
||||||
require.NoError(t, err)
|
|
||||||
nexDir := filepath.Join(homeDir, ".nex")
|
|
||||||
configPath := filepath.Join(nexDir, "config.yaml")
|
|
||||||
|
|
||||||
originalConfig, err := os.ReadFile(configPath)
|
|
||||||
if err != nil && !os.IsNotExist(err) {
|
|
||||||
require.NoError(t, err)
|
|
||||||
}
|
|
||||||
defer func() {
|
|
||||||
if originalConfig != nil {
|
|
||||||
require.NoError(t, os.WriteFile(configPath, originalConfig, 0o600))
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
cfg := &config.Config{
|
cfg := &config.Config{
|
||||||
Server: config.ServerConfig{
|
Server: config.ServerConfig{
|
||||||
@@ -176,10 +163,13 @@ func TestSaveAndLoadConfig(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
err = config.SaveConfig(cfg)
|
data, err := yaml.Marshal(cfg)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
loaded, err := config.LoadConfig()
|
err = os.WriteFile(configPath, data, 0o600)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
loaded, err := config.LoadConfigFromPath(configPath)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, cfg.Server.Port, loaded.Server.Port)
|
assert.Equal(t, cfg.Server.Port, loaded.Server.Port)
|
||||||
|
|||||||
Reference in New Issue
Block a user