package animeschedule import ( "strings" "testing" "time" "github.com/PuerkitoBio/goquery" ) func TestParseLocalTimeUsesRequestedTimezone(t *testing.T) { doc, err := goquery.NewDocumentFromReader(strings.NewReader(`

Ep 9 SUB

`)) if err != nil { t.Fatalf("parse document: %v", err) } location, err := time.LoadLocation("Europe/Copenhagen") if err != nil { t.Fatalf("load location: %v", err) } localTime, airsAt, _, rendered := parseLocalTime(doc.Find(".time-bar").First(), location) if localTime != "17:00" { t.Fatalf("localTime = %q, want %q", localTime, "17:00") } if rendered != "04:00 PM" { t.Fatalf("rendered = %q, want %q", rendered, "04:00 PM") } if airsAt.Location().String() != "Europe/Copenhagen" { t.Fatalf("airsAt location = %q, want Europe/Copenhagen", airsAt.Location().String()) } } func TestParseLocalTimeUsesExactAngelNextDoorSubRelease(t *testing.T) { doc, err := goquery.NewDocumentFromReader(strings.NewReader(`

Ep 10 SUB

`)) if err != nil { t.Fatalf("parse document: %v", err) } location, err := time.LoadLocation("Europe/Copenhagen") if err != nil { t.Fatalf("load location: %v", err) } localTime, _, _, _ := parseLocalTime(doc.Find(".time-bar").First(), location) if localTime != "16:30" { t.Fatalf("localTime = %q, want %q", localTime, "16:30") } } func TestPreferredReleaseEntriesPrefersSubForSameEpisode(t *testing.T) { entries := []Entry{ { Title: "Tensei shitara Slime Datta Ken 4th Season", AnimeURL: "https://animeschedule.net/anime/tensei-shitara-slime-datta-ken-4th-season", EpisodeText: "Ep 9", AirType: AirTypeJPN, LocalTime: "16:00", }, { Title: "Tensei shitara Slime Datta Ken 4th Season", AnimeURL: "https://animeschedule.net/anime/tensei-shitara-slime-datta-ken-4th-season", EpisodeText: "Ep 9", AirType: AirTypeSUB, LocalTime: "17:00", }, { Title: "Tensei shitara Slime Datta Ken 4th Season", AnimeURL: "https://animeschedule.net/anime/tensei-shitara-slime-datta-ken-4th-season", EpisodeText: "Ep 6", AirType: AirTypeDUB, LocalTime: "17:00", }, } got := preferredReleaseEntries(entries) if len(got) != 2 { t.Fatalf("len(got) = %d, want 2", len(got)) } if got[0].AirType != AirTypeSUB { t.Fatalf("first air type = %q, want %q", got[0].AirType, AirTypeSUB) } if got[1].AirType != AirTypeDUB { t.Fatalf("second air type = %q, want %q", got[1].AirType, AirTypeDUB) } }