Skip to content

Recovery screens

P4 implements the empty-state and notice recipes. The web selftest renders the actual application and intercepts API responses to make each empty or unavailable state deterministic. Failure scenes assert that the form retains input. Run AF_PLAYWRIGHT_ARGS=recovery.spec.ts make web-selftest-container to reproduce the captures; every image is also attached to the test report.

Web state Light Dark
No project registered Light No project registered Dark No project registered
No sessions Light No sessions Dark No sessions
No tasks Light No tasks Dark No tasks
No accounts Light No accounts Dark No accounts
Cannot reach the daemon Light Cannot reach the daemon Dark Cannot reach the daemon
Login expired Light Login expired Dark Login expired
Create failed Light Create failed Dark Create failed
Archive failed Light Archive failed Dark Archive failed
Delete session failed Light Delete session failed Dark Delete session failed
Task save failed Light Task save failed Dark Task save failed
Connecting… Light Connecting… Dark Connecting…
Sign in Light Sign in Dark Sign in
Tokenless login Light Tokenless login Dark Tokenless login
Persistent notice with Dismiss Light Persistent notice with Dismiss Dark Persistent notice with Dismiss

Login scenes assert a centred content column and a heading above the field/action. Zero-data scenes assert the rail has no duplicate empty message. Persistent notices have an explicit Dismiss button, whose click is asserted.