@yoroi/resolver
Version:
Yoroi domain resolver
42 lines • 1.96 kB
JavaScript
import AsyncStorage from '@react-native-async-storage/async-storage';
import { resolverStorageMaker, resolverStorageNoticedKey } from './storage';
jest.mock('@react-native-async-storage/async-storage');
const mockedAsyncStorage = AsyncStorage;
describe('resolverStorageMaker', () => {
let resolverStorage;
beforeEach(() => {
jest.clearAllMocks();
resolverStorage = resolverStorageMaker();
});
it('showNotice.save', async () => {
const showNotice = true;
await resolverStorage.showNotice.save(showNotice);
expect(mockedAsyncStorage.setItem).toHaveBeenCalledWith(resolverStorageNoticedKey, JSON.stringify(showNotice));
});
it('showNotice.read', async () => {
const showNotice = true;
mockedAsyncStorage.getItem.mockResolvedValue(JSON.stringify(showNotice));
const result = await resolverStorage.showNotice.read();
expect(result).toEqual(showNotice);
expect(mockedAsyncStorage.getItem).toHaveBeenCalledWith(resolverStorageNoticedKey);
});
it('showNotice.read should fallback to true when empty / invalid', async () => {
mockedAsyncStorage.getItem.mockResolvedValue(JSON.stringify('not a boolean'));
const result = await resolverStorage.showNotice.read();
expect(result).toEqual(true);
expect(mockedAsyncStorage.getItem).toHaveBeenCalledWith(resolverStorageNoticedKey);
mockedAsyncStorage.getItem.mockResolvedValue('[1, 2, ]');
const result2 = await resolverStorage.showNotice.read();
expect(result2).toEqual(true);
expect(mockedAsyncStorage.getItem).toHaveBeenCalledWith(resolverStorageNoticedKey);
});
it('showNotice.remove', async () => {
await resolverStorage.showNotice.remove();
expect(mockedAsyncStorage.removeItem).toHaveBeenCalledWith(resolverStorageNoticedKey);
});
it('clear', async () => {
await resolverStorage.clear();
expect(mockedAsyncStorage.removeItem).toHaveBeenCalledTimes(1);
});
});
//# sourceMappingURL=storage.test.js.map