50 lines
1.4 KiB
Go
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)
|
|
}
|
|
}
|