feat(credits): restore the CC BY-SA declaration as "License & reuse" (Option D1)

s0031 removed "About this work" to avoid duplicating it on the separate About
page, but that section WAS the D1 compliance — it declares the altered work is a
derivative offered under CC BY-SA 4.0, which is what satisfies the ShareAlike
obligation for the BY-SA source clips. Without it the live site credited the
BY-SA authors but never declared the derivative share-alike.

Restore the declaration on the credits page, under the heading "License & reuse"
instead of "About this work" so it isn't confused with the separate About page
(which covers the project's intent). Tests assert the declaration is present and
that the heading is NOT "About this work".

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
BenStullsBets
2026-06-30 09:23:57 -07:00
parent 8277417583
commit ee7c65a0f2
3 changed files with 27 additions and 9 deletions
+7 -5
View File
@@ -55,10 +55,12 @@ test("credits.html wires config.js + credits.js, the attributions container, and
assert.match(html, /href="index\.html"/); // back into the experience
});
test("credits.html notes footage is altered; the work-license declaration lives on the About page", () => {
test("credits.html carries the CC BY-SA derivative declaration (Option D1)", () => {
const html = fs.readFileSync(path.join(__dirname, "../static/credits.html"), "utf8");
assert.match(html, /altered/i); // modification indicated alongside the attributions
// The CC BY-SA work-license declaration ("About this work") moved off the credits
// page onto the About page — it must NOT be duplicated here.
assert.doesNotMatch(html, /CC BY-SA 4\.0/);
assert.match(html, /CC BY-SA 4\.0/); // the altered work's own license
assert.match(html, /altered/i); // states the footage is modified
// The section is NOT titled "About this work" — that name belongs to the separate
// About page; here the declaration lives under "License & reuse".
assert.doesNotMatch(html, /About this work/i);
assert.match(html, /License &amp; reuse/);
});