import { strict as assert } from 'assert' import sinon from 'sinon' import migration50 from '../../../app/scripts/migrations/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', function () { let mockLocalStorageRemoveItem beforeEach(function () { mockLocalStorageRemoveItem = sinon.stub(window.localStorage, 'removeItem') }) afterEach(function () { sinon.restore() }) it('should update the version metadata', async function () { const oldStorage = { meta: { version: 49, }, data: {}, } const newStorage = await migration50.migrate(oldStorage) assert.deepEqual(newStorage.meta, { version: 50, }) }) it('should call window.localStorage.removeItem for each legacy key', async function () { const oldStorage = { meta: { version: 49, }, data: {}, } await migration50.migrate(oldStorage) assert.equal(mockLocalStorageRemoveItem.callCount, 9) assert.equal( mockLocalStorageRemoveItem.getCall(0).args[0], LEGACY_LOCAL_STORAGE_KEYS[0], ) assert.equal( mockLocalStorageRemoveItem.getCall(1).args[0], LEGACY_LOCAL_STORAGE_KEYS[1], ) assert.equal( mockLocalStorageRemoveItem.getCall(2).args[0], LEGACY_LOCAL_STORAGE_KEYS[2], ) assert.equal( mockLocalStorageRemoveItem.getCall(3).args[0], LEGACY_LOCAL_STORAGE_KEYS[3], ) assert.equal( mockLocalStorageRemoveItem.getCall(4).args[0], LEGACY_LOCAL_STORAGE_KEYS[4], ) assert.equal( mockLocalStorageRemoveItem.getCall(5).args[0], LEGACY_LOCAL_STORAGE_KEYS[5], ) assert.equal( mockLocalStorageRemoveItem.getCall(6).args[0], LEGACY_LOCAL_STORAGE_KEYS[6], ) assert.equal( mockLocalStorageRemoveItem.getCall(7).args[0], LEGACY_LOCAL_STORAGE_KEYS[7], ) assert.equal( mockLocalStorageRemoveItem.getCall(8).args[0], LEGACY_LOCAL_STORAGE_KEYS[8], ) }) })