[ENHANCEMENT] [MER-5674] Add LotE Plate Tectonics adaptive lesson strict Playwright coverage - #6761
Conversation
…ict Playwright coverage
AI Review —Transition actions from later results are ignoredfile: assets/automation/src/systems/torus/tasks/AdaptiveStrictContract.ts Unescaped part IDs can invalidate the locatorfile: assets/automation/src/systems/torus/pom/delivery/AdaptiveDeckPO.ts |
|
Superseded by #6788, which carries this branch commit for commit plus the shared strict verification framework (MER-5865). Why close instead of merge: every commit of this PR's branch is an ancestor of #6788's HEAD ( MER-5674 is delivered by #6788, whose title carries both tickets. |
MER-5674
Summary
actions.correct: true, with an ordered ledger asserted at the endWhat changed
New files:
lote-plate-tectonics.spec.ts— the E2E test on the strict entry point (173 lines)AdaptiveStrictContract.ts— manifest validation, receipt/ledger types, payload matchers,assertLedgerAdaptiveEvaluationObserver.ts— multi-event evaluation collector; attributes traffic by submitted part-path prefixes (attempt GUIDs rotate legally), separates saves/finalizes/evaluations by shapeadaptive-strict-driver.spec.ts,adaptive-strict-walk.spec.ts— 64 stubbed tests (no server): observer negatives, ledger negatives, and a scripted fake deck driving the strict walk through duplicate/foreign/out-of-order trafficModified files:
AdaptiveHappyPathTask.ts— newcompleteAdaptiveHappyPathStrict(per-screen manifest, one click per action, explicit transition state machine, navigation licensed via the server-minted attempt chain); the existingcompleteAdaptiveHappyPathcompat walk preserved verbatimAdaptiveDeckPO.ts— screen identity from[model][context](sequenceId/resourceId/attemptGuid), part inventory, verified widget drivers (fill-in-the-blanks via the widget's own selectmenu — programmatic DOM writes never reach the CAPI model and submitSelected Index: -1; drag-and-drop verified by DOM re-parenting, not geometry)playwright.config.ts— actionTimeout (a flaky iframe once held a getAttribute for 732 s)CHANGELOG.md— skip notice includes MER-5674Test environment setup
CI does not run these suites yet — MER-5857 tracks provisioning; this is for running locally.
Same env vars as MER-5672/5673 (
PLAYWRIGHT_SCENARIO_TOKEN,PLAYWRIGHT_ASSETS_BUCKET,PLAYWRIGHT_AUTOMATION_API_KEY).Seed the bucket with the MER-5674 private assets (course IP, not in the repo):
PLAYWRIGHT_BASE_URLmust behttp://127.0.0.1—localhostresolves to::1and the archive fetch dies with ECONNREFUSED.Running locally
Verification
verdict=true payloadMatch=truetsc/eslint/prettierclean on touched files (2 pre-existingliveSockettsc errors excluded, present on clean master)Known limitations
results[0]; activities withcustom.combineFeedback(4 of these 22 screens) can process several results — runs pass because the derivations agree here; recorded as a limit, addressed by the follow-up framework ticketFollow-up