Files
yoi/tools/web-ux/scenarios/public-entry-dark.json

373 lines
10 KiB
JSON

{
"schemaVersion": 1,
"id": "public-entry-dark",
"title": "Public entry and authenticated Workspace selection",
"baseUrl": "http://127.0.0.1:15413",
"colorScheme": "dark",
"reducedMotion": "reduce",
"personas": [
{
"id": "fixture",
"label": "Synthetic HTTP projection; not a real authentication session",
"auth": {
"kind": "anonymous"
}
}
],
"viewports": [
{
"label": "desktop",
"width": 1440,
"height": 900
},
{
"label": "narrow",
"width": 768,
"height": 900
},
{
"label": "mobile",
"width": 390,
"height": 900
}
],
"routes": [
{
"id": "anonymous",
"label": "anonymous",
"path": "/?fixture=anonymous",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Known anonymous; policy allowed; Workspace API would reject",
"ready": {
"kind": "selector",
"selector": "a.entry-primary"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "policy-disabled",
"label": "policy-disabled",
"path": "/?fixture=policy-disabled",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Policy disabled; login retained",
"ready": {
"kind": "selector",
"selector": "section p:has-text(\"registration is disabled\")"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "policy-error",
"label": "policy-error",
"path": "/?fixture=policy-error",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Intentional public policy HTTP503; login retained, no registration link",
"ready": {
"kind": "selector",
"selector": "section p:has-text(\"availability is unknown\")"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "policy-loading",
"label": "policy-loading",
"path": "/?fixture=policy-loading",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Public policy held pending; login retained",
"ready": {
"kind": "selector",
"selector": "[role=status]:has-text(\"Checking registration\")"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "session-loading",
"label": "session-loading",
"path": "/?fixture=session-loading",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Whoami held pending; no anonymous or actor actions",
"ready": {
"kind": "selector",
"selector": "[role=status]:has-text(\"Loading session\")"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "session-error",
"label": "session-error",
"path": "/?fixture=session-error",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Intentional whoami HTTP503; unknown, not logged out",
"ready": {
"kind": "selector",
"selector": "[role=alert]"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "account",
"label": "account",
"path": "/?fixture=account",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Confirmed ordinary actor; no Workspace fetch or automatic navigation",
"ready": {
"kind": "selector",
"selector": "a.entry-primary"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "admin",
"label": "admin",
"path": "/?fixture=admin",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Confirmed hosting admin grant independent of Workspace ownership",
"ready": {
"kind": "selector",
"selector": "a[href=\"/hosting/settings\"]"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "dashboard-zero",
"label": "dashboard-zero",
"path": "/dashboard?fixture=account",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Confirmed actor; zero Workspaces",
"ready": {
"kind": "selector",
"selector": ".workspace-empty-state"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "dashboard-one",
"label": "dashboard-one",
"path": "/dashboard?fixture=workspace-one",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "One Workspace requires explicit selection",
"ready": {
"kind": "selector",
"selector": ".workspace-catalog-card"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "dashboard-many",
"label": "dashboard-many",
"path": "/dashboard?fixture=workspace-many",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Three Workspaces, long display name, explicit selection",
"ready": {
"kind": "selector",
"selector": ".workspace-catalog-card:nth-child(3)"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "dashboard-error",
"label": "dashboard-error",
"path": "/dashboard?fixture=workspace-error",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Intentional catalog HTTP503; not empty; account retained",
"ready": {
"kind": "selector",
"selector": ".workspace-catalog-alert"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "dashboard-loading",
"label": "dashboard-loading",
"path": "/dashboard?fixture=workspace-loading",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Catalog held pending; account remains available",
"ready": {
"kind": "selector",
"selector": "[role=status]:has-text(\"Loading Workspaces\")"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "dashboard-anonymous",
"label": "dashboard-anonymous",
"path": "/dashboard?fixture=anonymous",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Known anonymous; login returnTo dashboard, no catalog fetch",
"ready": {
"kind": "selector",
"selector": "a.entry-primary"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
},
{
"id": "create-denied",
"label": "create-denied",
"path": "/dashboard?fixture=creation-denied#workspace-create-title",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Intentional creation HTTP403; exact retry, no resources created",
"ready": {
"kind": "selector",
"selector": ".workspace-empty-state"
},
"capturePoints": [
{
"id": "initial",
"label": "Creation denied",
"fullPage": true,
"interaction": [
{
"action": "fill",
"selector": "input[autocomplete=off]",
"value": "New Workspace"
},
{
"action": "click",
"selector": "button[type=submit]"
}
],
"ready": {
"kind": "selector",
"selector": ".workspace-catalog-alert"
}
}
]
},
{
"id": "login-disabled",
"label": "login-disabled",
"path": "/login?fixture=policy-disabled",
"goal": "Verify entry, session and Workspace authority remain distinct with reachable actions",
"dataState": "Login remains usable while registration is disabled",
"ready": {
"kind": "selector",
"selector": "nav p:has-text(\"registration is disabled\")"
},
"capturePoints": [
{
"id": "initial",
"label": "Initial state",
"fullPage": true
}
]
}
],
"processes": [
{
"id": "workspace-fixture",
"command": "deno",
"cwd": "../../..",
"args": [
"run",
"--allow-read",
"--allow-net",
"tools/web-ux/browser-tests/workspace_home_fixture_server.ts",
"15414",
"web/workspace/build"
],
"readyUrl": "http://127.0.0.1:15414/health"
},
{
"id": "entry-fixture",
"command": "deno",
"cwd": "../../..",
"args": [
"run",
"--config",
"tools/web-ux/deno.json",
"--allow-read",
"--allow-net",
"web/workspace/test/auth-browser/fixture-server.ts",
"15413",
"web/workspace/build",
"http://127.0.0.1:15414"
],
"readyUrl": "http://127.0.0.1:15413/health"
}
]
}