0.2.48 - Tv calender fixes

This commit is contained in:
ponzischeme89
2026-08-11 12:08:51 +12:00
parent dd2dd497f2
commit f46d6596c5
47 changed files with 3415 additions and 125 deletions
+39 -3
View File
@@ -57,9 +57,9 @@ func TestBuildSonarrRowLinksTheEmbySeries(t *testing.T) {
now := time.Date(2026, 7, 27, 8, 0, 0, 0, location)
air := time.Date(2026, 7, 27, 20, 0, 0, 0, location)
index := seriesIndex{
"northbound": "emby-old",
"northbound|2024": "emby-2024",
"harbour": "emby-harbour",
"northbound": {ID: "emby-old"},
"northbound|2024": {ID: "emby-2024", LogoTag: "northbound-logo"},
"harbour": {ID: "emby-harbour"},
}
episode := func(title string, year int) sonarr.Episode {
utc := air
@@ -96,6 +96,42 @@ func TestBuildSonarrRowLinksTheEmbySeries(t *testing.T) {
}
}
func TestScheduleEpisodeEventNamesPremieresAndFinales(t *testing.T) {
tests := []struct {
name string
episode sonarr.Episode
want string
}{
{"season premiere", sonarr.Episode{SeasonNumber: 3, EpisodeNumber: 1}, "Season premiere"},
{"season finale", sonarr.Episode{SeasonNumber: 3, EpisodeNumber: 8, FinaleType: "seasonFinale"}, "Season finale"},
{"series finale", sonarr.Episode{SeasonNumber: 5, EpisodeNumber: 10, FinaleType: "seriesFinale"}, "Series finale"},
{"Sonarr season value", sonarr.Episode{SeasonNumber: 3, EpisodeNumber: 8, FinaleType: "season"}, "Season finale"},
{"mid-season finale", sonarr.Episode{SeasonNumber: 3, EpisodeNumber: 5, FinaleType: "midseason"}, "Mid-season finale"},
{"ordinary episode", sonarr.Episode{SeasonNumber: 3, EpisodeNumber: 4}, ""},
{"special", sonarr.Episode{SeasonNumber: 0, EpisodeNumber: 1}, ""},
}
for _, testCase := range tests {
t.Run(testCase.name, func(t *testing.T) {
if got := scheduleEpisodeEvent(testCase.episode); got != testCase.want {
t.Fatalf("event = %q, want %q", got, testCase.want)
}
})
}
}
func TestScheduleItemCarriesMatchedEmbyLogo(t *testing.T) {
episode := sonarr.Episode{
ID: 1, SeriesID: 7, SeasonNumber: 2, EpisodeNumber: 1,
Series: sonarr.Series{ID: 7, Title: "Northbound", Year: 2024},
}
item := toSonarrScheduleItem(episode, time.Now(), time.UTC, seriesIndex{
"northbound|2024": {ID: "emby-series", LogoTag: "logo-tag"},
})
if item.ParentLogoItemID != "emby-series" || item.ParentLogoImageTag != "logo-tag" {
t.Fatalf("matched logo was not carried: %+v", item)
}
}
func TestBuildPrerollScheduleSplitsTodayAndWeek(t *testing.T) {
location := time.FixedZone("NZST", 12*60*60)
now := time.Date(2026, 7, 28, 10, 0, 0, 0, location)