✔ old business response is discarded when the active membership changes (2.618583ms)
✔ private calls carry business context but session discovery can detect another-tab switch (0.20625ms)
✔ failed write retains retry id, while an account switch clears it (10.497166ms)
✔ portal requests are independent of staff context changes (0.15025ms)
✔ private image response is discarded across an account switch (1.592625ms)
✔ private image lease is revoked on context change and release is idempotent (0.785375ms)
✔ staff switch does not revoke a customer portal image (0.165209ms)
✔ upload retry identity includes bytes, not just endpoint (7.142958ms)
✔ opening another preview does not announce an account switch; login does (1.55075ms)
✔ Week and day navigation cross months, years and UK clocks without shifting dates (12.455667ms)
✔ Midnight endings are exclusive while all-day end dates are inclusive (0.12325ms)
✔ Repeated UK hour shows distinguishable summer and winter clock labels (35.617375ms)
✔ fractional lines round half up in integer pence before subtotal and VAT (2.88075ms)
✔ percentage deposit rounds half up and leaves the exact remaining pence (0.837375ms)
✔ invalid deposit percentages and sub-penny deposits are rejected (1.311584ms)
✔ stage editing cannot silently drop or add a penny (0.213375ms)
✔ the repeated autumn hour requires the selected actual offset (47.321625ms)
✔ spring clock gap and seasonally incorrect offsets are rejected (0.409417ms)
✔ London date and intervals remain the same on a computer in another timezone (0.348458ms)
✔ incomplete, reversed and zero-duration correction inputs are rejected before saving (0.38325ms)
✔ customer price starts blank and no private source details become a document line (0.074209ms)
✔ timer display permits long captures but never negative elapsed time (0.069791ms)
✔ quoted commas, multiline text, escaped quotes, CRLF and blank lines (0.829ms)
✔ auto mapping and preview require explicit valid prices; no NaN/default repairs (1.607708ms)
✔ column mapping, row limits, reviewed price overrides and invalid costs (0.804042ms)
✔ comparison pairs render before then after without changing stored order (1.359125ms)
✔ reorder preserves identity and bounds (0.119709ms)
✔ public drafts and selected photos start with fresh public text (10.241292ms)
✔ reordering is bounded, preserves identities and leaves the saved array untouched (2.400291ms)
✔ new page starts unpublished with independent editable content (12.624542ms)
✔ page and service routes resolve exactly and links retain the business prefix (0.116209ms)
✔ light and dark branding retain a contrasting button text colour (0.145417ms)
ℹ tests 32
ℹ suites 0
ℹ pass 32
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 127.756958
