Migration to remove legacy local storage keys from localStorage (#9986)
* Migration to remove legacy local storage keys from localStorage * Update app/scripts/migrations/050.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Update app/scripts/migrations/050.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Fix unit tests for migration 50 * Fixing stubbing and localstorage reference in migration 50 * Update test/helper.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> Co-authored-by: Mark Stacey <markjstacey@gmail.com>feature/default_network_editable
parent
c515591e7b
commit
1661953e23
@ -0,0 +1,32 @@ |
||||
import { cloneDeep } from 'lodash' |
||||
|
||||
const version = 50 |
||||
|
||||
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', |
||||
] |
||||
|
||||
/** |
||||
* Migrate metaMetrics state to the new MetaMetrics controller |
||||
*/ |
||||
export default { |
||||
version, |
||||
async migrate(originalVersionedData) { |
||||
const versionedData = cloneDeep(originalVersionedData) |
||||
versionedData.meta.version = version |
||||
|
||||
LEGACY_LOCAL_STORAGE_KEYS.forEach((key) => |
||||
window.localStorage.removeItem(key), |
||||
) |
||||
|
||||
return versionedData |
||||
}, |
||||
} |
@ -0,0 +1,89 @@ |
||||
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], |
||||
) |
||||
}) |
||||
}) |
Loading…
Reference in new issue