✔ old business response is discarded when the active membership changes (1.865333ms) ✔ private calls carry business context but session discovery can detect another-tab switch (0.218333ms) ✔ failed write retains retry id, while an account switch clears it (6.25625ms) ✔ portal requests are independent of staff context changes (0.12825ms) ✔ private image response is discarded across an account switch (1.913708ms) ✔ private image lease is revoked on context change and release is idempotent (1.136417ms) ✔ staff switch does not revoke a customer portal image (0.162166ms) ✔ upload retry identity includes bytes, not just endpoint (4.954208ms) ✔ opening another preview does not announce an account switch; login does (1.65725ms) ✔ Week and day navigation cross months, years and UK clocks without shifting dates (6.096125ms) ✔ Midnight endings are exclusive while all-day end dates are inclusive (0.082083ms) ✔ Repeated UK hour shows distinguishable summer and winter clock labels (33.53225ms) ✔ fractional lines round half up in integer pence before subtotal and VAT (0.796167ms) ✔ percentage deposit rounds half up and leaves the exact remaining pence (0.725917ms) ✔ invalid deposit percentages and sub-penny deposits are rejected (0.628541ms) ✔ stage editing cannot silently drop or add a penny (0.3035ms) ✔ the repeated autumn hour requires the selected actual offset (41.27875ms) ✔ spring clock gap and seasonally incorrect offsets are rejected (0.384583ms) ✔ London date and intervals remain the same on a computer in another timezone (0.408458ms) ✔ incomplete, reversed and zero-duration correction inputs are rejected before saving (0.452166ms) ✔ customer price starts blank and no private source details become a document line (0.089709ms) ✔ timer display permits long captures but never negative elapsed time (0.067417ms) ✔ quoted commas, multiline text, escaped quotes, CRLF and blank lines (1.201958ms) ✔ auto mapping and preview require explicit valid prices; no NaN/default repairs (0.542042ms) ✔ column mapping, row limits, reviewed price overrides and invalid costs (0.594208ms) ✔ comparison pairs render before then after without changing stored order (1.175625ms) ✔ reorder preserves identity and bounds (0.243458ms) ✔ public drafts and selected photos start with fresh public text (3.205959ms) ✔ switching between week and month rules keeps valid explicit choices (6.500042ms) ✔ all-day conversion clears incompatible clock inputs (0.087375ms) ✔ single visit proposal retains original identity and requires fresh acknowledgement (0.220292ms) ✔ booking edits send booleans and exclude server and history fields (0.2565ms) ✔ suggested window is inclusive and bounded through DST (0.087791ms) ✔ month views include leap days and cross-year navigation (0.1545ms) ✔ range rejects reversed or over-62-day windows (0.099708ms) ✔ weekly windows and DST remain London calendar dates (0.055375ms) ✔ excluded placeholder can propose a reviewed single-date override without assuming a booking (0.092709ms) ✔ reordering is bounded, preserves identities and leaves the saved array untouched (0.696041ms) ✔ new page starts unpublished with independent editable content (1.638459ms) ✔ page and service routes resolve exactly and links retain the business prefix (0.082875ms) ✔ light and dark branding retain a contrasting button text colour (0.078542ms) ℹ tests 41 ℹ suites 0 ℹ pass 41 ℹ fail 0 ℹ cancelled 0 ℹ skipped 0 ℹ todo 0 ℹ duration_ms 132.3205