Files
yoi/tools/web-ux/scenarios/journal-browser-dark.json

281 lines
9.2 KiB
JSON

{
"schemaVersion": 1,
"id": "journal-browser-dark",
"title": "Journal browser UI fixture — dark",
"baseUrl": "http://127.0.0.1:15287",
"colorScheme": "dark",
"reducedMotion": "reduce",
"personas": [
{
"id": "fixture",
"label": "HTTP-only Journal UI fixture",
"auth": {
"kind": "anonymous"
}
}
],
"viewports": [
{
"label": "desktop",
"width": 1440,
"height": 900
},
{
"label": "narrow",
"width": 768,
"height": 900
},
{
"label": "mobile",
"width": 390,
"height": 844
}
],
"routes": [
{
"id": "sessions",
"label": "Session journals",
"path": "/w/memory-review/memory/release-coordination-subject-with-a-deliberately-long-stable-identity-for-responsive-review/journal?view=sessions",
"goal": "Choose among saved Session journals and distinguish pending work from source presence.",
"dataState": "Two Sessions, one with unreflected sources; deleted versus unavailable originals; bounded next page.",
"ready": {
"kind": "selector",
"selector": ".session-list > li"
},
"capturePoints": [
{
"id": "initial",
"label": "Multiple Sessions"
},
{
"id": "source-state",
"label": "Missing and unavailable originals",
"interaction": [
{
"action": "click",
"selector": ".session-list li:first-child summary"
}
]
}
]
},
{
"id": "list",
"label": "Literal search results",
"path": "/w/memory-review/memory/release-coordination-subject-with-a-deliberately-long-stable-identity-for-responsive-review/journal?q=release%20%5Ba%2Bb%5D%20%25_",
"goal": "Find literal text across Sessions and continue a bounded search.",
"dataState": "Sixteen matching events across two Sessions with fixed/open states and a continuation.",
"ready": {
"kind": "selector",
"selector": ".entry-list > li"
},
"capturePoints": [
{
"id": "initial",
"label": "Literal search results"
}
]
},
{
"id": "detail-missing",
"label": "Saved Journal with deleted original",
"path": "/w/memory-review/memory/release-coordination-subject-with-a-deliberately-long-stable-identity-for-responsive-review/journal?journal=journal-release&entry=entry-00",
"goal": "Read narrative, correction and related Memory without restoring a Worker or original Session.",
"dataState": "Open event, three of eight related Memories, correcting entry; original conversation is deleted.",
"ready": {
"kind": "selector",
"selector": "[data-journal-view=detail] .related-list a"
},
"capturePoints": [
{
"id": "initial",
"label": "Narrative and open event"
},
{
"id": "related",
"label": "Correction and related Memory preview",
"interaction": [
{
"action": "click",
"selector": "#related-memory-title"
}
]
},
{
"id": "source",
"label": "Deleted original; saved narrative independent",
"interaction": [
{
"action": "click",
"selector": "section[aria-label=原資料] h2"
}
]
}
]
},
{
"id": "detail-unavailable",
"label": "Journal with unavailable original",
"path": "/w/memory-review/memory/release-coordination-subject-with-a-deliberately-long-stable-identity-for-responsive-review/journal?journal=journal-review&entry=entry-01",
"goal": "Distinguish inability to check the original from confirmed deletion.",
"dataState": "Fixed event remains readable, but original presence/permission is unavailable.",
"ready": {
"kind": "selector",
"selector": "[data-journal-view=detail] .related-list a"
},
"capturePoints": [
{
"id": "source",
"label": "Unavailable original, not deleted",
"interaction": [
{
"action": "click",
"selector": "section[aria-label=原資料] h2"
}
]
}
]
},
{
"id": "memory",
"label": "Memory links back to exact Journal events",
"path": "/w/memory-review/memory/release-coordination-subject-with-a-deliberately-long-stable-identity-for-responsive-review/memory-decision-with-a-deliberately-long-stable-identity-for-overflow-review-0000000001?change_id=change-current",
"goal": "Identify Journal targets by title and date, with bounded continuation and separate original-source status.",
"dataState": "Three of eight persisted candidate links, including missing/unavailable originals and reconsideration.",
"ready": {
"kind": "selector",
"selector": "#related-journal .journal-link-list a"
},
"capturePoints": [
{
"id": "related",
"label": "Journal title/date preview",
"interaction": [
{
"action": "click",
"selector": "#related-journal-heading"
}
]
},
{
"id": "source",
"label": "Originals separate from Journal links",
"interaction": [
{
"action": "click",
"selector": "section[aria-label=原資料] h2"
}
]
}
]
},
{
"id": "memory-unconnected",
"label": "Unconnected Memory",
"path": "/w/memory-review/memory/release-coordination-subject-with-a-deliberately-long-stable-identity-for-responsive-review/memory-resolved-0002?change_id=change-earlier",
"goal": "Recognize a missing persisted connection without fabricating a target or pending reason.",
"dataState": "Immutable historical change with insufficient_source; no Journal anchors.",
"ready": {
"kind": "selector",
"selector": "#related-journal .empty-copy"
},
"capturePoints": [
{
"id": "unconnected",
"label": "Unconnected is not pending",
"interaction": [
{
"action": "click",
"selector": "#related-journal-heading"
}
]
}
]
},
{
"id": "no-journal",
"label": "No saved Journal",
"path": "/w/memory-review/memory/empty-subject/journal?view=sessions",
"goal": "Distinguish no saved Journal from pending, no search results and read failure.",
"dataState": "Successful empty Session-journal page.",
"ready": {
"kind": "selector",
"selector": "[data-journal-view=list] [role=status]"
},
"capturePoints": [
{
"id": "initial",
"label": "No saved Journal"
}
]
},
{
"id": "no-search-result",
"label": "No literal search matches",
"path": "/w/memory-review/memory/release-coordination-subject-with-a-deliberately-long-stable-identity-for-responsive-review/journal?q=definitely-no-such-literal",
"goal": "Keep the query visible when search succeeds with zero results.",
"dataState": "Successful empty search, not an unavailable Journal.",
"ready": {
"kind": "selector",
"selector": "[data-journal-view=list] [role=status]"
},
"capturePoints": [
{
"id": "initial",
"label": "No literal search matches"
}
]
},
{
"id": "denied",
"label": "Journal read denied",
"path": "/w/memory-review/memory/release-coordination-subject-with-a-deliberately-long-stable-identity-for-responsive-review/journal?journal=journal-denied&entry=entry-00",
"goal": "Show a read failure rather than inventing an empty or deleted Journal.",
"dataState": "Intentional fixture HTTP 403; verifies error presentation only, not backend authorization.",
"ready": {
"kind": "selector",
"selector": "[data-journal-view=detail] [role=alert]"
},
"capturePoints": [
{
"id": "initial",
"label": "Journal read denied"
}
]
},
{
"id": "request-failure",
"label": "Journal list unavailable",
"path": "/w/memory-review/memory/release-coordination-subject-with-a-deliberately-long-stable-identity-for-responsive-review/journal?q=fixture-failure",
"goal": "Keep request failure distinct from zero matching entries.",
"dataState": "Intentional fixture HTTP 503 with the search query retained.",
"ready": {
"kind": "selector",
"selector": "[data-journal-view=list] [role=alert]"
},
"capturePoints": [
{
"id": "initial",
"label": "Journal list unavailable"
}
]
}
],
"processes": [
{
"id": "memory-fixture",
"command": "deno",
"cwd": "..",
"args": [
"run",
"--allow-net",
"--allow-read",
"browser-tests/memory_document_fixture_server.ts",
"15287",
"../../web/workspace/build"
],
"readyUrl": "http://127.0.0.1:15287/health"
}
]
}