/** * O-series — Fase 2b.2 (offline-first) * * Verifies the optimistic queue + post-reconnect flush flow. Uses Playwright's * `context.setOffline(true)` to simulate a dropped connection. Skipped until * the sync module + offline banner exist. */ import { test } from '@playwright/test'; test.describe.skip('Offline queue + reconnect flush (pending sync module)', () => { test('O-01: mutations while offline stay locally and show the "offline" banner', async () => { // Given Borja is on /lists/[id] with real network // When context.setOffline(true) + add two items // Then both items render locally and a "sin conexión / offline" banner is visible }); test('O-02: going back online flushes pending_ops and hides the banner', async () => { // Given Borja is offline with 2 pending items in the queue // When context.setOffline(false) // Then within 5s: the banner disappears, both items exist on the server // (verified via a second authenticated context that re-fetches the list), // and pending_ops is empty (checked via a page.evaluate reading IDB). }); });