@yoroi/swap
Version:
The Swap package of Yoroi SDK
56 lines (55 loc) • 2.05 kB
JavaScript
;
var _storage = require("./storage");
var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
jest.mock('@react-native-async-storage/async-storage', () => {
const mock = require('@react-native-async-storage/async-storage/jest/async-storage-mock');
return {
__esModule: true,
default: mock,
...mock
};
});
const mockedAsyncStorage = _asyncStorage.default;
describe('swapStorageMaker', () => {
let storage;
beforeEach(() => {
jest.clearAllMocks();
storage = (0, _storage.swapStorageMaker)();
});
it('should save settings', async () => {
const settings = {
slippage: 0.5,
routingPreference: 'auto'
};
await storage.settings.save(settings);
expect(mockedAsyncStorage.setItem).toHaveBeenCalledWith(_storage.swapStorageSettingsKey, JSON.stringify(settings));
});
it('should read settings', async () => {
const settings = {
slippage: 0.2,
routingPreference: 'auto'
};
mockedAsyncStorage.getItem.mockResolvedValueOnce(JSON.stringify(settings));
const result = await storage.settings.read();
expect(result).toEqual(settings);
expect(mockedAsyncStorage.getItem).toHaveBeenCalledWith(_storage.swapStorageSettingsKey);
});
it('should fallback to default settings on invalid data', async () => {
mockedAsyncStorage.getItem.mockResolvedValueOnce('not-json');
const result = await storage.settings.read();
expect(result).toEqual({
slippage: 1,
routingPreference: 'auto'
});
});
it('should remove settings', async () => {
await storage.settings.remove();
expect(mockedAsyncStorage.removeItem).toHaveBeenCalledWith(_storage.swapStorageSettingsKey);
});
it('should clear all swap storage', async () => {
await storage.clear();
expect(mockedAsyncStorage.removeItem).toHaveBeenCalledWith(_storage.swapStorageSettingsKey);
});
});
//# sourceMappingURL=storage.test.js.map