@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
162 lines (158 loc) • 4.34 kB
text/typescript
import { openTransportReplayer, RecordStore } from "@ledgerhq/hw-transport-mocker";
import getDeviceInfo from "../../hw/getDeviceInfo";
import { getLatestFirmwareForDeviceUseCase } from "../../device/use-cases/getLatestFirmwareForDeviceUseCase";
import { fetchNextFirmware } from "../../hw/installFinalFirmware";
import { firstValueFrom } from "rxjs";
import { DeviceInfo } from "@ledgerhq/types-live";
jest.setTimeout(20000);
/*
// FIXME not yet there?
test("1.2.0", async () => {
const deviceInfo = {
version: "1.2",
mcuVersion: "1.0",
majMin: "1.2",
providerName: null,
targetId: 823132162,
isOSU: false,
isBootloader: false,
managerAllowed: false,
pinValidated: false
};
const res = await getLatestFirmwareForDeviceUseCase(deviceInfo);
expect(res).toMatchObject({ final: {}, osu: {} });
});
*/
test("1.3.1", async () => {
const deviceInfo: DeviceInfo = {
version: "1.3.1",
mcuVersion: "1.1",
majMin: "1.3",
providerName: null,
targetId: 823132162,
isOSU: false,
isBootloader: false,
managerAllowed: true,
pinValidated: true,
seFlags: Buffer.alloc(0),
};
const res = await getLatestFirmwareForDeviceUseCase(deviceInfo);
expect(res).toMatchObject({
final: {},
osu: {},
});
});
test("1.4.2", async () => {
const deviceInfo: DeviceInfo = {
version: "1.4.2",
isBootloader: false,
isOSU: false,
managerAllowed: false,
mcuVersion: "1.6",
pinValidated: true,
providerName: null,
majMin: "1.4",
targetId: 823132163,
seFlags: Buffer.alloc(0),
};
const res = await getLatestFirmwareForDeviceUseCase(deviceInfo);
expect(res).toMatchObject({
final: {},
osu: {},
});
});
/*
test("1.5.5", async () => {
const deviceInfo = {
version: "1.5.5",
isBootloader: false,
isOSU: false,
managerAllowed: false,
mcuVersion: "1.7",
pinValidated: false,
providerName: null,
majMin: "1.5",
targetId: 823132164
};
const res = await getLatestFirmwareForDeviceUseCase(deviceInfo);
expect(res).toMatchObject({ final: {}, osu: {} });
});
*/
test("nano x 1.1.6", async () => {
const deviceInfo = {
version: "1.1.6",
mcuVersion: "2.3",
majMin: "1.1",
isBootloader: false,
isOSU: false,
managerAllowed: false,
pinValidated: true,
providerName: null,
targetId: 855638020,
seFlags: Buffer.alloc(0),
};
const res = await getLatestFirmwareForDeviceUseCase(deviceInfo);
expect(res).toBe(null);
});
// TODO waiting it to be stable
/*
test("nano x 1.2.4-1", async () => {
const deviceInfo = {
version: "1.2.4-1",
mcuVersion: "2.8",
majMin: "1.2",
providerName: null,
targetId: 855638020,
isOSU: false,
isBootloader: false,
managerAllowed: true,
pinValidated: true,
};
const res = await getLatestFirmwareForDeviceUseCase(deviceInfo);
expect(res).toBe(null);
});
*/
test("nanoS das", async () => {
const deviceInfo: DeviceInfo = {
isBootloader: false,
isOSU: false,
majMin: "1.4",
managerAllowed: false,
mcuVersion: "1.5",
pinValidated: true,
providerName: "das",
targetId: 823132163,
version: "1.4.2-das",
seFlags: Buffer.alloc(0),
};
const res = await getLatestFirmwareForDeviceUseCase(deviceInfo);
expect(res).toBe(null);
});
test("OSU 1.4.2", async () => {
const t = await openTransportReplayer(
RecordStore.fromString(`
=> b001000000
<= 0105424f4c4f5305312e362e3001029000
=> e001000000
<= 3110000309312e342e322d6f7375042000000004312e37002000000000000000000000000000000000000000000000000000000000000000009000
`),
);
const deviceInfo = await getDeviceInfo(t);
const next = await firstValueFrom(fetchNextFirmware(deviceInfo));
expect(next).toBeDefined();
expect(next.firmware).toBeTruthy();
});
test("OSU 1.5.5", async () => {
const t = await openTransportReplayer(
RecordStore.fromString(`
=> b001000000
<= 0105424f4c4f5305312e362e3001029000
=> e001000000
<= 3110000409312e352e352d6f7375042400000004312e35002000000000000000000000000000000000000000000000000000000000000000009000
`),
);
const deviceInfo = await getDeviceInfo(t);
const next = await firstValueFrom(fetchNextFirmware(deviceInfo));
expect(next).toBeDefined();
expect(next.firmware).toBeTruthy();
});