mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
117 lines
3.2 KiB
JavaScript
117 lines
3.2 KiB
JavaScript
import { LedgerTransportTypes } from '../../../shared/constants/hardware-wallets';
|
|
import migration66 from './066';
|
|
|
|
describe('migration #66', () => {
|
|
beforeEach(() => {
|
|
jest.resetAllMocks();
|
|
});
|
|
|
|
it('should update the version metadata', async () => {
|
|
const oldStorage = {
|
|
meta: {
|
|
version: 65,
|
|
},
|
|
data: {},
|
|
};
|
|
|
|
const newStorage = await migration66.migrate(oldStorage);
|
|
expect(newStorage.meta).toStrictEqual({
|
|
version: 66,
|
|
});
|
|
});
|
|
|
|
it('should set ledgerTransportType to `u2f` if no preferences controller exists and webhid is not available', async () => {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {},
|
|
};
|
|
|
|
const newStorage = await migration66.migrate(oldStorage);
|
|
expect(
|
|
newStorage.data.PreferencesController.ledgerTransportType,
|
|
).toStrictEqual(LedgerTransportTypes.u2f);
|
|
});
|
|
|
|
it('should set ledgerTransportType to `u2f` if no useLedgerLive property exists and webhid is not available', async () => {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {},
|
|
},
|
|
};
|
|
|
|
const newStorage = await migration66.migrate(oldStorage);
|
|
expect(
|
|
newStorage.data.PreferencesController.ledgerTransportType,
|
|
).toStrictEqual(LedgerTransportTypes.u2f);
|
|
});
|
|
|
|
it('should set ledgerTransportType to `u2f` if useLedgerLive is false and webhid is not available', async () => {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
useLedgerLive: false,
|
|
},
|
|
},
|
|
};
|
|
|
|
const newStorage = await migration66.migrate(oldStorage);
|
|
expect(
|
|
newStorage.data.PreferencesController.ledgerTransportType,
|
|
).toStrictEqual(LedgerTransportTypes.u2f);
|
|
});
|
|
|
|
it('should set ledgerTransportType to `webhid` if useLedgerLive is false and webhid is available', async () => {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
useLedgerLive: false,
|
|
},
|
|
},
|
|
};
|
|
jest
|
|
.spyOn(window, 'navigator', 'get')
|
|
.mockImplementation(() => ({ hid: true }));
|
|
const newStorage = await migration66.migrate(oldStorage);
|
|
expect(
|
|
newStorage.data.PreferencesController.ledgerTransportType,
|
|
).toStrictEqual(LedgerTransportTypes.webhid);
|
|
});
|
|
|
|
it('should set ledgerTransportType to `ledgerLive` if useLedgerLive is true', async () => {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
useLedgerLive: true,
|
|
},
|
|
},
|
|
};
|
|
|
|
const newStorage = await migration66.migrate(oldStorage);
|
|
expect(
|
|
newStorage.data.PreferencesController.ledgerTransportType,
|
|
).toStrictEqual('ledgerLive');
|
|
});
|
|
|
|
it('should not change ledgerTransportType if useLedgerLive is true and webhid is available', async () => {
|
|
const oldStorage = {
|
|
meta: {},
|
|
data: {
|
|
PreferencesController: {
|
|
useLedgerLive: true,
|
|
},
|
|
},
|
|
};
|
|
jest
|
|
.spyOn(window, 'navigator', 'get')
|
|
.mockImplementation(() => ({ hid: true }));
|
|
const newStorage = await migration66.migrate(oldStorage);
|
|
expect(
|
|
newStorage.data.PreferencesController.ledgerTransportType,
|
|
).toStrictEqual(LedgerTransportTypes.live);
|
|
});
|
|
});
|