test(release): allow full live asset inventory (#218)

## Summary
- give the complete public asset inventory gate a five-minute test
budget
- keep the API and rendered guest-flow smoke tests on the existing
default timeout

## Rationale
The production manifest contains the full release inventory.
Sequentially downloading and hashing it takes longer than the global
60-second Playwright timeout from GitHub-hosted runners, causing false
failures even though release identity, API, and guest-flow checks pass.

## Verification
- ESLint on the changed spec
- Playwright live configuration test discovery

---------

Co-authored-by: Jeppe Bundgaard <jb@truckwash.dk>
This commit is contained in:
Jeppe B
2026-07-23 02:59:40 +02:00
committed by GitHub
co-authored by Jeppe Bundgaard
parent fc67e7cf0b
commit 41b3be926a
@@ -16,6 +16,7 @@ type ReleaseManifest = {
const baseURL = process.env.PLAYWRIGHT_BASE_URL || "";
const staticBaseURL = process.env.PLAYWRIGHT_RELEASE_STATIC_BASE_URL || process.env.RELEASE_BASE_URL || baseURL;
const appBaseURL = process.env.PLAYWRIGHT_APP_BASE_URL || baseURL;
const releaseAssetTestTimeoutMs = 300_000;
function liveUrl(assetPath: string, base = staticBaseURL) {
const normalizedBase = base.endsWith("/") ? base : `${base}/`;
@@ -94,6 +95,8 @@ async function expectApiPing(request: APIRequestContext, apiBaseUrl: string, pat
}
test("@public-live release manifest, shell, and static assets are available", async ({ request }) => {
test.setTimeout(releaseAssetTestTimeoutMs);
const manifest = await expectJson<ReleaseManifest>(request, "release-manifest.json");
const releaseEntry = await expectJson<{ entry?: string; css?: string[] }>(request, "release-entry.json");