43 lines
985 B
Go
43 lines
985 B
Go
package logging
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestNewSessionLogger(t *testing.T) {
|
|
logger, f, err := NewSessionLogger()
|
|
if err != nil {
|
|
t.Fatalf("NewSessionLogger() error: %v", err)
|
|
}
|
|
if f != nil {
|
|
defer f.Close()
|
|
defer os.Remove(f.Name())
|
|
}
|
|
if logger == nil {
|
|
t.Fatal("logger should not be nil")
|
|
}
|
|
if f == nil {
|
|
t.Fatal("file should not be nil")
|
|
}
|
|
dir := filepath.Dir(f.Name())
|
|
if !strings.Contains(dir, filepath.Join(".config", "ai-agent", "logs")) {
|
|
t.Errorf("log file should be in ~/.config/ai-agent/logs/, got %q", dir)
|
|
}
|
|
logger.Info("test message", "key", "value")
|
|
}
|
|
|
|
func TestNilLoggerNoPanic(t *testing.T) {
|
|
var called bool
|
|
logger, f, err := NewSessionLogger()
|
|
if err == nil && f != nil {
|
|
defer f.Close()
|
|
defer os.Remove(f.Name())
|
|
logger.Info("test")
|
|
called = true
|
|
}
|
|
_ = called
|
|
}
|