@yoroi/common
Version:
The Common package of Yoroi SDK
44 lines (43 loc) • 2.17 kB
JavaScript
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