Files
dygou_go/internal/app/app_export_test.go
T
2026-07-29 14:02:56 +08:00

54 lines
1.2 KiB
Go

package app
import (
"os"
"path/filepath"
"strings"
"testing"
)
func TestWriteFileWithBackup(t *testing.T) {
dir := t.TempDir()
path := filepath.Join(dir, "user.txt")
original := []byte("# 账号\r\nfoo----bar----cookie\r\n")
updated := []byte("# 账号\r\n")
if err := os.WriteFile(path, original, 0640); err != nil {
t.Fatalf("写入原始账号文件失败: %v", err)
}
backupPath, err := writeFileWithBackup(path, updated)
if err != nil {
t.Fatalf("writeFileWithBackup 返回错误: %v", err)
}
if backupPath == "" {
t.Fatal("backupPath 为空")
}
got, err := os.ReadFile(path)
if err != nil {
t.Fatalf("读取更新后账号文件失败: %v", err)
}
if string(got) != string(updated) {
t.Fatalf("更新后账号文件内容 = %q, want %q", got, updated)
}
backup, err := os.ReadFile(backupPath)
if err != nil {
t.Fatalf("读取备份文件失败: %v", err)
}
if string(backup) != string(original) {
t.Fatalf("备份文件内容 = %q, want %q", backup, original)
}
entries, err := os.ReadDir(dir)
if err != nil {
t.Fatalf("读取临时目录失败: %v", err)
}
for _, entry := range entries {
if strings.HasSuffix(entry.Name(), ".tmp") {
t.Fatalf("发现残留临时文件: %s", entry.Name())
}
}
}