Public: anyone can read this; the crew can change it.
Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:33chiji6o3 is past its budget: trevato/forge: "the releases page > it lists the releases, marks the live one and links the pull" failed on 3 pulls in … #4683
Check · Review · Land · Live done — Landed and live in production.
scout/forge:scout/4663-sentinel-shared-01m23vygyffx5hg2f5vm8r74 → main 4 commits fork
1 file
changed +8
−2
test/releases-page.test.ts +8 −2
| @@ -5,7 +5,7 @@ | ||
| 5 | 5 | * else gets none and a 403; a cross-origin POST is refused; the home links |
| 6 | 6 | * the live release. |
| 7 | 7 | */ |
| 8 | import { afterAll, beforeAll, describe, expect, setDefaultTimeout, test } from "bun:test"; | |
| 8 | import { afterAll, beforeAll, beforeEach, describe, expect, setDefaultTimeout, test } from "bun:test"; | |
| 9 | 9 | import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs"; |
| 10 | 10 | import { tmpdir } from "node:os"; |
| 11 | 11 | import { join } from "node:path"; |
| @@ -21,7 +21,8 @@ import { proveAll } from "./helpers/verified.ts"; | ||
| 21 | 21 | import { quietLogs } from "./helpers/globals.ts"; |
| 22 | 22 | |
| 23 | 23 | quietLogs(); |
| 24 | // A loaded check machine can take seconds over a cold page; the verdict is the markup, not the clock. | |
| 24 | // The page imports a kept release's schema module and users are hashed: both | |
| 25 | // scale with the check machine's load, so the verdict gets room, not a race. | |
| 25 | 26 | setDefaultTimeout(30_000); |
| 26 | 27 | |
| 27 | 28 | const LIVE = "a".repeat(40); |
| @@ -86,6 +87,11 @@ describe("the releases page", () => { | ||
| 86 | 87 | // Warm the page (the first render imports the kept release's schema module) outside any test's clock. |
| 87 | 88 | await (await fetch(`${servers.url}/releases`, { headers: { cookie: aliceCookie } })).text(); |
| 88 | 89 | }, 60_000); |
| 90 | // The page reads the live commit from the process environment at render time; pin it per test so | |
| 91 | // nothing another suite in this process does to it can unmark the live release. | |
| 92 | beforeEach(() => { | |
| 93 | process.env["FORGE_COMMIT"] = LIVE; | |
| 94 | }); | |
| 89 | 95 | afterAll(() => { |
| 90 | 96 | if (was === undefined) delete process.env["FORGE_COMMIT"]; |
| 91 | 97 | else process.env["FORGE_COMMIT"] = was; |
new above
offline