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