49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package logx
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestSetupWritesFile(t *testing.T) {
|
|
dir := t.TempDir()
|
|
logDir := filepath.Join(dir, "logs")
|
|
|
|
closer, err := Setup(logDir)
|
|
if err != nil {
|
|
t.Fatalf("Setup 失败: %v", err)
|
|
}
|
|
log.Printf("hello-logx-%d", 42)
|
|
if err := closer.Close(); err != nil {
|
|
t.Fatalf("关闭失败: %v", err)
|
|
}
|
|
|
|
entries, err := os.ReadDir(logDir)
|
|
if err != nil || len(entries) != 1 {
|
|
t.Fatalf("日志目录应有 1 个文件, 实际 %d: %v", len(entries), err)
|
|
}
|
|
data, err := os.ReadFile(filepath.Join(logDir, entries[0].Name()))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !strings.Contains(string(data), "hello-logx-42") {
|
|
t.Fatalf("日志未落盘,文件内容: %q", string(data))
|
|
}
|
|
}
|
|
|
|
func TestSetupCreatesFileImmediately(t *testing.T) {
|
|
dir := t.TempDir()
|
|
closer, err := Setup(dir)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer closer.Close()
|
|
entries, err := os.ReadDir(dir)
|
|
if err != nil || len(entries) != 1 {
|
|
t.Fatalf("Setup 后应立刻存在当天日志文件: %v %d", err, len(entries))
|
|
}
|
|
}
|