mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-12 20:57:12 +01:00
323 lines
9.3 KiB
JavaScript
323 lines
9.3 KiB
JavaScript
|
import migration77 from './077';
|
||
|
|
||
|
describe('migration #77', () => {
|
||
|
it('should update the version metadata', async () => {
|
||
|
const oldStorage = {
|
||
|
meta: {
|
||
|
version: 76,
|
||
|
},
|
||
|
};
|
||
|
|
||
|
const newStorage = await migration77.migrate(oldStorage);
|
||
|
expect(newStorage.meta).toStrictEqual({
|
||
|
version: 77,
|
||
|
});
|
||
|
});
|
||
|
it('should change the data from array to object for a single network', async () => {
|
||
|
const oldStorage = {
|
||
|
meta: {
|
||
|
version: 76,
|
||
|
},
|
||
|
data: {
|
||
|
TokenListController: {
|
||
|
tokenList: {
|
||
|
'0x514910771af9ca656af840dff83e8264ecf986ca': {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
tokensChainsCache: {
|
||
|
1: {
|
||
|
timestamp: 1234,
|
||
|
data: [
|
||
|
{
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
{
|
||
|
address: '0xc00e94cb662c3520282e6f5717214004a7f26888',
|
||
|
symbol: 'COMP',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
const newStorage = await migration77.migrate(oldStorage);
|
||
|
expect(newStorage).toStrictEqual({
|
||
|
meta: {
|
||
|
version: 77,
|
||
|
},
|
||
|
data: {
|
||
|
TokenListController: {
|
||
|
tokenList: {
|
||
|
'0x514910771af9ca656af840dff83e8264ecf986ca': {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
tokensChainsCache: {
|
||
|
1: {
|
||
|
timestamp: 1234,
|
||
|
data: {
|
||
|
'0x514910771af9ca656af840dff83e8264ecf986ca': {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
'0xc00e94cb662c3520282e6f5717214004a7f26888': {
|
||
|
address: '0xc00e94cb662c3520282e6f5717214004a7f26888',
|
||
|
symbol: 'COMP',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
});
|
||
|
});
|
||
|
it('should change the data from array to object for a multiple networks', async () => {
|
||
|
const oldStorage = {
|
||
|
meta: {
|
||
|
version: 76,
|
||
|
},
|
||
|
data: {
|
||
|
TokenListController: {
|
||
|
tokenList: {
|
||
|
'0x514910771af9ca656af840dff83e8264ecf986ca': {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
tokensChainsCache: {
|
||
|
1: {
|
||
|
timestamp: 1234,
|
||
|
data: [
|
||
|
{
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
{
|
||
|
address: '0xc00e94cb662c3520282e6f5717214004a7f26888',
|
||
|
symbol: 'COMP',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
56: {
|
||
|
timestamp: 1324,
|
||
|
data: [
|
||
|
{
|
||
|
address: '0x3ee2200efb3400fabb9aacf31297cbdd1d435d47',
|
||
|
symbol: 'ADA',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
{
|
||
|
address: '0x928e55dab735aa8260af3cedada18b5f70c72f1b',
|
||
|
symbol: 'FRONT',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
const newStorage = await migration77.migrate(oldStorage);
|
||
|
expect(newStorage).toStrictEqual({
|
||
|
meta: {
|
||
|
version: 77,
|
||
|
},
|
||
|
data: {
|
||
|
TokenListController: {
|
||
|
tokenList: {
|
||
|
'0x514910771af9ca656af840dff83e8264ecf986ca': {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
tokensChainsCache: {
|
||
|
1: {
|
||
|
timestamp: 1234,
|
||
|
data: {
|
||
|
'0x514910771af9ca656af840dff83e8264ecf986ca': {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
'0xc00e94cb662c3520282e6f5717214004a7f26888': {
|
||
|
address: '0xc00e94cb662c3520282e6f5717214004a7f26888',
|
||
|
symbol: 'COMP',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
56: {
|
||
|
timestamp: 1324,
|
||
|
data: {
|
||
|
'0x3ee2200efb3400fabb9aacf31297cbdd1d435d47': {
|
||
|
address: '0x3ee2200efb3400fabb9aacf31297cbdd1d435d47',
|
||
|
symbol: 'ADA',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
'0x928e55dab735aa8260af3cedada18b5f70c72f1b': {
|
||
|
address: '0x928e55dab735aa8260af3cedada18b5f70c72f1b',
|
||
|
symbol: 'FRONT',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
});
|
||
|
});
|
||
|
it('should not change anything if the data is already an object', async () => {
|
||
|
const oldStorage = {
|
||
|
meta: {
|
||
|
version: 76,
|
||
|
},
|
||
|
data: {
|
||
|
TokenListController: {
|
||
|
tokenList: {
|
||
|
'0x514910771af9ca656af840dff83e8264ecf986ca': {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
tokensChainsCache: {
|
||
|
1: {
|
||
|
timestamp: 1234,
|
||
|
data: {
|
||
|
'0x514910771af9ca656af840dff83e8264ecf986ca': {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
'0xc00e94cb662c3520282e6f5717214004a7f26888': {
|
||
|
address: '0xc00e94cb662c3520282e6f5717214004a7f26888',
|
||
|
symbol: 'COMP',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
const newStorage = await migration77.migrate(oldStorage);
|
||
|
expect(newStorage).toStrictEqual({
|
||
|
meta: {
|
||
|
version: 77,
|
||
|
},
|
||
|
data: {
|
||
|
TokenListController: {
|
||
|
tokenList: {
|
||
|
'0x514910771af9ca656af840dff83e8264ecf986ca': {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
tokensChainsCache: {
|
||
|
1: {
|
||
|
timestamp: 1234,
|
||
|
data: {
|
||
|
'0x514910771af9ca656af840dff83e8264ecf986ca': {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
'0xc00e94cb662c3520282e6f5717214004a7f26888': {
|
||
|
address: '0xc00e94cb662c3520282e6f5717214004a7f26888',
|
||
|
symbol: 'COMP',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
});
|
||
|
});
|
||
|
it('should correct the address keys if the object is keyed wrong', async () => {
|
||
|
const oldStorage = {
|
||
|
meta: {
|
||
|
version: 76,
|
||
|
},
|
||
|
data: {
|
||
|
TokenListController: {
|
||
|
tokenList: {
|
||
|
'0x514910771af9ca656af840dff83e8264ecf986ca': {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
tokensChainsCache: {
|
||
|
1: {
|
||
|
timestamp: 1234,
|
||
|
data: {
|
||
|
0: {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
1: {
|
||
|
address: '0xc00e94cb662c3520282e6f5717214004a7f26888',
|
||
|
symbol: 'COMP',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
const newStorage = await migration77.migrate(oldStorage);
|
||
|
expect(newStorage).toStrictEqual({
|
||
|
meta: {
|
||
|
version: 77,
|
||
|
},
|
||
|
data: {
|
||
|
TokenListController: {
|
||
|
tokenList: {
|
||
|
'0x514910771af9ca656af840dff83e8264ecf986ca': {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
tokensChainsCache: {
|
||
|
1: {
|
||
|
timestamp: 1234,
|
||
|
data: {
|
||
|
'0x514910771af9ca656af840dff83e8264ecf986ca': {
|
||
|
address: '0x514910771af9ca656af840dff83e8264ecf986ca',
|
||
|
symbol: 'LINK',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
'0xc00e94cb662c3520282e6f5717214004a7f26888': {
|
||
|
address: '0xc00e94cb662c3520282e6f5717214004a7f26888',
|
||
|
symbol: 'COMP',
|
||
|
decimals: 18,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
});
|
||
|
});
|
||
|
});
|