diff --git a/templates/components/continue_watching.gohtml b/templates/components/continue_watching.gohtml
index 38b52c21..c6ba6a7c 100644
--- a/templates/components/continue_watching.gohtml
+++ b/templates/components/continue_watching.gohtml
@@ -30,7 +30,7 @@
-
+
{{$title}}
diff --git a/templates/renderer_test.go b/templates/renderer_test.go
index e32cdc3e..d40b4cde 100644
--- a/templates/renderer_test.go
+++ b/templates/renderer_test.go
@@ -2,8 +2,10 @@ package templates
import (
"bytes"
+ "database/sql"
"encoding/json"
"mal/integrations/jikan"
+ "mal/internal/db"
"mal/internal/domain"
"net/http/httptest"
"strings"
@@ -254,3 +256,32 @@ func TestExecuteFragmentInvalidTemplate(t *testing.T) {
t.Fatal("expected error for missing template")
}
}
+
+func TestContinueWatchingTemplateIncludesAnimeDetailsLink(t *testing.T) {
+ r, err := ProvideRenderer()
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ var buf bytes.Buffer
+ err = r.ExecuteFragment(&buf, "index.gohtml", "continue_watching", []db.GetContinueWatchingEntriesRow{
+ {
+ AnimeID: 321,
+ TitleOriginal: "Original Title",
+ TitleEnglish: sql.NullString{String: "English Title", Valid: true},
+ ImageUrl: "https://example.com/poster.webp",
+ CurrentEpisode: sql.NullInt64{Int64: 7, Valid: true},
+ },
+ })
+ if err != nil {
+ t.Fatalf("ExecuteFragment error: %v", err)
+ }
+
+ body := buf.String()
+ if !strings.Contains(body, `href="/anime/321"`) {
+ t.Fatalf("continue watching card should include anime details link:\n%s", body)
+ }
+ if !strings.Contains(body, `href="/anime/321/watch?ep=7"`) {
+ t.Fatalf("continue watching card should keep watch link:\n%s", body)
+ }
+}