fast-browser-with-jev
fast-browser scenarios / Offline scenario contract tests (push) Failing after 44s
fast-browser scenarios / Local Chromium headless scenarios (push) Failing after 23s

This commit is contained in:
jb
2026-09-20 12:24:08 -04:00
parent fd0edb1511
commit fd63b0ccec
73 changed files with 21212 additions and 2 deletions
@@ -0,0 +1,57 @@
{
"version": 1,
"id": "local-form",
"description": "Offline exact-name form smoke test against the disposable fixture.",
"fixture": {
"baseUrl": "http://127.0.0.1:8765",
"server": {
"mode": "managed",
"start": { "command": "python3", "args": ["-m", "http.server", "8765", "--bind", "127.0.0.1", "--directory", "extensions/fast-browser/fixtures"], "cwd": "." },
"readiness": { "url": "http://127.0.0.1:8765/form.html", "expectedStatus": 200 }
}
},
"settings": {
"allowedOrigins": ["http://127.0.0.1:8765"],
"browser": {
"mode": "launch",
"product": "chromium",
"headless": true,
"startUrl": "http://127.0.0.1:8765/form.html"
}
},
"hooks": {
"reset": {
"argv": ["node", "extensions/fast-browser/scenarios/examples/reset-local-fixture.mjs"],
"cwd": ".",
"env": {
"FAST_BROWSER_FIXTURE_MODE": {"env": "FAST_BROWSER_FIXTURE_MODE"}
},
"timeoutMs": 2000
}
},
"operations": [
{
"op": "step",
"step": {
"instruction": "Display name",
"action": "fill",
"text": "Ada"
}
},
{
"op": "step",
"step": {
"instruction": "Continue",
"action": "click",
"postcondition": {
"kind": "text",
"value": "Fixture complete"
}
}
}
],
"evidence": {
"onFailure": true,
"onRequest": false
}
}
@@ -0,0 +1,60 @@
{
"version": 1,
"id": "local-login",
"description": "Offline login fixture using a local environment credential reference.",
"fixture": {
"baseUrl": "http://127.0.0.1:8765",
"server": {
"mode": "managed",
"start": { "command": "python3", "args": ["-m", "http.server", "8765", "--bind", "127.0.0.1", "--directory", "extensions/fast-browser/fixtures"], "cwd": "." },
"readiness": { "url": "http://127.0.0.1:8765/login.html", "expectedStatus": 200 }
}
},
"settings": {
"allowedOrigins": ["http://127.0.0.1:8765"],
"browser": {
"mode": "launch",
"product": "chromium",
"headless": true,
"startUrl": "http://127.0.0.1:8765/login.html"
}
},
"credentials": {
"fixturePassword": {
"env": "FAST_BROWSER_TEST_PASSWORD"
}
},
"operations": [
{
"op": "step",
"step": {
"instruction": "Username",
"action": "fill",
"text": "demo-user"
}
},
{
"op": "step",
"step": {
"instruction": "Password",
"action": "fill",
"credential": "fixturePassword"
}
},
{
"op": "step",
"step": {
"instruction": "Sign in",
"action": "click",
"postcondition": {
"kind": "text",
"value": "Test login complete"
}
}
}
],
"evidence": {
"onFailure": true,
"onRequest": false
}
}
@@ -0,0 +1,47 @@
{
"version": 1,
"id": "local-popup",
"description": "Open and inspect the bounded local popup fixture without exposing browser tab IDs.",
"fixture": {
"baseUrl": "http://127.0.0.1:8765",
"server": {
"mode": "managed",
"start": { "command": "python3", "args": ["-m", "http.server", "8765", "--bind", "127.0.0.1", "--directory", "extensions/fast-browser/fixtures"], "cwd": "." },
"readiness": { "url": "http://127.0.0.1:8765/scenario-suite.html", "expectedStatus": 200 }
}
},
"settings": {
"allowedOrigins": ["http://127.0.0.1:8765"],
"browser": {
"mode": "launch",
"product": "chromium",
"headless": true,
"startUrl": "http://127.0.0.1:8765/scenario-suite.html"
}
},
"operations": [
{
"op": "navigate",
"request": { "url": "http://127.0.0.1:8765/scenario-suite.html" }
},
{
"op": "step",
"step": {
"instruction": "Open local popup",
"action": "click",
"postcondition": { "kind": "text", "value": "Popup opened" }
}
},
{
"op": "waitPopup",
"id": "popup",
"request": { "opener": { "source": "initial", "target": "selected" } }
},
{
"op": "read",
"request": {
"tab": { "source": "operation", "operation": { "id": "popup" }, "result": "popup" }
}
}
]
}
@@ -0,0 +1,5 @@
// Trusted, disposable fixture reset hook. It intentionally does not touch a
// database, accounts, named profiles, or any user-managed state.
if (process.env.FAST_BROWSER_FIXTURE_MODE && process.env.FAST_BROWSER_FIXTURE_MODE !== "local") {
process.exitCode = 2;
}