inital commit
This commit is contained in:
77
time_test.go
Normal file
77
time_test.go
Normal file
@@ -0,0 +1,77 @@
|
||||
package fa
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestParseFADate(t *testing.T) {
|
||||
must := func(layout, s string) time.Time {
|
||||
t.Helper()
|
||||
v, err := time.ParseInLocation(layout, s, time.UTC)
|
||||
if err != nil {
|
||||
t.Fatalf("setup: parse %q: %v", s, err)
|
||||
}
|
||||
return v
|
||||
}
|
||||
|
||||
cases := []struct {
|
||||
name string
|
||||
in string
|
||||
want time.Time
|
||||
}{
|
||||
{
|
||||
name: "standard popup_date",
|
||||
in: "Mar 17, 2026 04:21 PM",
|
||||
want: must("Jan 2, 2006 03:04 PM", "Mar 17, 2026 04:21 PM"),
|
||||
},
|
||||
{
|
||||
name: "ordinal suffix",
|
||||
in: "Mar 17th, 2026 04:21 PM",
|
||||
want: must("Jan 2, 2006 03:04 PM", "Mar 17, 2026 04:21 PM"),
|
||||
},
|
||||
{
|
||||
name: "no padding",
|
||||
in: "Mar 7, 2026 4:21 PM",
|
||||
want: must("Jan 2, 2006 3:04 PM", "Mar 7, 2026 4:21 PM"),
|
||||
},
|
||||
{
|
||||
name: "rfc3339",
|
||||
in: "2026-03-17T16:21:00Z",
|
||||
want: must(time.RFC3339, "2026-03-17T16:21:00Z"),
|
||||
},
|
||||
}
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
got, err := ParseFADate(tc.in)
|
||||
if err != nil {
|
||||
t.Fatalf("ParseFADate(%q) error = %v", tc.in, err)
|
||||
}
|
||||
if !got.Equal(tc.want) {
|
||||
t.Errorf("ParseFADate(%q) = %s; want %s", tc.in, got, tc.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseFADate_Empty(t *testing.T) {
|
||||
if _, err := ParseFADate(""); err == nil {
|
||||
t.Fatal("expected error for empty string")
|
||||
}
|
||||
}
|
||||
|
||||
func TestStripOrdinals(t *testing.T) {
|
||||
cases := map[string]string{
|
||||
"Mar 1st, 2026": "Mar 1, 2026",
|
||||
"Mar 2nd, 2026": "Mar 2, 2026",
|
||||
"Mar 3rd, 2026": "Mar 3, 2026",
|
||||
"Mar 4th, 2026": "Mar 4, 2026",
|
||||
"already clean": "already clean",
|
||||
"Mar 1st 2nd": "Mar 1 2",
|
||||
}
|
||||
for in, want := range cases {
|
||||
if got := stripOrdinals(in); got != want {
|
||||
t.Errorf("stripOrdinals(%q) = %q; want %q", in, got, want)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user