Defer media loading and strengthen persistence tests
All checks were successful
Deploy Sokko G / deploy (push) Successful in 18s
All checks were successful
Deploy Sokko G / deploy (push) Successful in 18s
This commit is contained in:
parent
09a2d4b71a
commit
d0e1fd73b1
19 changed files with 459 additions and 71 deletions
|
|
@ -27,3 +27,22 @@ test("a synchronous snapshot error aborts all its IndexedDB writes", async ({ pa
|
|||
modules: [{ key: "saved:note", data: { text: "Keep" } }]
|
||||
});
|
||||
});
|
||||
|
||||
test("partial snapshots preserve deferred values and roll back deletes on failure", async ({ page }) => {
|
||||
await resetSokkoStorage(page);
|
||||
const result = await page.evaluate(async () => {
|
||||
const db = await import("/src/utils/indexedDbStorage.js");
|
||||
await db.setToolboxSnapshot([{ id: "saved", modules: [] }], {}, { media: { image: "Keep" }, removed: { text: "Delete" } });
|
||||
let failed = false;
|
||||
try {
|
||||
await db.setToolboxSnapshot([{ id: "broken" }], {}, { broken: { invalid: () => {} } }, ["media"]);
|
||||
} catch { failed = true; }
|
||||
const afterFailure = await db.getAllModuleData();
|
||||
await db.setToolboxSnapshot([{ id: "saved", modules: [] }], {}, { note: { text: "New" } }, ["media"]);
|
||||
return { failed, afterFailure, afterSuccess: await db.getAllModuleData() };
|
||||
});
|
||||
expect(result).toEqual({ failed: true,
|
||||
afterFailure: [{ key: "media", data: { image: "Keep" } }, { key: "removed", data: { text: "Delete" } }],
|
||||
afterSuccess: [{ key: "media", data: { image: "Keep" } }, { key: "note", data: { text: "New" } }]
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue