auto-git:
[change] tests/serialization/editor-draft-storage.test.ts
This commit is contained in:
@@ -10,7 +10,10 @@ import {
|
||||
saveSceneDocumentDraft,
|
||||
type KeyValueStorage
|
||||
} from "../../src/serialization/local-draft-storage";
|
||||
import { MemoryEditorDraftStorage } from "../../src/serialization/editor-draft-storage";
|
||||
import {
|
||||
MemoryEditorDraftStorage,
|
||||
createBrowserEditorDraftStorage
|
||||
} from "../../src/serialization/editor-draft-storage";
|
||||
import { createDefaultViewportLayoutState } from "../../src/viewport-three/viewport-layout";
|
||||
|
||||
class MemoryStorage implements KeyValueStorage {
|
||||
@@ -140,6 +143,36 @@ describe("editor draft storage", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("uses localStorage fallback storage when IndexedDB is unavailable", async () => {
|
||||
const legacyStorage = new MemoryStorage();
|
||||
const result = await createBrowserEditorDraftStorage({
|
||||
legacyStorage,
|
||||
indexedDb: null
|
||||
});
|
||||
|
||||
expect(result.storage).not.toBeNull();
|
||||
expect(result.diagnostic).toContain("IndexedDB autosave is unavailable");
|
||||
|
||||
await result.storage?.saveDocumentDraft(
|
||||
createProjectDocumentFromSceneDocument(
|
||||
createEmptySceneDocument({ name: "Fallback Draft" })
|
||||
)
|
||||
);
|
||||
|
||||
const recoveredResult = await result.storage?.loadDraft();
|
||||
|
||||
expect(recoveredResult?.status).toBe("loaded");
|
||||
|
||||
if (recoveredResult?.status !== "loaded") {
|
||||
return;
|
||||
}
|
||||
|
||||
expect(
|
||||
recoveredResult.document.scenes[recoveredResult.document.activeSceneId]
|
||||
?.name
|
||||
).toBe("Fallback Draft");
|
||||
});
|
||||
|
||||
it("saves viewport-only drafts without requiring document validation", async () => {
|
||||
const storage = new MemoryEditorDraftStorage();
|
||||
const viewportLayoutState = createDefaultViewportLayoutState();
|
||||
|
||||
Reference in New Issue
Block a user