import migration60 from './060'; describe('migration #60', () => { it('should update the version metadata', async () => { const oldStorage = { meta: { version: 59, }, data: {}, }; const newStorage = await migration60.migrate(oldStorage); expect(newStorage.meta).toStrictEqual({ version: 60, }); }); it('prunes the support notification', async () => { 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); // Expect support notification is removed expect(notificationKeys).toHaveLength(3); notificationKeys.forEach((key) => { expect(notifications[key].date).not.toStrictEqual('2020-08-31'); }); }); it('does not modify state when the support notification does not exist', async () => { 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); expect(oldStorage.data).toStrictEqual(newStorage.data); }); it('does not modify state when NotificationsController is undefined', async () => { const oldStorage = { meta: {}, data: { arbitraryPropOne: 1, arbitraryPropTwo: 2, }, }; const newStorage = await migration60.migrate(oldStorage); expect(oldStorage.data).toStrictEqual(newStorage.data); }); it('does not modify state when notifications are undefined', async () => { const oldStorage = { meta: {}, data: { NotificationController: { arbitraryControllerProp: 'foo', }, }, }; const newStorage = await migration60.migrate(oldStorage); expect(oldStorage.data).toStrictEqual(newStorage.data); }); it('does not modify state when notifications are not an object', async () => { const oldStorage = { meta: {}, data: { NotificationController: { notifications: [], }, }, }; const newStorage = await migration60.migrate(oldStorage); expect(oldStorage.data).toStrictEqual(newStorage.data); }); });