diff --git a/e2e/tests/sync/supersync-lww-conflict.spec.ts b/e2e/tests/sync/supersync-lww-conflict.spec.ts index 02aaa4b71..93dcee5f7 100644 --- a/e2e/tests/sync/supersync-lww-conflict.spec.ts +++ b/e2e/tests/sync/supersync-lww-conflict.spec.ts @@ -1325,10 +1325,11 @@ test.describe('@supersync SuperSync LWW Conflict Resolution', () => { // 3. Client A deletes the task using reliable keyboard shortcut await deleteTask(clientA, taskName); + await clientA.page.waitForTimeout(50); // Flush operation to ensure DELETE is created console.log('[DeleteRace] Client A deleted task'); // 4. Client B updates the task (with later timestamp) - await clientB.page.waitForTimeout(1000); // Ensure later timestamp + await clientB.page.waitForTimeout(1000); // Ensure UPDATE has later timestamp than DELETE const taskLocatorB = clientB.page .locator(`task:not(.ng-animating):has-text("${taskName}")`) @@ -1345,6 +1346,9 @@ test.describe('@supersync SuperSync LWW Conflict Resolution', () => { await clientB.page.waitForTimeout(300); console.log('[DeleteRace] Client B updated task title'); + // Wait to ensure Client B's UPDATE operation is created and flushed + await clientB.page.waitForTimeout(500); + // 5. Client A syncs (uploads delete) await clientA.sync.syncAndWait(); console.log('[DeleteRace] Client A synced delete');