import { beforeEach, describe, expect, it } from "vitest"; import { getPreviousToolcraftStorageKey, readToolcraftLocalStorageEntry, } from "./storage-key-migration"; beforeEach(() => { window.localStorage.clear(); }); describe("Toolcraft storage key migration", () => { it("prefers the current key", () => { const key = "toolcraft:example:state:v2"; const previousKey = getPreviousToolcraftStorageKey(key)!; window.localStorage.setItem(key, "current"); window.localStorage.setItem(previousKey, "previous"); expect(readToolcraftLocalStorageEntry(key)).toEqual({ storageKey: key, value: "current", }); }); it("reads a previous identity key without copying or deleting it", () => { const key = "toolcraft:example:state:v2"; const previousKey = getPreviousToolcraftStorageKey(key)!; const newerPayload = JSON.stringify({ state: {}, version: 3 }); window.localStorage.setItem(previousKey, newerPayload); expect(readToolcraftLocalStorageEntry(key)).toEqual({ storageKey: previousKey, value: newerPayload, }); expect(window.localStorage.getItem(key)).toBeNull(); expect(window.localStorage.getItem(previousKey)).toBe(newerPayload); }); });