~bigbes/lethe

ref: 8aeda698dc352ac3d1e93b667f56ad5dbd68d8b9 lethe/cmd/lethe-collector/main_test.go -rw-r--r-- 1.5 KiB
8aeda698 — Eugene Blikh feat: add search UI layer — SearchTable, SearchFilters, SaveSearchForm, route, and styles 23 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package main

import (
	"log/slog"
	"testing"
)

func TestBuildLogger_ValidLevels(t *testing.T) {
	for _, level := range []string{"debug", "info", "warn", "error"} {
		for _, format := range []string{"tint", "json", "human"} {
			logger, err := buildLogger(level, format)
			if err != nil {
				t.Fatalf("buildLogger(%q, %q) unexpected error: %v", level, format, err)
			}
			if logger == nil {
				t.Fatalf("buildLogger(%q, %q) returned nil logger", level, format)
			}
		}
	}
}

func TestBuildLogger_InvalidLevel(t *testing.T) {
	_, err := buildLogger("fatal", "json")
	if err == nil {
		t.Fatal("expected error for invalid level")
	}
}

func TestBuildLogger_InvalidFormat(t *testing.T) {
	_, err := buildLogger("info", "xml")
	if err == nil {
		t.Fatal("expected error for invalid format")
	}
}

func TestBuildLogger_LevelEnforced(t *testing.T) {
	logger, err := buildLogger("error", "human")
	if err != nil {
		t.Fatalf("unexpected error: %v", err)
	}
	if logger.Enabled(nil, slog.LevelInfo) {
		t.Fatal("error-level logger should not enable info")
	}
	if !logger.Enabled(nil, slog.LevelError) {
		t.Fatal("error-level logger should enable error")
	}
}

func TestBuildParsers_RegistersSupportedTools(t *testing.T) {
	parsers := buildParsers("laptop")
	for _, tool := range []string{"claude-code", "opencode"} {
		p, ok := parsers[tool]
		if !ok {
			t.Fatalf("parser %q is not registered", tool)
		}
		if got := p.Tool(); got != tool {
			t.Fatalf("parser %q Tool() = %q", tool, got)
		}
	}
}