From 626bbc46f9debf892ee250cd104fd37371f2e41e Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 3 Mar 2026 23:45:25 +0200 Subject: cli: harden report import error handling Capture deferred close errors and preserve parse failure context in import date parsing. --- internal/cli/work_test.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'internal/cli/work_test.go') diff --git a/internal/cli/work_test.go b/internal/cli/work_test.go index 9621bfb..2be0231 100644 --- a/internal/cli/work_test.go +++ b/internal/cli/work_test.go @@ -7,6 +7,7 @@ import ( "strconv" "strings" "testing" + "time" timrTimer "codeberg.org/snonux/timr/internal/timer" ) @@ -108,6 +109,28 @@ func TestWorkLoginLogoutWithTimerFlags(t *testing.T) { } } +func TestParseImportDateFallbackLayout(t *testing.T) { + parsed, err := parseImportDate("06.01.2026") + if err != nil { + t.Fatalf("parseImportDate() error = %v", err) + } + + expected := time.Date(2026, 1, 6, 0, 0, 0, 0, time.Local) + if parsed.Year() != expected.Year() || parsed.Month() != expected.Month() || parsed.Day() != expected.Day() { + t.Fatalf("parsed date = %v, want %v", parsed, expected) + } +} + +func TestParseImportDateIncludesUnderlyingParseError(t *testing.T) { + _, err := parseImportDate("not-a-date") + if err == nil { + t.Fatal("parseImportDate() error = nil, want error") + } + if !strings.Contains(err.Error(), "unsupported import date") { + t.Fatalf("parseImportDate() error = %v, want unsupported import date context", err) + } +} + func writeWorkConfig(t *testing.T, dbDir, host string) string { return writeWorkConfigWithAuto(t, dbDir, host, false) } -- cgit v1.2.3