UNPKG

@ledgerhq/live-common

Version:
118 lines 6.5 kB
"use strict"; 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