UNPKG

@yoroi/common

Version:

The Common package of Yoroi SDK

44 lines (43 loc) 2.17 kB
import React from 'react'; import renderer from 'react-test-renderer'; import { AsyncStorageProvider, useAsyncStorage } from './async-storage-reactjs'; // Update with the actual module path import { mountAsyncStorage } from '../adapters/async-storage'; const rootStorage = mountAsyncStorage({ path: '/' }); describe('AsyncStorageProvider and useAsyncStorage Tests', () => { test('AsyncStorageProvider provides storage context', () => { const TestComponent = () => { const storage = useAsyncStorage(); return /*#__PURE__*/React.createElement("div", null, storage ? 'Storage Available' : 'Storage Unavailable'); }; const tree = renderer.create( /*#__PURE__*/React.createElement(AsyncStorageProvider, { storage: rootStorage }, /*#__PURE__*/React.createElement(TestComponent, null))); const treeInstance = tree.root; const textElement = treeInstance.findByType('div'); expect(textElement.props.children).toBe('Storage Available'); }); test('AsyncStorageProvider provides the default rootStorage context', () => { const TestComponent = () => { const storage = useAsyncStorage(); return /*#__PURE__*/React.createElement("div", null, storage ? 'Storage Available' : 'Storage Unavailable'); }; const tree = renderer.create( /*#__PURE__*/React.createElement(AsyncStorageProvider, null, /*#__PURE__*/React.createElement(TestComponent, null))); const treeInstance = tree.root; const textElement = treeInstance.findByType('div'); expect(textElement.props.children).toBe('Storage Available'); }); test('useAsyncStorage throws error without AsyncStorageProvider', () => { const InvalidComponent = () => { useAsyncStorage(); return /*#__PURE__*/React.createElement("div", null, "Invalid Component"); }; // Suppress console error caused by the 'invalid' function const originalError = console.error; console.error = jest.fn(); expect(() => renderer.create( /*#__PURE__*/React.createElement(InvalidComponent, null))).toThrow('Missing AsyncStorageProvider'); console.error = originalError; }); }); //# sourceMappingURL=async-storage-reactjs.test.js.map