Files
dygou_go/internal/config/instance_test.go
T

50 lines
1.4 KiB
Go

package config
import (
"path/filepath"
"testing"
)
func TestAcquireInstancePathsSeparatesConcurrentInstances(t *testing.T) {
baseDir := t.TempDir()
t.Setenv("DOUYU_DATA_DIR", baseDir)
t.Setenv("DOUYU_CONFIG", "")
t.Setenv("DOUYU_USERS", "")
t.Setenv("DOUYU_LOG_DIR", "")
t.Setenv("DOUYU_SUCCESS_DIR", "")
t.Setenv("devserver", "")
t.Setenv("frontenddevserverurl", "")
first, err := AcquireInstancePaths()
if err != nil {
t.Fatal(err)
}
defer first.Release()
if first.Name() != "默认实例" || first.Paths().DataDir != baseDir {
t.Fatalf("first instance = %q, %q", first.Name(), first.Paths().DataDir)
}
second, err := AcquireInstancePaths()
if err != nil {
t.Fatal(err)
}
defer second.Release()
wantSecondDir := filepath.Join(baseDir, "instances", "instance-2")
if second.Name() != "实例 2" || second.Paths().DataDir != wantSecondDir {
t.Fatalf("second instance = %q, %q", second.Name(), second.Paths().DataDir)
}
if second.Paths().LegacyConfigFile != "" || second.Paths().LegacyAccountFile != "" {
t.Fatal("附加实例不应迁移默认实例或旧工作目录数据")
}
first.Release()
reused, err := AcquireInstancePaths()
if err != nil {
t.Fatal(err)
}
defer reused.Release()
if reused.Name() != "默认实例" || reused.Paths().DataDir != baseDir {
t.Fatalf("reused instance = %q, %q", reused.Name(), reused.Paths().DataDir)
}
}