@etsoo/toolpad
Version:
Dashboard framework extention based on Toolpad Core
64 lines (63 loc) • 2.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const vitest_1 = require("vitest");
const react_1 = require("@testing-library/react");
const useStorageState_1 = require("./useStorageState");
(0, vitest_1.describe)("useStorageState", () => {
(0, vitest_1.beforeEach)(() => {
window.localStorage.clear();
});
(0, vitest_1.test)("can do basic local storage with initial value", async () => {
const { result, rerender } = (0, react_1.renderHook)(() => (0, useStorageState_1.useStorageState)(window.localStorage, "foo", "bar"));
(0, vitest_1.expect)(result.current[0]).toBe("bar");
(0, react_1.act)(() => {
result.current[1]("baz");
});
rerender();
(0, vitest_1.expect)(result.current[0]).toBe("baz");
});
(0, vitest_1.test)("can do basic local storage without initial value", async () => {
const { result, rerender } = (0, react_1.renderHook)(() => (0, useStorageState_1.useStorageState)(window.localStorage, "foo"));
(0, vitest_1.expect)(result.current[0]).toBe(null);
(0, react_1.act)(() => {
result.current[1]("baz");
});
rerender();
(0, vitest_1.expect)(result.current[0]).toBe("baz");
});
(0, vitest_1.test)("can clear storage value, and reset to intiial value", async () => {
const { result, rerender } = (0, react_1.renderHook)(() => (0, useStorageState_1.useStorageState)(window.localStorage, "foo", "bar"));
(0, react_1.act)(() => {
result.current[1]("baz");
});
rerender();
(0, vitest_1.expect)(result.current[0]).toBe("baz");
(0, react_1.act)(() => {
result.current[1](null);
});
rerender();
(0, vitest_1.expect)(result.current[0]).toBe("bar");
});
(0, vitest_1.test)("can clear storage value", async () => {
const { result, rerender } = (0, react_1.renderHook)(() => (0, useStorageState_1.useStorageState)(window.localStorage, "foo"));
(0, react_1.act)(() => {
result.current[1]("baz");
});
rerender();
(0, vitest_1.expect)(result.current[0]).toBe("baz");
(0, react_1.act)(() => {
result.current[1](null);
});
rerender();
(0, vitest_1.expect)(result.current[0]).toBe(null);
});
(0, vitest_1.test)("can handle complex types", async () => {
const { result, rerender } = (0, react_1.renderHook)(() => (0, useStorageState_1.useStorageState)(window.localStorage, "foo", { a: 1 }, { codec: JSON }));
(0, vitest_1.expect)(result.current[0]).toEqual({ a: 1 });
(0, react_1.act)(() => {
result.current[1]({ b: 2 });
});
rerender();
(0, vitest_1.expect)(result.current[0]).toEqual({ b: 2 });
});
});