|
| 1 | +package util |
| 2 | + |
| 3 | +import ( |
| 4 | + "log/slog" |
| 5 | + "strings" |
| 6 | + "testing" |
| 7 | +) |
| 8 | + |
| 9 | +func assertLogLevel(t *testing.T, value string, level slog.Level) { |
| 10 | + actual := parseLogLevel(value) |
| 11 | + if actual != level { |
| 12 | + t.Errorf("Expected %s to parse as %s, but got %s", value, level, actual) |
| 13 | + } |
| 14 | +} |
| 15 | + |
| 16 | +func TestParseLogLevel(t *testing.T) { |
| 17 | + // Known verbosity levels. |
| 18 | + assertLogLevel(t, string(Errors), slog.LevelError) |
| 19 | + assertLogLevel(t, string(Warnings), slog.LevelWarn) |
| 20 | + assertLogLevel(t, string(Progress), slog.LevelInfo) |
| 21 | + assertLogLevel(t, string(Details), slog.LevelDebug) |
| 22 | + assertLogLevel(t, string(Spammy), slog.LevelDebug) |
| 23 | + assertLogLevel(t, string(Spammier), slog.LevelDebug) |
| 24 | + |
| 25 | + // Ignore case |
| 26 | + assertLogLevel(t, strings.ToUpper(string(Spammier)), slog.LevelDebug) |
| 27 | + assertLogLevel(t, strings.ToUpper(string(Errors)), slog.LevelError) |
| 28 | + |
| 29 | + // Other values default to LevelInfo |
| 30 | + assertLogLevel(t, "", slog.LevelInfo) |
| 31 | + assertLogLevel(t, "unknown", slog.LevelInfo) |
| 32 | + assertLogLevel(t, "none", slog.LevelInfo) |
| 33 | +} |
0 commit comments