import { describe, expect, it } from "vitest"; import { isFavorite, readFavorites, toggleFavorite } from "./favorites"; describe("favorites localStorage helpers", () => { it("returns an empty list for missing, invalid, or non-array values", () => { expect(readFavorites()).toEqual([]); localStorage.setItem("ark_favorites", "not-json"); expect(readFavorites()).toEqual([]); localStorage.setItem("ark_favorites", JSON.stringify({ id: "r1" })); expect(readFavorites()).toEqual([]); }); it("filters non-string entries and toggles favorite ids", () => { localStorage.setItem("ark_favorites", JSON.stringify(["r1", 123, "r2"])); expect(readFavorites()).toEqual(["r1", "r2"]); expect(toggleFavorite("r3")).toBe(true); expect(isFavorite("r3")).toBe(true); expect(readFavorites()).toEqual(["r1", "r2", "r3"]); expect(toggleFavorite("r1")).toBe(false); expect(isFavorite("r1")).toBe(false); expect(readFavorites()).toEqual(["r2", "r3"]); }); });