Stabilize edge gateway installer smoke tests

This commit is contained in:
Jeppe Bundgaard
2026-07-06 11:47:58 +02:00
parent bd14d58f08
commit 7f3a8c07e2
+57 -5
View File
@@ -109,6 +109,58 @@ async function acceleratePageTimers(page, timerScale = 0.01) {
}, timerScale);
}
async function dismissUnexpectedSweetAlert(page) {
const overlays = page.locator(".swal2-container.swal2-backdrop-show");
for (let attempt = 0; attempt < 3; attempt += 1) {
const overlay = overlays.first();
if (!(await overlay.isVisible().catch(() => false))) {
return;
}
let dismissed = false;
for (const selector of [".swal2-close", ".swal2-cancel", ".swal2-deny", ".swal2-confirm"]) {
const action = overlay.locator(selector).first();
if (await action.isVisible().catch(() => false)) {
await action.click({ force: true });
dismissed = true;
break;
}
}
if (!dismissed) {
await page.keyboard.press("Escape");
}
await expect(overlays)
.toHaveCount(0, { timeout: 5_000 })
.catch(() => {});
}
}
async function generateGatewayInstaller(page) {
const button = page.getByTestId("gateway-installer-generate");
await expect(button).toBeVisible({ timeout: 15_000 });
await expect(button).toBeEnabled({ timeout: 15_000 });
let lastError;
for (let attempt = 0; attempt < 3; attempt += 1) {
await dismissUnexpectedSweetAlert(page);
try {
await button.click({ timeout: 15_000 });
return;
} catch (error) {
lastError = error;
if (!/swal2-container|intercepts pointer events/i.test(error?.message || "")) {
throw error;
}
}
}
throw lastError;
}
test.describe("Edge gateway management smoke", () => {
test.describe.configure({ mode: "serial" });
@@ -193,7 +245,7 @@ test.describe("Edge gateway management smoke", () => {
await page.getByTestId("gateway-installer-department").selectOption("1");
await page.getByTestId("gateway-installer-label").fill("Copy Test Pi");
await page.getByTestId("gateway-installer-generate").click();
await generateGatewayInstaller(page);
await expect(page.getByTestId("gateway-install-command")).toHaveValue(/install\.sh\?token=edge-install-token/);
await page.getByTestId("gateway-installer-copy").click();
@@ -246,7 +298,7 @@ test.describe("Edge gateway management smoke", () => {
await page.getByTestId("gateway-installer-department").selectOption("1");
await page.getByTestId("gateway-installer-label").fill("Canary Pi");
await page.getByTestId("gateway-installer-generate").click();
await generateGatewayInstaller(page);
await expect(page.getByTestId("gateway-installer-status")).toBeVisible();
await expect.poll(() => page.getByTestId("gateway-installer-status-state").textContent()).toContain("Running");
@@ -274,7 +326,7 @@ test.describe("Edge gateway management smoke", () => {
await page.getByTestId("gateway-installer-department").selectOption("1");
await page.getByTestId("gateway-installer-label").fill("CPH Edge 01");
await page.getByTestId("gateway-installer-generate").click();
await generateGatewayInstaller(page);
await expect(page.getByTestId("gateway-installer-status")).toBeVisible();
await expect.poll(() => page.getByTestId("gateway-installer-status-state").textContent()).toContain("Running");
@@ -318,7 +370,7 @@ test.describe("Edge gateway management smoke", () => {
await page.getByTestId("gateway-installer-department").selectOption("1");
await page.getByTestId("gateway-installer-label").fill("Broken Pi");
await page.getByTestId("gateway-installer-generate").click();
await generateGatewayInstaller(page);
await expect(page.getByTestId("gateway-installer-status")).toBeVisible();
await expect
@@ -382,7 +434,7 @@ test.describe("Edge gateway management smoke", () => {
await page.getByTestId("gateway-installer-department").selectOption("1");
await page.getByTestId("gateway-installer-label").fill("Canary Pi");
await page.getByTestId("gateway-installer-generate").click();
await generateGatewayInstaller(page);
await expect(page.getByTestId("gateway-install-command")).toHaveValue(/install\.sh\?token=edge-install-token/);
await expect(page).toHaveURL(/\/superuser\/selfserve\/edge-agents\/703\/overview$/, { timeout: 20_000 });