179 lines
4.9 KiB
JSON
179 lines
4.9 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"id": "hosting-setup-light",
|
|
"title": "Hosting setup production UI: synthetic HTTP and navigator.credentials boundary only",
|
|
"baseUrl": "http://127.0.0.1:15378",
|
|
"colorScheme": "light",
|
|
"reducedMotion": "reduce",
|
|
"personas": [
|
|
{
|
|
"id": "fixture",
|
|
"label": "Synthetic API projection; no real authentication",
|
|
"auth": {
|
|
"kind": "anonymous"
|
|
}
|
|
}
|
|
],
|
|
"viewports": [
|
|
{
|
|
"label": "desktop",
|
|
"width": 1440,
|
|
"height": 900
|
|
},
|
|
{
|
|
"label": "narrow",
|
|
"width": 768,
|
|
"height": 900
|
|
},
|
|
{
|
|
"label": "mobile",
|
|
"width": 390,
|
|
"height": 844
|
|
}
|
|
],
|
|
"routes": [
|
|
{
|
|
"id": "setup-flow",
|
|
"label": "Setup enrollment and login UI",
|
|
"path": "/hosting/setup?fixture=setup-flow",
|
|
"goal": "Separate host-token enrollment from explicit passkey login and verified settings access.",
|
|
"dataState": "Synthetic actor, API and non-cryptographic navigator.credentials; no real token/authentication. Test-only bootstrap changes browser API boundary, not production UI modules/styles.",
|
|
"ready": {
|
|
"kind": "selector",
|
|
"selector": "#host-setup-token:enabled"
|
|
},
|
|
"capturePoints": [
|
|
{
|
|
"id": "initial",
|
|
"label": "Empty password field; enrollment disabled",
|
|
"fullPage": true
|
|
},
|
|
{
|
|
"id": "host-help",
|
|
"label": "Trusted-host instructions expanded",
|
|
"interaction": [
|
|
{
|
|
"action": "press",
|
|
"selector": "summary",
|
|
"key": "Enter"
|
|
}
|
|
],
|
|
"ready": {
|
|
"kind": "selector",
|
|
"selector": "details[open]"
|
|
},
|
|
"fullPage": true
|
|
},
|
|
{
|
|
"id": "masked-entry",
|
|
"label": "Synthetic input password-masked; action enabled",
|
|
"interaction": [
|
|
{
|
|
"action": "press",
|
|
"selector": "summary",
|
|
"key": "Enter"
|
|
},
|
|
{
|
|
"action": "fill",
|
|
"selector": "#host-setup-token",
|
|
"value": "${WEB_UX_SYNTHETIC_SETUP_INPUT}"
|
|
}
|
|
],
|
|
"ready": {
|
|
"kind": "selector",
|
|
"selector": "button:has-text(\"Add administrator passkey\"):enabled"
|
|
},
|
|
"fullPage": true
|
|
},
|
|
{
|
|
"id": "enrolled",
|
|
"label": "Enrollment is not login; explicit login handoff",
|
|
"interaction": [
|
|
{
|
|
"action": "click",
|
|
"selector": "button:has-text(\"Add administrator passkey\")"
|
|
}
|
|
],
|
|
"ready": {
|
|
"kind": "selector",
|
|
"selector": "button:has-text(\"Sign in with new passkey\"):enabled"
|
|
},
|
|
"fullPage": true
|
|
},
|
|
{
|
|
"id": "verified",
|
|
"label": "Matching actor/session/access projected verified; settings link",
|
|
"interaction": [
|
|
{
|
|
"action": "press",
|
|
"selector": "button:has-text(\"Sign in with new passkey\")",
|
|
"key": "Enter"
|
|
}
|
|
],
|
|
"ready": {
|
|
"kind": "selector",
|
|
"selector": "a:has-text(\"Open hosting settings\")"
|
|
},
|
|
"fullPage": true
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "setup-reject",
|
|
"label": "Rejected setup enrollment",
|
|
"path": "/hosting/setup?fixture=setup-reject",
|
|
"goal": "Show safe unconfirmed-enrollment guidance with empty cleared token and no settings action.",
|
|
"dataState": "Intentional addition/options HTTP403. Expected console/resource diagnostics; no real authorization exercised.",
|
|
"ready": {
|
|
"kind": "selector",
|
|
"selector": "#host-setup-token:enabled"
|
|
},
|
|
"capturePoints": [
|
|
{
|
|
"id": "rejected",
|
|
"label": "Rejected attempt; token cleared",
|
|
"interaction": [
|
|
{
|
|
"action": "fill",
|
|
"selector": "#host-setup-token",
|
|
"value": "${WEB_UX_SYNTHETIC_SETUP_INPUT}"
|
|
},
|
|
{
|
|
"action": "click",
|
|
"selector": "button:has-text(\"Add administrator passkey\")"
|
|
}
|
|
],
|
|
"ready": {
|
|
"kind": "selector",
|
|
"selector": "[role=\"alert\"]"
|
|
},
|
|
"fullPage": true
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"processes": [
|
|
{
|
|
"id": "hosting-ui-fixture",
|
|
"command": "deno",
|
|
"cwd": "../../..",
|
|
"args": [
|
|
"run",
|
|
"--config",
|
|
"tools/web-ux/deno.json",
|
|
"--allow-read",
|
|
"--allow-net",
|
|
"web/workspace/test/hosting-browser/fixture-server.ts",
|
|
"15378",
|
|
"web/workspace/build"
|
|
],
|
|
"readyUrl": "http://127.0.0.1:15378/health"
|
|
}
|
|
],
|
|
"redact": {
|
|
"text": [
|
|
"${WEB_UX_SYNTHETIC_SETUP_INPUT}"
|
|
]
|
|
}
|
|
}
|