Files
HiveGrid-Wireframes/hivegrid-cloud/tests/e2e/walking-skeleton.spec.ts
T

28 lines
1.5 KiB
TypeScript

import { expect, test } from "./utils/test";
import { getTenantCredentials, loginAsTenantUser } from "./utils/auth";
import { skipIfUnavailable } from "./utils/navigation";
import { skipOrFailWhenE2eInputsMissing } from "./utils/readiness";
/**
* Walking-Skeleton-Smoke (R-P1c / DoD D.19): Login -> Route oeffnen -> Seite sichtbar.
*
* Die Route ist konnektor-gegated (tenantHasModule). Da das Demo-Modul in keinem Blueprint liegt,
* rendert sie fuer reale Tenants den "locked"-Zustand; die Seite traegt in jedem Zustand
* `data-ui-id="ui.walkingSkeleton.page"`. Skippt ohne E2E-Credentials (laeuft im CI/Staging-e2e-Job).
*/
const credentials = getTenantCredentials();
const dashboardPath = process.env.E2E_TENANT_DASHBOARD_PATH ?? "/app/dashboard";
const walkingSkeletonPath = process.env.E2E_TENANT_WALKING_SKELETON_PATH ?? dashboardPath.replace(/\/dashboard\/?$/u, "/walking-skeleton");
test.describe("walking-skeleton smoke", () => {
test("renders the connector-gated walking-skeleton page", async ({ page }) => {
skipOrFailWhenE2eInputsMissing(["E2E_TENANT_EMAIL", "E2E_TENANT_PASSWORD"], "Walking-skeleton smoke inputs not configured");
await loginAsTenantUser(page, credentials!);
const response = await page.goto(walkingSkeletonPath, { waitUntil: "domcontentloaded" });
await skipIfUnavailable(page, response, "Walking-skeleton path is not reachable in this environment");
await expect(page.locator('[data-ui-id="ui.walkingSkeleton.page"]')).toBeVisible();
});
});