fix(ci): package contract fixtures and recover deploy chunk races
MobilityOps acceptance / backend (pull_request) Failing after 2m29s
MobilityOps acceptance / frontend (pull_request) Successful in 1m10s
MobilityOps acceptance / e2e (pull_request) Skipped
Managed validation / full (pull_request) Successful in 3s

This commit is contained in:
NuklearRabbit
2026-08-29 00:40:51 +02:00
parent 2918608240
commit e8eed3e641
3 changed files with 13 additions and 1 deletions
+3 -1
View File
@@ -14,7 +14,9 @@
artifacts artifacts
docs docs
deploy deploy
n8n n8n/**
!n8n/workflows/
!n8n/workflows/**
frontend frontend
*.tgz *.tgz
*.tar.gz *.tar.gz
+1
View File
@@ -26,6 +26,7 @@ RUN pip install --no-cache-dir -r requirements.lock
COPY backend/tests ./tests COPY backend/tests ./tests
COPY contracts ./contracts COPY contracts ./contracts
COPY scripts/check-contracts.py ./scripts/check-contracts.py COPY scripts/check-contracts.py ./scripts/check-contracts.py
COPY n8n/workflows ./n8n/workflows
USER app USER app
FROM runtime-base AS runtime FROM runtime-base AS runtime
+9
View File
@@ -26,6 +26,15 @@ test("non-destructive operator canary covers routes and grounded knowledge", asy
await page.goto("/login"); await page.goto("/login");
await page.getByRole("button", { name: "Verken als Operationsmanager" }).click(); await page.getByRole("button", { name: "Verken als Operationsmanager" }).click();
await expect(page).toHaveURL(/\/dashboard$/); await expect(page).toHaveURL(/\/dashboard$/);
if (pageErrors.some((message) => message.toLowerCase().includes("dynamically imported module"))) {
// A deploy can replace the SPA between loading index.html and its lazy
// dashboard chunk. One clean reload must recover; a persistent chunk or
// server error is collected again and still fails the canary below.
pageErrors.length = 0;
await page.reload({ waitUntil: "domcontentloaded" });
await expect(page).toHaveURL(/\/dashboard$/);
await expect(page.locator("main")).toBeVisible();
}
for (const [path, heading] of [ for (const [path, heading] of [
["/vehicles", "Wagenpark"], ["/vehicles", "Wagenpark"],