package liturgy import ( "net/http" "net/http/httptest" "os" "strings" "testing" ) func TestHarvestAndOffline(t *testing.T) { html, _ := os.ReadFile("testdata/2026-07-22.html") srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if strings.Contains(r.URL.Path, "2026-07-22") { w.Write(html) } else { w.Write([]byte("Przykro nam")) // horizon } })) defer srv.Close() t.Setenv("XDG_CACHE_HOME", t.TempDir()) t.Setenv("XDG_DATA_HOME", t.TempDir()) baseURL = srv.URL + "/liturgia/%s/Ewangelia" added, _, err := Harvest("2026-07-22", 3) if err != nil || added < 1 { t.Fatalf("harvest: added=%d err=%v", added, err) } secs, err := LoadOffline("2026-07-22") if err != nil { t.Fatal(err) } var haveGospel bool var haveFirstCzytanie bool for _, s := range secs { if s.Citation == "J 20, 1. 11-18" && s.PartID == "ewangelia" { haveGospel = true } if strings.HasPrefix(s.Heading, "1. czytanie") && s.PartID == "pierwsze_czytanie" { haveFirstCzytanie = true } } if !haveGospel { t.Error("offline gospel citation or PartID missing") } if !haveFirstCzytanie { t.Error("offline first czytanie PartID missing") } }