54 lines
1.2 KiB
Go
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())
|
|
}
|
|
}
|
|
}
|