fix(test): let the README link check stand down where there is no README
The check I added for `?template=` links read README.md unconditionally, and the image build is the one place that runs this suite without it: `.dockerignore` omits the README along with docs/ and AGENTS.md, so that editing a doc does not invalidate the layer that installs, typechecks, tests and builds. `.github/` is copied in for the opposite reason, which is why every other check in the file ran there fine. So this failed in a way CI could not see — the check job has the whole repository and stayed green, while the container build went red on a file that context leaves out on purpose. Skipping it there keeps the gate honest about what it can actually inspect; the assertion still runs in CI and locally, which is where a README link is edited in the first place. Verified by running the suite inside the build stage: 516 pass, 1 skip, 0 fail, against 517 pass and no skips in the full tree. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
d843c7cae7
commit
09716054f4
@@ -21,6 +21,21 @@ import {
|
|||||||
|
|
||||||
const DIR = ".github/ISSUE_TEMPLATE";
|
const DIR = ".github/ISSUE_TEMPLATE";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether the README is in this context at all.
|
||||||
|
*
|
||||||
|
* The image build runs this suite as its gate, and `.dockerignore` excludes the
|
||||||
|
* README along with `docs/` and `AGENTS.md` — deliberately, so that editing a
|
||||||
|
* doc does not invalidate the layer that installs, tests and builds. `.github/`
|
||||||
|
* is copied in for the opposite reason, which is why every other check here runs
|
||||||
|
* there unchanged.
|
||||||
|
*
|
||||||
|
* So the README check stands down where the file was left out on purpose, rather
|
||||||
|
* than failing the image on the absence of something that context does not ship.
|
||||||
|
* It still runs in CI and locally, which is where a README link gets edited.
|
||||||
|
*/
|
||||||
|
const HAS_README = await Bun.file("README.md").exists();
|
||||||
|
|
||||||
type Field = {
|
type Field = {
|
||||||
type: string;
|
type: string;
|
||||||
id?: string;
|
id?: string;
|
||||||
@@ -122,7 +137,7 @@ describe("the app's links into them", () => {
|
|||||||
expect(params.get("refreshed")).toBe("15 Aug 2026, 04:12 — 2 days ago");
|
expect(params.get("refreshed")).toBe("15 Aug 2026, 04:12 — 2 days ago");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("every template link in the README names a template that exists", async () => {
|
test.skipIf(!HAS_README)("every template link in the README names a template that exists", async () => {
|
||||||
// A `?template=` that names nothing lands the reader on the chooser instead,
|
// A `?template=` that names nothing lands the reader on the chooser instead,
|
||||||
// which looks close enough to working that nobody reports it.
|
// which looks close enough to working that nobody reports it.
|
||||||
const readme = await Bun.file("README.md").text();
|
const readme = await Bun.file("README.md").text();
|
||||||
|
|||||||
Reference in New Issue
Block a user