summaryrefslogtreecommitdiff
path: root/internal/reports/daterange_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/reports/daterange_test.go')
-rw-r--r--internal/reports/daterange_test.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/internal/reports/daterange_test.go b/internal/reports/daterange_test.go
index 69b0e4a..97678b6 100644
--- a/internal/reports/daterange_test.go
+++ b/internal/reports/daterange_test.go
@@ -192,6 +192,46 @@ func TestParseDateRange(t *testing.T) {
input: "july abcd",
wantErr: true,
},
+ {
+ name: "since format",
+ input: "since 2024-07-01",
+ wantErr: false,
+ validate: func(t *testing.T, dr DateRange) {
+ // Should start on July 1, 2024 with no end date
+ expectedStart := time.Date(2024, time.July, 1, 0, 0, 0, 0, time.UTC)
+ if !dr.Start.Equal(expectedStart) {
+ t.Errorf("Start = %v, want %v", dr.Start, expectedStart)
+ }
+ if !dr.End.IsZero() {
+ t.Errorf("End = %v, want zero time (no end date)", dr.End)
+ }
+ },
+ },
+ {
+ name: "since format case insensitive",
+ input: "SINCE 2024-12-25",
+ wantErr: false,
+ validate: func(t *testing.T, dr DateRange) {
+ // Should start on December 25, 2024 with no end date
+ expectedStart := time.Date(2024, time.December, 25, 0, 0, 0, 0, time.UTC)
+ if !dr.Start.Equal(expectedStart) {
+ t.Errorf("Start = %v, want %v", dr.Start, expectedStart)
+ }
+ if !dr.End.IsZero() {
+ t.Errorf("End = %v, want zero time (no end date)", dr.End)
+ }
+ },
+ },
+ {
+ name: "since format invalid date",
+ input: "since 2024-13-01",
+ wantErr: true,
+ },
+ {
+ name: "since format missing date",
+ input: "since",
+ wantErr: true,
+ },
}
for _, tt := range tests {
@@ -223,6 +263,11 @@ func TestParseDateRange(t *testing.T) {
return dateRange, nil
}
+ // Check for "since YYYY-MM-DD" format
+ if strings.HasPrefix(lowerDateStr, "since ") {
+ return parseSinceDateRange(dateStr)
+ }
+
// Check for custom date range format: "YYYY-MM-DD to YYYY-MM-DD"
if strings.Contains(dateStr, " to ") {
return parseCustomDateRange(dateStr)