Files
dygou_go/internal/seckill/account_store_test.go
T

39 lines
978 B
Go

package seckill
import (
"os"
"path/filepath"
"testing"
)
func TestAccountStoreMigratesLegacyFile(t *testing.T) {
dir := t.TempDir()
legacy := filepath.Join(dir, "data", "user.txt")
target := filepath.Join(dir, "app-data", "accounts.txt")
content := []byte("# 旧账号\r\nfoo----password----cookie-a\r\n")
if err := os.MkdirAll(filepath.Dir(legacy), 0700); err != nil {
t.Fatal(err)
}
if err := os.WriteFile(legacy, content, 0600); err != nil {
t.Fatal(err)
}
store := NewAccountStore(target, legacy)
store.Load()
accounts := store.Snapshot()
if len(accounts) != 1 || accounts[0].Name != "foo" || accounts[0].Cookie != "cookie-a" {
t.Fatalf("迁移后的账号 = %#v", accounts)
}
if _, err := os.Stat(legacy); err != nil {
t.Fatalf("旧账号文件不应被删除: %v", err)
}
info, err := os.Stat(target)
if err != nil {
t.Fatal(err)
}
if info.Mode().Perm() != 0600 {
t.Fatalf("账号库权限 = %o, want 0600", info.Mode().Perm())
}
}