281 lines
9.2 KiB
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"
|
|
}
|
|
]
|
|
}
|