登録番組の定期確認を追加(24 時間ごと、予告の除外、確認エラーの記録)
This commit is contained in:
@@ -159,9 +159,12 @@ func TestSubscriptionMutationsWithoutHtmxRedirect(t *testing.T) {
|
||||
|
||||
func TestSubscriptionsPagePauseResumeDeleteAndEscaping(t *testing.T) {
|
||||
checked := time.Date(2026, 10, 4, 2, 30, 0, 0, time.UTC)
|
||||
failedAt := time.Date(2026, 10, 4, 3, 45, 0, 0, time.UTC)
|
||||
checkError := `<script>alert("error")</script> token=[REDACTED]`
|
||||
jobs := &fakeJobStore{subscriptions: map[string]store.Subscription{
|
||||
"sr1": {SeriesID: "sr1", SeriesTitle: `<script>alert(1)</script>`, Enabled: true,
|
||||
CreatedAt: time.Date(2026, 10, 3, 0, 0, 0, 0, time.UTC), LastCheckedAt: &checked, JobCount: 3},
|
||||
CreatedAt: time.Date(2026, 10, 3, 0, 0, 0, 0, time.UTC), LastCheckedAt: &checked,
|
||||
LastCheckErrorAt: &failedAt, LastCheckError: &checkError, JobCount: 3},
|
||||
"sr2": {SeriesID: "sr2", SeriesTitle: "別番組", Enabled: false, JobCount: 0},
|
||||
}}
|
||||
handler := newTestHandlerWithStore(&fakeFetcher{}, jobs, nil)
|
||||
@@ -170,13 +173,13 @@ func TestSubscriptionsPagePauseResumeDeleteAndEscaping(t *testing.T) {
|
||||
t.Fatalf("登録番組ページ: %d", page.Code)
|
||||
}
|
||||
body := page.Body.String()
|
||||
for _, want := range []string{"<script>", "登録日時: 2026-10-03 09:00 JST", "最終確認: 2026-10-04 11:30 JST", "最終確認: 未確認", "関連ジョブ: 3件", "有効", "一時停止", `hx-confirm="番組の登録を解除しますか?"`} {
|
||||
for _, want := range []string{"<script>", "登録日時: 2026-10-03 09:00 JST", "最終確認: 2026-10-04 11:30 JST", "最終確認: 未確認", "最後の確認エラー(2026-10-04 12:45 JST)", `<script>alert("error")</script> token=[REDACTED]`, "関連ジョブ: 3件", "有効", "一時停止", `hx-confirm="番組の登録を解除しますか?"`} {
|
||||
if !strings.Contains(body, want) {
|
||||
t.Errorf("登録番組の情報 %q がない", want)
|
||||
}
|
||||
}
|
||||
if strings.Contains(body, `<script>alert(1)</script>`) {
|
||||
t.Fatal("番組名がエスケープされていない")
|
||||
if strings.Contains(body, `<script>`) {
|
||||
t.Fatal("番組名または確認エラーがエスケープされていない")
|
||||
}
|
||||
paused := postForm(handler, "/subscriptions/sr1/pause", nil)
|
||||
if paused.Code != http.StatusOK || jobs.subscriptions["sr1"].Enabled || !strings.Contains(paused.Body.String(), `action="/subscriptions/sr1/resume"`) || strings.Contains(paused.Body.String(), "<html") {
|
||||
|
||||
Reference in New Issue
Block a user