mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-26 20:39:08 +01:00
f47cfbbb3e
The `assert` module has two modes: "Legacy" and "strict". When using strict mode, the "strict" version of each assertion method is implied. Whereas in legacy mode, by default it will use the deprecated, "loose" version of each assertion. We now use strict mode everywhere. A few tests required updates where they were asserting the wrong thing, and it was passing beforehand due to the loose matching.
436 lines
11 KiB
JavaScript
436 lines
11 KiB
JavaScript
import { strict as assert } from 'assert';
|
|
import migration39 from './039';
|
|
|
|
describe('migration #39', function () {
|
|
it('should update the version metadata', function (done) {
|
|
const oldStorage = {
|
|
meta: {
|
|
version: 38,
|
|
},
|
|
data: {},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.meta, {
|
|
version: 39,
|
|
});
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
|
|
it('should update old DAI token symbol to SAI in tokens', function (done) {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
tokens: [
|
|
{
|
|
address: '0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359',
|
|
decimals: 18,
|
|
symbol: 'DAI',
|
|
},
|
|
{
|
|
address: '0x0d8775f648430679a709e98d2b0cb6250d2887ef',
|
|
symbol: 'BAT',
|
|
decimals: 18,
|
|
},
|
|
{
|
|
address: '0x617b3f8050a0bd94b6b1da02b4384ee5b4df13f4',
|
|
symbol: 'META',
|
|
decimals: 18,
|
|
},
|
|
],
|
|
},
|
|
},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.data.PreferencesController, {
|
|
tokens: [
|
|
{
|
|
address: '0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359',
|
|
decimals: 18,
|
|
symbol: 'SAI',
|
|
},
|
|
{
|
|
address: '0x0d8775f648430679a709e98d2b0cb6250d2887ef',
|
|
symbol: 'BAT',
|
|
decimals: 18,
|
|
},
|
|
{
|
|
address: '0x617b3f8050a0bd94b6b1da02b4384ee5b4df13f4',
|
|
symbol: 'META',
|
|
decimals: 18,
|
|
},
|
|
],
|
|
});
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
|
|
it('should update old DAI token symbol to SAI in accountTokens', function (done) {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
accountTokens: {
|
|
'0x7250739de134d33ec7ab1ee592711e15098c9d2d': {
|
|
mainnet: [
|
|
{
|
|
address: '0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359',
|
|
decimals: 18,
|
|
symbol: 'DAI',
|
|
},
|
|
],
|
|
},
|
|
'0x8e5d75d60224ea0c33d0041e75de68b1c3cb6dd5': {
|
|
mainnet: [],
|
|
rinkeby: [],
|
|
},
|
|
'0x8e5d75d60224ea0c33d1041e75de68b1c3cb6dd5': {},
|
|
'0xb3958fb96c8201486ae20be1d5c9f58083df343a': {
|
|
mainnet: [
|
|
{
|
|
address: '0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359',
|
|
decimals: 18,
|
|
symbol: 'DAI',
|
|
},
|
|
{
|
|
address: '0x0d8775f648430679a709e98d2b0cb6250d2887ef',
|
|
decimals: 18,
|
|
symbol: 'BAT',
|
|
},
|
|
{
|
|
address: '0x617b3f8050a0bd94b6b1da02b4384ee5b4df13f4',
|
|
decimals: 18,
|
|
symbol: 'META',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.data.PreferencesController, {
|
|
accountTokens: {
|
|
'0x7250739de134d33ec7ab1ee592711e15098c9d2d': {
|
|
mainnet: [
|
|
{
|
|
address: '0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359',
|
|
decimals: 18,
|
|
symbol: 'SAI',
|
|
},
|
|
],
|
|
},
|
|
'0x8e5d75d60224ea0c33d0041e75de68b1c3cb6dd5': {
|
|
mainnet: [],
|
|
rinkeby: [],
|
|
},
|
|
'0x8e5d75d60224ea0c33d1041e75de68b1c3cb6dd5': {},
|
|
'0xb3958fb96c8201486ae20be1d5c9f58083df343a': {
|
|
mainnet: [
|
|
{
|
|
address: '0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359',
|
|
decimals: 18,
|
|
symbol: 'SAI',
|
|
},
|
|
{
|
|
address: '0x0d8775f648430679a709e98d2b0cb6250d2887ef',
|
|
decimals: 18,
|
|
symbol: 'BAT',
|
|
},
|
|
{
|
|
address: '0x617b3f8050a0bd94b6b1da02b4384ee5b4df13f4',
|
|
decimals: 18,
|
|
symbol: 'META',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
});
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
|
|
it('should NOT change any state if accountTokens is not an object', function (done) {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
accountTokens: [],
|
|
},
|
|
},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.data, oldStorage.data);
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
|
|
it('should NOT change any state if accountTokens is an object with invalid values', function (done) {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
accountTokens: {
|
|
'0x7250739de134d33ec7ab1ee592711e15098c9d2d': [
|
|
{
|
|
address: '0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359',
|
|
decimals: 18,
|
|
symbol: 'DAI',
|
|
},
|
|
],
|
|
'0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359': null,
|
|
'0x8e5d75d60224ea0c33d0041e75de68b1c3cb6dd5': {
|
|
mainnet: [null, undefined, [], 42],
|
|
rinkeby: null,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.data, oldStorage.data);
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
|
|
it('should NOT change any state if accountTokens includes the new DAI token', function (done) {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
accountTokens: {
|
|
'0x7250739de134d33ec7ab1ee592711e15098c9d2d': {
|
|
mainnet: [
|
|
{
|
|
address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
|
|
decimals: 18,
|
|
symbol: 'DAI',
|
|
},
|
|
],
|
|
},
|
|
'0x8e5d75d60224ea0c33d0041e75de68b1c3cb6dd5': {
|
|
mainnet: [],
|
|
rinkeby: [],
|
|
},
|
|
'0x8e5d75d60224ea0c33d1041e75de68b1c3cb6dd5': {},
|
|
'0xb3958fb96c8201486ae20be1d5c9f58083df343a': {
|
|
mainnet: [
|
|
{
|
|
address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
|
|
decimals: 18,
|
|
symbol: 'DAI',
|
|
},
|
|
{
|
|
address: '0x0d8775f648430679a709e98d2b0cb6250d2887ef',
|
|
decimals: 18,
|
|
symbol: 'BAT',
|
|
},
|
|
{
|
|
address: '0x617b3f8050a0bd94b6b1da02b4384ee5b4df13f4',
|
|
decimals: 18,
|
|
symbol: 'META',
|
|
},
|
|
],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.data, oldStorage.data);
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
|
|
it('should NOT change any state if tokens includes the new DAI token', function (done) {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
tokens: [
|
|
{
|
|
address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
|
|
symbol: 'DAI',
|
|
decimals: 18,
|
|
},
|
|
{
|
|
address: '0x617b3f8050a0bd94b6b1da02b4384ee5b4df13f4',
|
|
symbol: 'META',
|
|
decimals: 18,
|
|
},
|
|
],
|
|
},
|
|
},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.data, oldStorage.data);
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
|
|
it('should NOT change any state if tokens does not include DAI', function (done) {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
tokens: [
|
|
{
|
|
address: '0x0d8775f648430679a709e98d2b0cb6250d2887ef',
|
|
symbol: 'BAT',
|
|
decimals: 18,
|
|
},
|
|
{
|
|
address: '0x617b3f8050a0bd94b6b1da02b4384ee5b4df13f4',
|
|
symbol: 'META',
|
|
decimals: 18,
|
|
},
|
|
],
|
|
},
|
|
},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.data, oldStorage.data);
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
|
|
it('should NOT change any state if a tokens property has invalid entries', function (done) {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
tokens: [null, [], undefined, 42],
|
|
},
|
|
},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.data, oldStorage.data);
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
|
|
it('should NOT change any state if a tokens property is not an array', function (done) {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
tokens: {},
|
|
},
|
|
},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.data, oldStorage.data);
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
|
|
it('should NOT change any state if a tokens property is null', function (done) {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
tokens: null,
|
|
},
|
|
},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.data, oldStorage.data);
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
|
|
it('should NOT change any state if a tokens property is missing', function (done) {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {},
|
|
},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.data, oldStorage.data);
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
|
|
it('should NOT change any state if a accountTokens property is missing', function (done) {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {},
|
|
},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.data, oldStorage.data);
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
|
|
it('should NOT change any state if PreferencesController is missing', function (done) {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {},
|
|
};
|
|
|
|
migration39
|
|
.migrate(oldStorage)
|
|
.then((newStorage) => {
|
|
assert.deepEqual(newStorage.data, oldStorage.data);
|
|
done();
|
|
})
|
|
.catch(done);
|
|
});
|
|
});
|