33 lines
1.4 KiB
JavaScript
33 lines
1.4 KiB
JavaScript
export default async function caserunNativeSmoke({ page, goto, wait, screenshot, recordStep }) {
|
|
await goto("/workbench");
|
|
const panel = page.locator("#caserun-panel");
|
|
await panel.waitFor({ state: "visible", timeout: 20000 });
|
|
await page.locator("#caserun-case-select").selectOption("native-completed");
|
|
await page.locator("#caserun-start").click();
|
|
await page.locator("#caserun-refresh").click();
|
|
await wait(300);
|
|
|
|
const state = await page.locator("#caserun-status").evaluate((element) => element.textContent || "");
|
|
const events = await page.locator("#caserun-event-text").textContent();
|
|
const aggregate = await page.locator("#caserun-aggregate").textContent();
|
|
const conditions = {
|
|
mode: state.includes("native-test"),
|
|
terminal: state.includes("true"),
|
|
completed: aggregate?.includes("completed") === true,
|
|
queuedEvent: events?.includes("queued") === true,
|
|
runningEvent: events?.includes("running") === true,
|
|
completedEvent: events?.includes("completed") === true,
|
|
aggregate: aggregate?.includes("aggregate pending") === false
|
|
};
|
|
const image = await screenshot("caserun-native-completed.png");
|
|
recordStep("caserun-native-completed", { ok: Object.values(conditions).every(Boolean), conditions });
|
|
return {
|
|
ok: Object.values(conditions).every(Boolean),
|
|
mode: "native-test",
|
|
conditions,
|
|
screenshot: image,
|
|
finalUrl: page.url(),
|
|
valuesRedacted: true
|
|
};
|
|
}
|