test(ui): qualify career evidence read and recovery states

This commit is contained in:
cesnimda
2026-11-04 09:06:47 +01:00
parent 505b0c01b9
commit b5b9069d1e
228 changed files with 3883 additions and 7 deletions
@@ -0,0 +1,11 @@
# Career Evidence Bank rendered review
4 November 2026. Source `a84a97cb61eda975d73690c818d56666f0929515`, after published Settings receipt505b0c01. The actual Evidence Bank and its native test source are byte-identical to the qualifiedb31ce617 source (`git diff` empty for both files). No application source, dependency, data contract or rendering build changed in this package. Reuse the sealed a84 export and its source-bound type/lint/build evidence; no fresh build or native test run is claimed.
PASSED:36 controlled journeys/216 axe scans and screenshots over all nine widths, EN/NB and light/dark. Six states: unsaved form draft, populated items, deletion confirmation, empty bank, read failure with a valid draft blocked from saving, successful retry preserving that draft and re-enabling Save. Draft also survives Overview/Evidence section changes. Deletion is cancelled; every non-GET request is blocked; zero mutations and zero preview/model requests. Synthetic nurse/electrician examples identify their provenance. No factual user evidence or provider data used.
The form and individually named evidence articles retain meaningful borders. They separate editing from existing factual records and their destructive controls; this is not an enclosing-card-inside-card collection. Their typography, input/button treatment and dividers use the shared A3 system. No safe decorative-removal candidate was invented, and no behavior changed solely to flatten the screen. The approved Career reference is an overview rather than a literal Evidence Bank mock-up; compare navigation, hierarchy and component treatment, not identical content or whole-image pixels.
All final scans have zero axe violations/page exceptions/unexpected writes. Deliberate503 read failure/retry is part of each journey; unrelated companies reads remain unavailable fixtures. The verifier's scopes are explicit: Profile editing, CV/letter/import/export, actual evidence Save/Delete, permission/session-race security and backend end-to-end are NOT RUN. Existing accepted native Evidence Bank tests are reused only where their component/test/dependencies remain unchanged. This is rendered workflow evidence, not independent final security acceptance.
Remaining Career route work: restore/conflict/import processing/failure/empty states, template/preview services and the complete Profile→document reuse and CV→export journeys. Native-device, screen-reader, native-language and owner visual acceptance remain OPEN. No extra owner decision needed for the next independent IM10 check. Rollback of this evidence package affects only its verifier/reports; no data rollback required.
File diff suppressed because it is too large Load Diff
@@ -178,9 +178,9 @@
"CareerWorkspacePage"
],
"visualStatus": "OPEN_SURFACES_SCOPED_REVIEW_FULL_ACCEPTANCE_OPEN",
"afterStatus": "PASSED:36 configurations /216 Career-family states;14 keyboard edit targets; synthetic revisions/import selection only; unavailable services disclosed",
"afterStatus": "PASSED:36 configurations /216 Career-family states;14 keyboard edit targets; synthetic revisions/import selection only; unavailable services disclosed; successor Evidence Bank36/216 states passed, zero writes; other route states remain open",
"functionalCriteria": "Original preservation register retained; no capability acceptance promotion",
"evidence": "evidence/career/BROWSER.json; CAREER_DOCUMENT_ACTIVITY.md"
"evidence": "evidence/career/BROWSER.json; CAREER_DOCUMENT_ACTIVITY.md; EVIDENCE_BANK_REVIEW.md; evidence/career-evidence/BROWSER.json"
},
{
"route": "/career/builder",
@@ -367,7 +367,6 @@
"ownerVisualAcceptance": "OPEN",
"knownRemainingStateReviews": {
"/career": [
"Evidence bank actual rendering",
"Profile restore/conflict and error/empty review",
"Import failure/processing/empty states and all template previews"
],
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,147 @@
{
"screens": [
{
"width": 320,
"language": "en",
"mode": "light",
"state": "form-draft",
"capture": "targeted viewport",
"violations": []
},
{
"width": 320,
"language": "en",
"mode": "light",
"state": "populated",
"capture": "targeted viewport",
"violations": []
},
{
"width": 320,
"language": "en",
"mode": "light",
"state": "delete-confirmation",
"capture": "targeted viewport",
"violations": []
},
{
"width": 320,
"language": "en",
"mode": "light",
"state": "empty",
"capture": "viewport at top",
"violations": []
},
{
"width": 320,
"language": "en",
"mode": "light",
"state": "error",
"capture": "viewport at top",
"violations": []
},
{
"width": 320,
"language": "en",
"mode": "light",
"state": "retry",
"capture": "targeted viewport",
"violations": []
},
{
"width": 1440,
"language": "en",
"mode": "light",
"state": "form-draft",
"capture": "targeted viewport",
"violations": []
},
{
"width": 1440,
"language": "en",
"mode": "light",
"state": "populated",
"capture": "targeted viewport",
"violations": []
},
{
"width": 1440,
"language": "en",
"mode": "light",
"state": "delete-confirmation",
"capture": "targeted viewport",
"violations": []
},
{
"width": 1440,
"language": "en",
"mode": "light",
"state": "empty",
"capture": "full page at top",
"violations": []
},
{
"width": 1440,
"language": "en",
"mode": "light",
"state": "error",
"capture": "full page at top",
"violations": []
},
{
"width": 1440,
"language": "en",
"mode": "light",
"state": "retry",
"capture": "targeted viewport",
"violations": []
}
],
"journeys": [
{
"width": 320,
"language": "en",
"mode": "light",
"evidenceDraftAcrossSections": "PASS",
"deletionCancelled": "PASS",
"emptyErrorRetry": "PASS",
"evidenceSaveDelete": "NOT RUN",
"editorImportAndExport": "NOT RUN"
},
{
"width": 1440,
"language": "en",
"mode": "light",
"evidenceDraftAcrossSections": "PASS",
"deletionCancelled": "PASS",
"emptyErrorRetry": "PASS",
"evidenceSaveDelete": "NOT RUN",
"editorImportAndExport": "NOT RUN"
}
],
"errors": [],
"unexpectedWrites": [],
"mockedWrites": [],
"renderReads": 0,
"unavailableReads": [
"/api/companies",
"/api/companies",
"/api/companies",
"/api/companies",
"/api/companies",
"/api/companies"
],
"blockedExternal": [
"https://fonts.googleapis.com",
"https://fonts.googleapis.com",
"https://fonts.googleapis.com",
"https://fonts.googleapis.com",
"https://fonts.googleapis.com",
"https://fonts.googleapis.com"
],
"limits": [
"All API and preview responses are controlled fixtures; not backend end-to-end or physical PDF qualification.",
"Evidence-only scope: delete confirmation cancelled, all mutations blocked; profile/editor/import/export workflows NOT RUN.",
"No native device, screen reader, provider, integrated security, deployment or release acceptance."
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Some files were not shown because too many files have changed in this diff Show More