mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-02 06:07:06 +01:00
86b61a2fc2
* Removing support notification from what's new * Adding migration for support notification removal * Expanding test cases, using async/await for storage comparison
144 lines
3.7 KiB
JavaScript
144 lines
3.7 KiB
JavaScript
import { strict as assert } from 'assert';
|
|
import migration60 from './060';
|
|
|
|
describe('migration #60', function () {
|
|
it('should update the version metadata', async function () {
|
|
const oldStorage = {
|
|
meta: {
|
|
version: 59,
|
|
},
|
|
data: {},
|
|
};
|
|
|
|
const newStorage = await migration60.migrate(oldStorage);
|
|
assert.deepEqual(newStorage.meta, {
|
|
version: 60,
|
|
});
|
|
});
|
|
|
|
it('prunes the support notification', async function () {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
NotificationController: {
|
|
notifications: {
|
|
1: {
|
|
id: 1,
|
|
date: '2021-03-17',
|
|
image: {
|
|
src: 'images/mobile-link-qr.svg',
|
|
height: '230px',
|
|
width: '230px',
|
|
placeImageBelowDescription: true,
|
|
},
|
|
},
|
|
2: {
|
|
id: 2,
|
|
date: '2020-08-31',
|
|
},
|
|
3: {
|
|
id: 3,
|
|
date: '2021-03-08',
|
|
},
|
|
4: {
|
|
id: 4,
|
|
date: '2021-05-11',
|
|
image: {
|
|
src: 'images/source-logos-bsc.svg',
|
|
width: '100%',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
const newStorage = await migration60.migrate(oldStorage);
|
|
const { notifications } = newStorage.data.NotificationController;
|
|
const notificationKeys = Object.keys(notifications);
|
|
// Assert support notification is removed
|
|
assert.equal(notificationKeys.length, 3);
|
|
notificationKeys.forEach((key) => {
|
|
assert.notEqual(notifications[key].date, '2020-08-31');
|
|
});
|
|
});
|
|
|
|
it('does not modify state when the support notification does not exist', async function () {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
NotificationController: {
|
|
notifications: {
|
|
1: {
|
|
id: 1,
|
|
date: '2021-03-17',
|
|
image: {
|
|
src: 'images/mobile-link-qr.svg',
|
|
height: '230px',
|
|
width: '230px',
|
|
placeImageBelowDescription: true,
|
|
},
|
|
},
|
|
3: {
|
|
id: 3,
|
|
date: '2021-03-08',
|
|
},
|
|
4: {
|
|
id: 4,
|
|
date: '2021-05-11',
|
|
image: {
|
|
src: 'images/source-logos-bsc.svg',
|
|
width: '100%',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
const newStorage = await migration60.migrate(oldStorage);
|
|
assert.deepEqual(oldStorage.data, newStorage.data);
|
|
});
|
|
|
|
it('does not modify state when NotificationsController is undefined', async function () {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
arbitraryPropOne: 1,
|
|
arbitraryPropTwo: 2,
|
|
},
|
|
};
|
|
|
|
const newStorage = await migration60.migrate(oldStorage);
|
|
assert.deepEqual(oldStorage.data, newStorage.data);
|
|
});
|
|
|
|
it('does not modify state when notifications are undefined', async function () {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
NotificationController: {
|
|
arbitraryControllerProp: 'foo',
|
|
},
|
|
},
|
|
};
|
|
|
|
const newStorage = await migration60.migrate(oldStorage);
|
|
assert.deepEqual(oldStorage.data, newStorage.data);
|
|
});
|
|
|
|
it('does not modify state when notifications are not an object', async function () {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
NotificationController: {
|
|
notifications: [],
|
|
},
|
|
},
|
|
};
|
|
|
|
const newStorage = await migration60.migrate(oldStorage);
|
|
assert.deepEqual(oldStorage.data, newStorage.data);
|
|
});
|
|
});
|