From 63de157d9df65225f2ffc1da25e6cb18784376ef Mon Sep 17 00:00:00 2001 From: riddim-developer-bot Date: Mon, 25 May 2026 13:34:19 -0400 Subject: [PATCH] [EPAC-2056]: author .evidence/cuj-hansard-chat-session.json (4-screenshot XCTest plan) --- .evidence/cuj-hansard-chat-session.json | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .evidence/cuj-hansard-chat-session.json diff --git a/.evidence/cuj-hansard-chat-session.json b/.evidence/cuj-hansard-chat-session.json new file mode 100644 index 00000000..f8e47ddb --- /dev/null +++ b/.evidence/cuj-hansard-chat-session.json @@ -0,0 +1,46 @@ +{ + "_doc": "Critical User Journey: read a Hansard speech in chat format. Fixture: Parliament 45 Session 1 HAN050-E (Tuesday, November 4, 2025). Four screenshots prove the CUJ end-to-end: 00-home-baseline.png = app launched and fixture seeded; 01-sitting-day-overview.png = XMLBro.parseXML (#543) produced Hansard structure and Fetch.ingestHansard (#546) persisted it into the in-memory store (subjects of business are visible); 02-chat-thread-top.png = SpeechView renders and HansardSpeakerParser (#548) populated speaker name + party label on the first bubble (Hon. Randeep Sarai, Lib.); 03-chat-thread-scrolled.png = chat thread scrolls and mid-document speakers also render correctly. Note: the first subject of business in HAN050 is 'Foreign Affairs' (under Routine Proceedings), not 'Statements by Members'. The tap step uses 'Foreign Affairs' as the target accordingly.", + "repo": "RiddimSoftware/epac", + "platform": "ios", + "runner": "xctest", + "ios": { + "project": "ios/epac.xcodeproj", + "scheme": "epac", + "bundle_id": "net.dinglebox.cabinetdoor", + "configuration": "Debug", + "simulator": "iPhone 17 Pro Max", + "simulator_udid": "1B4F22DF-E851-4A3B-AFFE-0EA338BD5D48", + "destination": "platform=iOS Simulator,name=iPhone 17 Pro Max" + }, + "launch": { + "arguments": [ + "--evidence-mode", + "-UIAnimationsDisabled", + "YES" + ], + "environment": { + "EPAC_EVIDENCE_MODE": "1", + "EPAC_EVIDENCE_FIXTURE": "45-1-HAN050-E" + } + }, + "output_directory": "docs/build-evidence/cuj-hansard-chat-session", + "video": { "enabled": false }, + "steps": [ + { "name": "launch app", "kind": "launch" }, + { "name": "wait for home tab", "kind": "wait", "target": { "button": "Parliament" }, "timeout_seconds": 15 }, + { "name": "home baseline", "kind": "screenshot", "path": "00-home-baseline.png" }, + + { "name": "open sitting 2025-11-04", "kind": "openURL", "url": "cabinetdoor://sitting/2025-11-04" }, + { "name": "wait for sitting day overview", "kind": "wait", "target": { "static_text": "Foreign Affairs" }, "timeout_seconds": 15 }, + { "name": "sitting day overview", "kind": "screenshot", "path": "01-sitting-day-overview.png" }, + + { "name": "tap first subject of business", "kind": "tap", "target": { "static_text": "Foreign Affairs" } }, + { "name": "wait for speech bubble", "kind": "wait", "target": { "predicate": "label CONTAINS 'Hon.'" }, "timeout_seconds": 15 }, + { "name": "settle chat thread", "kind": "wait", "seconds": 1.0 }, + { "name": "chat thread top", "kind": "screenshot", "path": "02-chat-thread-top.png" }, + + { "name": "scroll chat thread up", "kind": "swipe", "direction": "up" }, + { "name": "settle after scroll", "kind": "wait", "seconds": 1.5 }, + { "name": "chat thread scrolled", "kind": "screenshot", "path": "03-chat-thread-scrolled.png" } + ] +}