You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
2.9 KiB
103 lines
2.9 KiB
3 years ago
|
import { SUBJECT_TYPES } from '../../../shared/constants/app';
|
||
|
import migration69 from './069';
|
||
|
|
||
|
describe('migration #69', () => {
|
||
|
it('should update the version metadata', async () => {
|
||
|
const oldStorage = {
|
||
|
meta: {
|
||
|
version: 68,
|
||
|
},
|
||
|
data: {},
|
||
|
};
|
||
|
|
||
|
const newStorage = await migration69.migrate(oldStorage);
|
||
|
expect(newStorage.meta).toStrictEqual({
|
||
|
version: 69,
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it('should migrate all data', async () => {
|
||
|
const oldStorage = {
|
||
|
meta: {
|
||
|
version: 68,
|
||
|
},
|
||
|
data: {
|
||
|
FooController: { a: 'b' },
|
||
|
SubjectMetadataController: {
|
||
|
subjectMetadata: {
|
||
|
'https://1inch.exchange': {
|
||
|
iconUrl:
|
||
|
'https://1inch.exchange/assets/favicon/favicon-32x32.png',
|
||
|
name: 'DEX Aggregator - 1inch.exchange',
|
||
|
origin: 'https://1inch.exchange',
|
||
|
extensionId: null,
|
||
|
},
|
||
|
'https://ascii-tree-generator.com': {
|
||
|
iconUrl: 'https://ascii-tree-generator.com/favicon.ico',
|
||
|
name: 'ASCII Tree Generator',
|
||
|
origin: 'https://ascii-tree-generator.com',
|
||
|
extensionId: 'ascii-tree-generator-extension',
|
||
|
},
|
||
|
'https://null.com': null,
|
||
|
'https://foo.com': 'bad data',
|
||
|
'https://bar.com': ['bad data'],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
|
||
|
const newStorage = await migration69.migrate(oldStorage);
|
||
|
expect(newStorage).toStrictEqual({
|
||
|
meta: {
|
||
|
version: 69,
|
||
|
},
|
||
|
data: {
|
||
|
FooController: { a: 'b' },
|
||
|
SubjectMetadataController: {
|
||
|
subjectMetadata: {
|
||
|
'https://1inch.exchange': {
|
||
|
iconUrl:
|
||
|
'https://1inch.exchange/assets/favicon/favicon-32x32.png',
|
||
|
name: 'DEX Aggregator - 1inch.exchange',
|
||
|
origin: 'https://1inch.exchange',
|
||
|
extensionId: null,
|
||
|
subjectType: SUBJECT_TYPES.WEBSITE,
|
||
|
},
|
||
|
'https://ascii-tree-generator.com': {
|
||
|
iconUrl: 'https://ascii-tree-generator.com/favicon.ico',
|
||
|
name: 'ASCII Tree Generator',
|
||
|
origin: 'https://ascii-tree-generator.com',
|
||
|
extensionId: 'ascii-tree-generator-extension',
|
||
|
subjectType: SUBJECT_TYPES.EXTENSION,
|
||
|
},
|
||
|
'https://null.com': null,
|
||
|
'https://foo.com': 'bad data',
|
||
|
'https://bar.com': ['bad data'],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it('should handle missing SubjectMetadataController', async () => {
|
||
|
const oldStorage = {
|
||
|
meta: {
|
||
|
version: 68,
|
||
|
},
|
||
|
data: {
|
||
|
FooController: { a: 'b' },
|
||
|
},
|
||
|
};
|
||
|
|
||
|
const newStorage = await migration69.migrate(oldStorage);
|
||
|
expect(newStorage).toStrictEqual({
|
||
|
meta: {
|
||
|
version: 69,
|
||
|
},
|
||
|
data: {
|
||
|
FooController: { a: 'b' },
|
||
|
},
|
||
|
});
|
||
|
});
|
||
|
});
|