UNPKG

@etsoo/toolpad

Version:

Dashboard framework extention based on Toolpad Core

64 lines (63 loc) 2.85 kB
"use strict"; 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 }); }); });