Files
Automata/packages/editor-ui/src/composables/useStorage.test.ts
Mutasem Aldmour 151e60f829 fix(editor): Fix local storage flags defaulting to undefined string (#7603)
useStorage takes the default value `undefined` and sets it in local
storage.. also returns "undefined" as string which breaks onboarding
flows

Github issue / Community forum post (link here to close automatically):
2023-11-07 10:06:08 +01:00

49 lines
1.1 KiB
TypeScript

import { nextTick } from 'vue';
import { useStorage } from './useStorage';
describe('useStorage', () => {
beforeEach(() => {
localStorage.clear();
});
it('should initialize with null if no value is stored in localStorage', () => {
const key = 'test-key';
const data = useStorage(key);
expect(data.value).toBeNull();
});
it('should initialize with the stored value if it exists in localStorage', () => {
const key = 'test-key';
const value = 'test-value';
localStorage.setItem(key, value);
const data = useStorage(key);
expect(data.value).toBe(value);
});
it('should update localStorage when the data ref is updated', async () => {
const key = 'test-key';
const value = 'test-value';
const data = useStorage(key);
data.value = value;
await nextTick();
expect(localStorage.getItem(key)).toBe(value);
});
it('should remove the key from localStorage when the data ref is set to null', async () => {
const key = 'test-key';
const value = 'test-value';
localStorage.setItem(key, value);
const data = useStorage(key);
data.value = null;
await nextTick();
expect(localStorage.getItem(key)).toBeNull();
});
});