package main import "testing" func TestCalculateEpisodeNumbers(t *testing.T) { db := openDatabaseSource(":memory:") // Ensure the DB is empty _, err := db.Exec("delete from videos") if err != nil { t.Error(err) } _, err = db.Exec("insert into videos (title, url, year, episode, run) values ('Video A', 'a', 2025, 1, 1), ('Video B', 'b', 2025, null, 2)") if err != nil { t.Error(err) } err = CalculateEpisodeNumbers(db) if err != nil { t.Error(err) } rows, err := db.Query("select title, episode from videos where year = 2025") if err != nil { t.Error(err) } var title string var episode int rows.Next() err = rows.Scan(&title, &episode) if err != nil { t.Error(err) } if title != "Video A" { t.Errorf("Title is %s, expected Video A", title) } if episode != 1 { t.Errorf("Episode is %d, expected 1", episode) } rows.Next() err = rows.Scan(&title, &episode) if err != nil { t.Error(err) } if title != "Video B" { t.Errorf("Title is %s, expected Video B", title) } if episode != 2 { t.Errorf("Episode is %d, expected 2", episode) } }