@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
118 lines • 6.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const types_devices_1 = require("@ledgerhq/types-devices");
const getIgnoredOSUpdatesForDeviceModelAndPlatform_1 = require("./getIgnoredOSUpdatesForDeviceModelAndPlatform");
describe("getIgnoredOSUpdatesForDeviceModelAndPlatform", () => {
const mockConfig = {
ios: {
[types_devices_1.DeviceModelId.nanoS]: ["1.6.0", "1.6.1"],
[types_devices_1.DeviceModelId.nanoX]: ["2.0.0"],
[types_devices_1.DeviceModelId.nanoSP]: ["1.0.0", "1.0.1", "1.0.2"],
},
android: {
[types_devices_1.DeviceModelId.nanoS]: ["1.5.0"],
[types_devices_1.DeviceModelId.nanoX]: ["2.1.0", "2.1.1"],
},
macos: {
[types_devices_1.DeviceModelId.nanoX]: ["2.2.0"],
},
windows: {
[types_devices_1.DeviceModelId.stax]: ["3.0.0"],
},
linux: {
[types_devices_1.DeviceModelId.europa]: ["4.0.0", "4.0.1"],
},
};
describe("when config is undefined", () => {
it("should return empty array", () => {
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(undefined, types_devices_1.DeviceModelId.nanoS, "ios");
expect(result).toEqual([]);
});
});
describe("when config is null", () => {
it("should return empty array", () => {
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(null, types_devices_1.DeviceModelId.nanoS, "ios");
expect(result).toEqual([]);
});
});
describe("when platform does not exist in config", () => {
it("should return empty array", () => {
const configWithoutPlatform = {
ios: { [types_devices_1.DeviceModelId.nanoS]: ["1.6.0"] },
};
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(configWithoutPlatform, types_devices_1.DeviceModelId.nanoS, "android");
expect(result).toEqual([]);
});
});
describe("when device model does not exist for platform", () => {
it("should return empty array", () => {
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.stax, "ios");
expect(result).toEqual([]);
});
});
describe("when device model exists but has no ignored updates", () => {
it("should return empty array", () => {
const configWithEmptyArray = {
ios: {
[types_devices_1.DeviceModelId.nanoS]: [],
},
};
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(configWithEmptyArray, types_devices_1.DeviceModelId.nanoS, "ios");
expect(result).toEqual([]);
});
});
describe("when device model exists and has ignored updates", () => {
it("should return the ignored updates for iOS", () => {
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.nanoS, "ios");
expect(result).toEqual(["1.6.0", "1.6.1"]);
});
it("should return the ignored updates for Android", () => {
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.nanoX, "android");
expect(result).toEqual(["2.1.0", "2.1.1"]);
});
it("should return multiple ignored updates", () => {
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.nanoSP, "ios");
expect(result).toEqual(["1.0.0", "1.0.1", "1.0.2"]);
});
it("should return ignored updates for macOS", () => {
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.nanoX, "macos");
expect(result).toEqual(["2.2.0"]);
});
it("should return ignored updates for Windows", () => {
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.stax, "windows");
expect(result).toEqual(["3.0.0"]);
});
it("should return ignored updates for Linux", () => {
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(mockConfig, types_devices_1.DeviceModelId.europa, "linux");
expect(result).toEqual(["4.0.0", "4.0.1"]);
});
});
describe("edge cases", () => {
it("should handle empty config object", () => {
const emptyConfig = {};
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(emptyConfig, types_devices_1.DeviceModelId.nanoS, "ios");
expect(result).toEqual([]);
});
it("should handle config with empty platform objects", () => {
const configWithEmptyPlatforms = {
ios: {},
android: {},
macos: {},
windows: {},
linux: {},
};
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(configWithEmptyPlatforms, types_devices_1.DeviceModelId.nanoS, "ios");
expect(result).toEqual([]);
});
it("should handle undefined device model entries", () => {
const configWithUndefined = {
ios: {
[types_devices_1.DeviceModelId.nanoS]: undefined,
},
};
const result = (0, getIgnoredOSUpdatesForDeviceModelAndPlatform_1.getIgnoredOSUpdatesForDeviceModelAndPlatform)(configWithUndefined, types_devices_1.DeviceModelId.nanoS, "ios");
expect(result).toEqual([]);
});
});
});
//# sourceMappingURL=getIgnoredOSUpdatesForDeviceModelAndPlatform.test.js.map