package utils

import (
	"testing"
	"time"
)

func TestParseDateSupportsDMYAndMDY(t *testing.T) {
	cases := map[string]time.Time{
		"15/04/2026": time.Date(2026, time.April, 15, 0, 0, 0, 0, time.UTC),
		"04/16/2026": time.Date(2026, time.April, 16, 0, 0, 0, 0, time.UTC),
	}

	for input, expected := range cases {
		got, err := ParseDate(input)
		if err != nil {
			t.Fatalf("ParseDate(%q) returned error: %v", input, err)
		}
		if !got.Equal(expected) {
			t.Fatalf("ParseDate(%q) = %v, want %v", input, got, expected)
		}
	}
}

func TestParseDateSupportsRFC3339AndLowercaseMonthNames(t *testing.T) {
	cases := map[string]time.Time{
		"2026-04-24T10:30:00Z": time.Date(2026, time.April, 24, 10, 30, 0, 0, time.UTC),
		"15 april 2026":        time.Date(2026, time.April, 15, 0, 0, 0, 0, time.UTC),
	}

	for input, expected := range cases {
		got, err := ParseDate(input)
		if err != nil {
			t.Fatalf("ParseDate(%q) returned error: %v", input, err)
		}
		if !got.Equal(expected) {
			t.Fatalf("ParseDate(%q) = %v, want %v", input, got, expected)
		}
	}
}
