1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-14 13:47:13 +01:00
metamask-extension/app/scripts/migrations/060.test.js
ryanml 86b61a2fc2
Removing support survey notification from What's New ()
* Removing support notification from what's new

* Adding migration for support notification removal

* Expanding test cases, using async/await for storage comparison
2021-05-18 10:55:55 -07:00

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);
});
});