test: add frontend test suite
Some checks failed
Deploy to Frontend Servers / deploy (push) Failing after 43s
Some checks failed
Deploy to Frontend Servers / deploy (push) Failing after 43s
This commit is contained in:
27
src/favorites.test.ts
Normal file
27
src/favorites.test.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
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"]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user