|
|
|
import sinon from 'sinon';
|
|
|
|
import migration50 from './050';
|
|
|
|
|
|
|
|
const LEGACY_LOCAL_STORAGE_KEYS = [
|
|
|
|
'METASWAP_GAS_PRICE_ESTIMATES_LAST_RETRIEVED',
|
|
|
|
'METASWAP_GAS_PRICE_ESTIMATES',
|
|
|
|
'cachedFetch',
|
|
|
|
'BASIC_PRICE_ESTIMATES_LAST_RETRIEVED',
|
|
|
|
'BASIC_PRICE_ESTIMATES',
|
|
|
|
'BASIC_GAS_AND_TIME_API_ESTIMATES',
|
|
|
|
'BASIC_GAS_AND_TIME_API_ESTIMATES_LAST_RETRIEVED',
|
|
|
|
'GAS_API_ESTIMATES_LAST_RETRIEVED',
|
|
|
|
'GAS_API_ESTIMATES',
|
|
|
|
];
|
|
|
|
|
|
|
|
describe('migration #50', () => {
|
|
|
|
let mockLocalStorageRemoveItem;
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
mockLocalStorageRemoveItem = jest
|
|
|
|
// eslint-disable-next-line no-undef
|
|
|
|
.spyOn(Storage.prototype, 'removeItem')
|
|
|
|
.mockImplementation();
|
|
|
|
});
|
|
|
|
|
|
|
|
afterEach(() => {
|
|
|
|
sinon.restore();
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should update the version metadata', async () => {
|
|
|
|
const oldStorage = {
|
|
|
|
meta: {
|
|
|
|
version: 49,
|
|
|
|
},
|
|
|
|
data: {},
|
|
|
|
};
|
|
|
|
|
|
|
|
const newStorage = await migration50.migrate(oldStorage);
|
|
|
|
expect(newStorage.meta).toStrictEqual({
|
|
|
|
version: 50,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should call window.localStorage.removeItem for each legacy key', async () => {
|
|
|
|
const oldStorage = {
|
|
|
|
meta: {
|
|
|
|
version: 49,
|
|
|
|
},
|
|
|
|
data: {},
|
|
|
|
};
|
|
|
|
|
|
|
|
await migration50.migrate(oldStorage);
|
|
|
|
expect(mockLocalStorageRemoveItem.mock.calls).toHaveLength(9);
|
|
|
|
expect(mockLocalStorageRemoveItem.mock.calls[0][0]).toStrictEqual(
|
|
|
|
LEGACY_LOCAL_STORAGE_KEYS[0],
|
|
|
|
);
|
|
|
|
expect(mockLocalStorageRemoveItem.mock.calls[1][0]).toStrictEqual(
|
|
|
|
LEGACY_LOCAL_STORAGE_KEYS[1],
|
|
|
|
);
|
|
|
|
expect(mockLocalStorageRemoveItem.mock.calls[2][0]).toStrictEqual(
|
|
|
|
LEGACY_LOCAL_STORAGE_KEYS[2],
|
|
|
|
);
|
|
|
|
expect(mockLocalStorageRemoveItem.mock.calls[3][0]).toStrictEqual(
|
|
|
|
LEGACY_LOCAL_STORAGE_KEYS[3],
|
|
|
|
);
|
|
|
|
expect(mockLocalStorageRemoveItem.mock.calls[4][0]).toStrictEqual(
|
|
|
|
LEGACY_LOCAL_STORAGE_KEYS[4],
|
|
|
|
);
|
|
|
|
expect(mockLocalStorageRemoveItem.mock.calls[5][0]).toStrictEqual(
|
|
|
|
LEGACY_LOCAL_STORAGE_KEYS[5],
|
|
|
|
);
|
|
|
|
expect(mockLocalStorageRemoveItem.mock.calls[6][0]).toStrictEqual(
|
|
|
|
LEGACY_LOCAL_STORAGE_KEYS[6],
|
|
|
|
);
|
|
|
|
expect(mockLocalStorageRemoveItem.mock.calls[7][0]).toStrictEqual(
|
|
|
|
LEGACY_LOCAL_STORAGE_KEYS[7],
|
|
|
|
);
|
|
|
|
expect(mockLocalStorageRemoveItem.mock.calls[8][0]).toStrictEqual(
|
|
|
|
LEGACY_LOCAL_STORAGE_KEYS[8],
|
|
|
|
);
|
|
|
|
});
|
|
|
|
});
|