@ledgerhq/device-core 0.6.6-nightly.6 → 0.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +11 -43
  3. package/lib/capabilities/isCustomLockScreenSupported.test.d.ts +2 -0
  4. package/lib/capabilities/isCustomLockScreenSupported.test.d.ts.map +1 -0
  5. package/lib/capabilities/isCustomLockScreenSupported.test.js +26 -0
  6. package/lib/capabilities/isCustomLockScreenSupported.test.js.map +1 -0
  7. package/lib/capabilities/isEditDeviceNameSupported.test.d.ts +2 -0
  8. package/lib/capabilities/isEditDeviceNameSupported.test.d.ts.map +1 -0
  9. package/lib/capabilities/isEditDeviceNameSupported.test.js +25 -0
  10. package/lib/capabilities/isEditDeviceNameSupported.test.js.map +1 -0
  11. package/lib/capabilities/isSyncOnboardingSupported.test.d.ts +2 -0
  12. package/lib/capabilities/isSyncOnboardingSupported.test.d.ts.map +1 -0
  13. package/lib/capabilities/isSyncOnboardingSupported.test.js +18 -0
  14. package/lib/capabilities/isSyncOnboardingSupported.test.js.map +1 -0
  15. package/lib/commands/entities/AppStorageInfo.test.d.ts +2 -0
  16. package/lib/commands/entities/AppStorageInfo.test.d.ts.map +1 -0
  17. package/lib/commands/entities/AppStorageInfo.test.js +48 -0
  18. package/lib/commands/entities/AppStorageInfo.test.js.map +1 -0
  19. package/lib/commands/use-cases/app-backup/backupAppStorage.test.d.ts +2 -0
  20. package/lib/commands/use-cases/app-backup/backupAppStorage.test.d.ts.map +1 -0
  21. package/lib/commands/use-cases/app-backup/backupAppStorage.test.js +47 -0
  22. package/lib/commands/use-cases/app-backup/backupAppStorage.test.js.map +1 -0
  23. package/lib/commands/use-cases/app-backup/getAppStorageInfo.test.d.ts +2 -0
  24. package/lib/commands/use-cases/app-backup/getAppStorageInfo.test.d.ts.map +1 -0
  25. package/lib/commands/use-cases/app-backup/getAppStorageInfo.test.js +58 -0
  26. package/lib/commands/use-cases/app-backup/getAppStorageInfo.test.js.map +1 -0
  27. package/lib/commands/use-cases/app-backup/restoreAppStorage.test.d.ts +2 -0
  28. package/lib/commands/use-cases/app-backup/restoreAppStorage.test.d.ts.map +1 -0
  29. package/lib/commands/use-cases/app-backup/restoreAppStorage.test.js +51 -0
  30. package/lib/commands/use-cases/app-backup/restoreAppStorage.test.js.map +1 -0
  31. package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.test.d.ts +2 -0
  32. package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.test.d.ts.map +1 -0
  33. package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.test.js +40 -0
  34. package/lib/commands/use-cases/app-backup/restoreAppStorageCommit.test.js.map +1 -0
  35. package/lib/commands/use-cases/app-backup/restoreAppStorageInit.test.d.ts +2 -0
  36. package/lib/commands/use-cases/app-backup/restoreAppStorageInit.test.d.ts.map +1 -0
  37. package/lib/commands/use-cases/app-backup/restoreAppStorageInit.test.js +55 -0
  38. package/lib/commands/use-cases/app-backup/restoreAppStorageInit.test.js.map +1 -0
  39. package/lib/commands/use-cases/consent/reinstallConfigurationConsent.test.d.ts +2 -0
  40. package/lib/commands/use-cases/consent/reinstallConfigurationConsent.test.d.ts.map +1 -0
  41. package/lib/commands/use-cases/consent/reinstallConfigurationConsent.test.js +39 -0
  42. package/lib/commands/use-cases/consent/reinstallConfigurationConsent.test.js.map +1 -0
  43. package/lib/commands/use-cases/isBootloaderVersionSupported.test.d.ts +2 -0
  44. package/lib/commands/use-cases/isBootloaderVersionSupported.test.d.ts.map +1 -0
  45. package/lib/commands/use-cases/isBootloaderVersionSupported.test.js +63 -0
  46. package/lib/commands/use-cases/isBootloaderVersionSupported.test.js.map +1 -0
  47. package/lib/commands/use-cases/isCharonSupported.test.d.ts +2 -0
  48. package/lib/commands/use-cases/isCharonSupported.test.d.ts.map +1 -0
  49. package/lib/commands/use-cases/isCharonSupported.test.js +46 -0
  50. package/lib/commands/use-cases/isCharonSupported.test.js.map +1 -0
  51. package/lib/commands/use-cases/isDeviceLocalizationSupported.test.d.ts +2 -0
  52. package/lib/commands/use-cases/isDeviceLocalizationSupported.test.d.ts.map +1 -0
  53. package/lib/commands/use-cases/isDeviceLocalizationSupported.test.js +55 -0
  54. package/lib/commands/use-cases/isDeviceLocalizationSupported.test.js.map +1 -0
  55. package/lib/commands/use-cases/isHardwareVersionSupported.test.d.ts +2 -0
  56. package/lib/commands/use-cases/isHardwareVersionSupported.test.d.ts.map +1 -0
  57. package/lib/commands/use-cases/isHardwareVersionSupported.test.js +36 -0
  58. package/lib/commands/use-cases/isHardwareVersionSupported.test.js.map +1 -0
  59. package/lib/commands/use-cases/isRecoverSupported.test.d.ts +2 -0
  60. package/lib/commands/use-cases/isRecoverSupported.test.d.ts.map +1 -0
  61. package/lib/commands/use-cases/isRecoverSupported.test.js +54 -0
  62. package/lib/commands/use-cases/isRecoverSupported.test.js.map +1 -0
  63. package/lib/commands/use-cases/parseGetDeviceNameResponse.test.d.ts +2 -0
  64. package/lib/commands/use-cases/parseGetDeviceNameResponse.test.d.ts.map +1 -0
  65. package/lib/commands/use-cases/parseGetDeviceNameResponse.test.js +27 -0
  66. package/lib/commands/use-cases/parseGetDeviceNameResponse.test.js.map +1 -0
  67. package/lib/commands/use-cases/parseGetVersionResponse.test.d.ts +2 -0
  68. package/lib/commands/use-cases/parseGetVersionResponse.test.d.ts.map +1 -0
  69. package/lib/commands/use-cases/parseGetVersionResponse.test.js +145 -0
  70. package/lib/commands/use-cases/parseGetVersionResponse.test.js.map +1 -0
  71. package/lib/firmwareUpdate/shouldForceFirmwareUpdate.test.d.ts +2 -0
  72. package/lib/firmwareUpdate/shouldForceFirmwareUpdate.test.d.ts.map +1 -0
  73. package/lib/firmwareUpdate/shouldForceFirmwareUpdate.test.js +69 -0
  74. package/lib/firmwareUpdate/shouldForceFirmwareUpdate.test.js.map +1 -0
  75. package/lib/index.d.ts +0 -1
  76. package/lib/index.d.ts.map +1 -1
  77. package/lib/index.js.map +1 -1
  78. package/lib/managerApi/repositories/HttpManagerApiRepository.test.d.ts +2 -0
  79. package/lib/managerApi/repositories/HttpManagerApiRepository.test.d.ts.map +1 -0
  80. package/lib/managerApi/repositories/HttpManagerApiRepository.test.js +390 -0
  81. package/lib/managerApi/repositories/HttpManagerApiRepository.test.js.map +1 -0
  82. package/lib/managerApi/use-cases/getAppsCatalogForDevice.d.ts +1 -1
  83. package/lib/managerApi/use-cases/getAppsCatalogForDevice.d.ts.map +1 -1
  84. package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.d.ts +2 -0
  85. package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.d.ts.map +1 -0
  86. package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.js +169 -0
  87. package/lib/managerApi/use-cases/getLatestFirmwareForDevice.test.js.map +1 -0
  88. package/lib-es/capabilities/isCustomLockScreenSupported.test.d.ts +2 -0
  89. package/lib-es/capabilities/isCustomLockScreenSupported.test.d.ts.map +1 -0
  90. package/lib-es/capabilities/isCustomLockScreenSupported.test.js +24 -0
  91. package/lib-es/capabilities/isCustomLockScreenSupported.test.js.map +1 -0
  92. package/lib-es/capabilities/isEditDeviceNameSupported.test.d.ts +2 -0
  93. package/lib-es/capabilities/isEditDeviceNameSupported.test.d.ts.map +1 -0
  94. package/lib-es/capabilities/isEditDeviceNameSupported.test.js +23 -0
  95. package/lib-es/capabilities/isEditDeviceNameSupported.test.js.map +1 -0
  96. package/lib-es/capabilities/isSyncOnboardingSupported.test.d.ts +2 -0
  97. package/lib-es/capabilities/isSyncOnboardingSupported.test.d.ts.map +1 -0
  98. package/lib-es/capabilities/isSyncOnboardingSupported.test.js +16 -0
  99. package/lib-es/capabilities/isSyncOnboardingSupported.test.js.map +1 -0
  100. package/lib-es/commands/entities/AppStorageInfo.test.d.ts +2 -0
  101. package/lib-es/commands/entities/AppStorageInfo.test.d.ts.map +1 -0
  102. package/lib-es/commands/entities/AppStorageInfo.test.js +46 -0
  103. package/lib-es/commands/entities/AppStorageInfo.test.js.map +1 -0
  104. package/lib-es/commands/use-cases/app-backup/backupAppStorage.test.d.ts +2 -0
  105. package/lib-es/commands/use-cases/app-backup/backupAppStorage.test.d.ts.map +1 -0
  106. package/lib-es/commands/use-cases/app-backup/backupAppStorage.test.js +45 -0
  107. package/lib-es/commands/use-cases/app-backup/backupAppStorage.test.js.map +1 -0
  108. package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.test.d.ts +2 -0
  109. package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.test.d.ts.map +1 -0
  110. package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.test.js +56 -0
  111. package/lib-es/commands/use-cases/app-backup/getAppStorageInfo.test.js.map +1 -0
  112. package/lib-es/commands/use-cases/app-backup/restoreAppStorage.test.d.ts +2 -0
  113. package/lib-es/commands/use-cases/app-backup/restoreAppStorage.test.d.ts.map +1 -0
  114. package/lib-es/commands/use-cases/app-backup/restoreAppStorage.test.js +49 -0
  115. package/lib-es/commands/use-cases/app-backup/restoreAppStorage.test.js.map +1 -0
  116. package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.test.d.ts +2 -0
  117. package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.test.d.ts.map +1 -0
  118. package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.test.js +38 -0
  119. package/lib-es/commands/use-cases/app-backup/restoreAppStorageCommit.test.js.map +1 -0
  120. package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.test.d.ts +2 -0
  121. package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.test.d.ts.map +1 -0
  122. package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.test.js +53 -0
  123. package/lib-es/commands/use-cases/app-backup/restoreAppStorageInit.test.js.map +1 -0
  124. package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.test.d.ts +2 -0
  125. package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.test.d.ts.map +1 -0
  126. package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.test.js +37 -0
  127. package/lib-es/commands/use-cases/consent/reinstallConfigurationConsent.test.js.map +1 -0
  128. package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.d.ts +2 -0
  129. package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.d.ts.map +1 -0
  130. package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.js +61 -0
  131. package/lib-es/commands/use-cases/isBootloaderVersionSupported.test.js.map +1 -0
  132. package/lib-es/commands/use-cases/isCharonSupported.test.d.ts +2 -0
  133. package/lib-es/commands/use-cases/isCharonSupported.test.d.ts.map +1 -0
  134. package/lib-es/commands/use-cases/isCharonSupported.test.js +44 -0
  135. package/lib-es/commands/use-cases/isCharonSupported.test.js.map +1 -0
  136. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.d.ts +2 -0
  137. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.d.ts.map +1 -0
  138. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.js +53 -0
  139. package/lib-es/commands/use-cases/isDeviceLocalizationSupported.test.js.map +1 -0
  140. package/lib-es/commands/use-cases/isHardwareVersionSupported.test.d.ts +2 -0
  141. package/lib-es/commands/use-cases/isHardwareVersionSupported.test.d.ts.map +1 -0
  142. package/lib-es/commands/use-cases/isHardwareVersionSupported.test.js +34 -0
  143. package/lib-es/commands/use-cases/isHardwareVersionSupported.test.js.map +1 -0
  144. package/lib-es/commands/use-cases/isRecoverSupported.test.d.ts +2 -0
  145. package/lib-es/commands/use-cases/isRecoverSupported.test.d.ts.map +1 -0
  146. package/lib-es/commands/use-cases/isRecoverSupported.test.js +52 -0
  147. package/lib-es/commands/use-cases/isRecoverSupported.test.js.map +1 -0
  148. package/lib-es/commands/use-cases/parseGetDeviceNameResponse.test.d.ts +2 -0
  149. package/lib-es/commands/use-cases/parseGetDeviceNameResponse.test.d.ts.map +1 -0
  150. package/lib-es/commands/use-cases/parseGetDeviceNameResponse.test.js +25 -0
  151. package/lib-es/commands/use-cases/parseGetDeviceNameResponse.test.js.map +1 -0
  152. package/lib-es/commands/use-cases/parseGetVersionResponse.test.d.ts +2 -0
  153. package/lib-es/commands/use-cases/parseGetVersionResponse.test.d.ts.map +1 -0
  154. package/lib-es/commands/use-cases/parseGetVersionResponse.test.js +143 -0
  155. package/lib-es/commands/use-cases/parseGetVersionResponse.test.js.map +1 -0
  156. package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.test.d.ts +2 -0
  157. package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.test.d.ts.map +1 -0
  158. package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.test.js +67 -0
  159. package/lib-es/firmwareUpdate/shouldForceFirmwareUpdate.test.js.map +1 -0
  160. package/lib-es/index.d.ts +0 -1
  161. package/lib-es/index.d.ts.map +1 -1
  162. package/lib-es/index.js.map +1 -1
  163. package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.d.ts +2 -0
  164. package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.d.ts.map +1 -0
  165. package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.js +388 -0
  166. package/lib-es/managerApi/repositories/HttpManagerApiRepository.test.js.map +1 -0
  167. package/lib-es/managerApi/use-cases/getAppsCatalogForDevice.d.ts +1 -1
  168. package/lib-es/managerApi/use-cases/getAppsCatalogForDevice.d.ts.map +1 -1
  169. package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.d.ts +2 -0
  170. package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.d.ts.map +1 -0
  171. package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.js +167 -0
  172. package/lib-es/managerApi/use-cases/getLatestFirmwareForDevice.test.js.map +1 -0
  173. package/package.json +6 -6
  174. package/src/index.ts +0 -1
@@ -0,0 +1,143 @@
1
+ import { parseGetVersionResponse } from "./parseGetVersionResponse";
2
+ describe("parseGetVersionResult", () => {
3
+ it("correctly parses an arbitrary regular result buffer", () => {
4
+ const responseBuffer = Buffer.from([
5
+ "33000004", // targetId
6
+ "05", // device version length
7
+ "322e322e33", // device version aka `rawVersion`
8
+ "04", // flags length
9
+ "ee000000", // flags
10
+ "04", // mcu version length
11
+ "322e3330", // mcu version aka `mcuVersion`
12
+ "04", // booloader version length
13
+ "312e3136", // bootloader version aka `bootloaderVersion`
14
+ "01", // hw version length
15
+ "01", // hw version aka `hardwareVersion`
16
+ "01", // language id length
17
+ "00", // language id
18
+ "01", // recoverState length
19
+ "00", // recoverState
20
+ "9000", // status
21
+ ].join(""), "hex");
22
+ const expectedParseResult = {
23
+ isBootloader: false,
24
+ rawVersion: "2.2.3",
25
+ targetId: 855638020,
26
+ seVersion: "2.2.3",
27
+ mcuVersion: "2.30",
28
+ mcuBlVersion: undefined,
29
+ mcuTargetId: undefined,
30
+ seTargetId: 855638020,
31
+ flags: Buffer.from([238, 0, 0, 0]),
32
+ bootloaderVersion: "1.16",
33
+ hardwareVersion: 1,
34
+ languageId: 0,
35
+ recoverState: Buffer.from([0]),
36
+ charonState: undefined,
37
+ };
38
+ const parseResult = parseGetVersionResponse(responseBuffer);
39
+ expect(parseResult).toEqual(expectedParseResult);
40
+ });
41
+ it("should handle old firmware with zero rawVersionLength", () => {
42
+ const responseBuffer = Buffer.from([
43
+ "33000004", // targetId
44
+ "00", // device version length
45
+ "04", // flags length
46
+ "ee000000", // flags
47
+ "04", // mcu version length
48
+ "322e3330", // mcu version aka `mcuVersion`
49
+ "01", // hw version length
50
+ "01", // hw version aka `hardwareVersion`
51
+ "01", // language id length
52
+ "00", // language id
53
+ "01", // ?
54
+ "00", // ?
55
+ "9000", // status
56
+ ].join(""), "hex");
57
+ const expectedParseResult = {
58
+ isBootloader: false,
59
+ rawVersion: "0.0.0", // Defaults to "0.0.0" for old firmware
60
+ targetId: 855638020,
61
+ seVersion: "0.0.0",
62
+ mcuVersion: "2.30",
63
+ mcuBlVersion: undefined,
64
+ mcuTargetId: undefined,
65
+ seTargetId: 855638020,
66
+ flags: Buffer.from([]), // Expected to be an empty buffer
67
+ bootloaderVersion: undefined, // because seVersion is "0.0.0" so isBootloaderVersionSupported will return false
68
+ hardwareVersion: undefined, // because seVersion is "0.0.0" so isDeviceVersionSupported will return false
69
+ languageId: undefined, // because seVersion is "0.0.0" so isDeviceLocalizationSupported will return false
70
+ };
71
+ const parseResult = parseGetVersionResponse(responseBuffer);
72
+ expect(parseResult).toEqual(expectedParseResult);
73
+ });
74
+ it("correctly parses buffer for a bootloader version", () => {
75
+ const responseBuffer = Buffer.from([
76
+ "05010003", // targetId, also mcuTargetId
77
+ "04", // rawVersion length
78
+ "312e3136", // rawVersion, also mcuBlVersion
79
+ "04", // flags length
80
+ "f4d8aa43", // flags
81
+ "05", // seVersion length
82
+ "322e322e33", //seVersion
83
+ "04", // seTargetId length
84
+ "33000004", // seTargetId
85
+ "9000", // status
86
+ ].join(""), "hex");
87
+ const expectedParseResult = {
88
+ isBootloader: true,
89
+ rawVersion: "1.16",
90
+ targetId: 83951619,
91
+ seVersion: "2.2.3",
92
+ mcuVersion: "",
93
+ mcuBlVersion: "1.16",
94
+ mcuTargetId: 83951619,
95
+ seTargetId: 855638020,
96
+ flags: Buffer.from([244, 216, 170, 67]),
97
+ bootloaderVersion: undefined,
98
+ hardwareVersion: undefined,
99
+ languageId: undefined,
100
+ };
101
+ const parseResult = parseGetVersionResponse(responseBuffer);
102
+ expect(parseResult).toEqual(expectedParseResult);
103
+ });
104
+ it("should handle charon state and recover state", () => {
105
+ const responseBuffer = Buffer.from([
106
+ "33300004", // targetId
107
+ "05", // device version length
108
+ "312e342e30", // device version aka `rawVersion`
109
+ "04", // flags length
110
+ "ee000000", // flags
111
+ "05",
112
+ "362e352e32", // mcu version aka `mcuVersion`
113
+ "05", // bootloader version length
114
+ "352e352e32", // bootloader version aka `bootloaderVersion`
115
+ "01", // language id length
116
+ "00", // language id
117
+ "01", // recoverState length
118
+ "06", // recoverState
119
+ "01", // charonLength
120
+ "02", // charon
121
+ "9000", // status
122
+ ].join(""), "hex");
123
+ const expectedParseResult = {
124
+ isBootloader: false,
125
+ rawVersion: "1.4.0",
126
+ targetId: 858783748,
127
+ seVersion: "1.4.0",
128
+ mcuVersion: "6.5.2",
129
+ mcuBlVersion: undefined,
130
+ mcuTargetId: undefined,
131
+ seTargetId: 858783748,
132
+ flags: Buffer.from([238, 0, 0, 0]),
133
+ bootloaderVersion: "5.5.2",
134
+ hardwareVersion: undefined,
135
+ languageId: 0,
136
+ recoverState: Buffer.from([6]),
137
+ charonState: Buffer.from([2]),
138
+ };
139
+ const parseResult = parseGetVersionResponse(responseBuffer);
140
+ expect(parseResult).toEqual(expectedParseResult);
141
+ });
142
+ });
143
+ //# sourceMappingURL=parseGetVersionResponse.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseGetVersionResponse.test.js","sourceRoot":"","sources":["../../../src/commands/use-cases/parseGetVersionResponse.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shouldForceFirmwareUpdate.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shouldForceFirmwareUpdate.test.d.ts","sourceRoot":"","sources":["../../src/firmwareUpdate/shouldForceFirmwareUpdate.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,67 @@
1
+ import { DeviceModelId } from "@ledgerhq/devices";
2
+ import { shouldForceFirmwareUpdate } from "./shouldForceFirmwareUpdate";
3
+ describe("shouldForceFirmwareUpdate", () => {
4
+ it("should force firmware update for stax <=1.3.0 and not other versions", () => {
5
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.2.0", deviceModelId: DeviceModelId.stax })).toBe(true);
6
+ expect(shouldForceFirmwareUpdate({
7
+ currentVersion: "1.2.0-whatever",
8
+ deviceModelId: DeviceModelId.stax,
9
+ })).toBe(true);
10
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.3.0", deviceModelId: DeviceModelId.stax })).toBe(true);
11
+ expect(shouldForceFirmwareUpdate({
12
+ currentVersion: "1.3.0-whatever",
13
+ deviceModelId: DeviceModelId.stax,
14
+ })).toBe(true);
15
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.3.1", deviceModelId: DeviceModelId.stax })).toBe(false);
16
+ expect(shouldForceFirmwareUpdate({
17
+ currentVersion: "1.3.1-whatever",
18
+ deviceModelId: DeviceModelId.stax,
19
+ })).toBe(false);
20
+ });
21
+ it("should force firmware update for europa <1.1.1 and not other versions", () => {
22
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.0.0", deviceModelId: DeviceModelId.europa })).toBe(true);
23
+ expect(shouldForceFirmwareUpdate({
24
+ currentVersion: "1.0.0-whatever",
25
+ deviceModelId: DeviceModelId.europa,
26
+ })).toBe(true);
27
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.1.0", deviceModelId: DeviceModelId.europa })).toBe(true);
28
+ expect(shouldForceFirmwareUpdate({
29
+ currentVersion: "1.1.0-whatever",
30
+ deviceModelId: DeviceModelId.europa,
31
+ })).toBe(true);
32
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.1.1", deviceModelId: DeviceModelId.europa })).toBe(false);
33
+ expect(shouldForceFirmwareUpdate({
34
+ currentVersion: "1.1.1-whatever",
35
+ deviceModelId: DeviceModelId.europa,
36
+ })).toBe(false);
37
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.2.0", deviceModelId: DeviceModelId.europa })).toBe(false);
38
+ expect(shouldForceFirmwareUpdate({
39
+ currentVersion: "1.2.0-whatever",
40
+ deviceModelId: DeviceModelId.europa,
41
+ })).toBe(false);
42
+ });
43
+ it("should not force firmware update for other models", () => {
44
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.2.0", deviceModelId: DeviceModelId.nanoX })).toBe(false);
45
+ expect(shouldForceFirmwareUpdate({
46
+ currentVersion: "1.2.0-whatever",
47
+ deviceModelId: DeviceModelId.nanoX,
48
+ })).toBe(false);
49
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.3.0", deviceModelId: DeviceModelId.nanoX })).toBe(false);
50
+ expect(shouldForceFirmwareUpdate({
51
+ currentVersion: "1.3.0-whatever",
52
+ deviceModelId: DeviceModelId.nanoX,
53
+ })).toBe(false);
54
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.3.1", deviceModelId: DeviceModelId.nanoX })).toBe(false);
55
+ expect(shouldForceFirmwareUpdate({
56
+ currentVersion: "1.3.1-whatever",
57
+ deviceModelId: DeviceModelId.nanoX,
58
+ })).toBe(false);
59
+ expect(shouldForceFirmwareUpdate({ currentVersion: "0.0.0", deviceModelId: DeviceModelId.apex })).toBe(false);
60
+ expect(shouldForceFirmwareUpdate({
61
+ currentVersion: "0.0.0-whatever",
62
+ deviceModelId: DeviceModelId.apex,
63
+ })).toBe(false);
64
+ expect(shouldForceFirmwareUpdate({ currentVersion: "1.3.0", deviceModelId: DeviceModelId.apex })).toBe(false);
65
+ });
66
+ });
67
+ //# sourceMappingURL=shouldForceFirmwareUpdate.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shouldForceFirmwareUpdate.test.js","sourceRoot":"","sources":["../../src/firmwareUpdate/shouldForceFirmwareUpdate.test.ts"],"names":[],"mappings":"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"}
package/lib-es/index.d.ts CHANGED
@@ -10,7 +10,6 @@ export { PROVIDERS, getProviderIdUseCase } from "./managerApi/use-cases/getProvi
10
10
  export { fetchMcus } from "./managerApi/use-cases/fetchMcus";
11
11
  export { aDeviceInfoBuilder } from "./managerApi/entities/mocks/aDeviceInfo";
12
12
  export { getAppsCatalogForDevice } from "./managerApi/use-cases/getAppsCatalogForDevice";
13
- export type { ApplicationV2Entity } from "./managerApi/entities/AppEntity";
14
13
  export type { FirmwareInfoEntity } from "./commands/entities/FirmwareInfoEntity";
15
14
  export { GET_VERSION_APDU } from "./commands/use-cases/getVersion";
16
15
  export { parseGetVersionResponse } from "./commands/use-cases/parseGetVersionResponse";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,YAAY,EACV,aAAa,EACb,WAAW,EACX,2BAA2B,GAC5B,MAAM,mDAAmD,CAAC;AAC3D,YAAY,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AACrF,YAAY,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AACzF,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,KAAK,cAAc,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAE9F,OAAO,EACL,KAAK,yBAAyB,EAC9B,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,cAAc,gCAAgC,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAEvF,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,6BAA6B,EAAE,MAAM,4DAA4D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,YAAY,EACV,aAAa,EACb,WAAW,EACX,2BAA2B,GAC5B,MAAM,mDAAmD,CAAC;AAC3D,YAAY,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AACrF,YAAY,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAEzF,YAAY,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,KAAK,cAAc,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAE9F,OAAO,EACL,KAAK,yBAAyB,EAC9B,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,cAAc,gCAAgC,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAEvF,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,6BAA6B,EAAE,MAAM,4DAA4D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAIzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAuB,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,oBAAoB;AACpB,OAAO,EAEL,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,wBAAwB;AACxB,cAAc,gCAAgC,CAAC;AAC/C,sBAAsB;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,SAAS;AACT,cAAc,UAAU,CAAC;AACzB,wBAAwB;AACxB,OAAO,EAAE,6BAA6B,EAAE,MAAM,4DAA4D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,oDAAoD,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAGzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,4BAA4B,EAAE,MAAM,mDAAmD,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAuB,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,oBAAoB;AACpB,OAAO,EAEL,2BAA2B,GAC5B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,wBAAwB;AACxB,cAAc,gCAAgC,CAAC;AAC/C,sBAAsB;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,SAAS;AACT,cAAc,UAAU,CAAC;AACzB,wBAAwB;AACxB,OAAO,EAAE,6BAA6B,EAAE,MAAM,4DAA4D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=HttpManagerApiRepository.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpManagerApiRepository.test.d.ts","sourceRoot":"","sources":["../../../src/managerApi/repositories/HttpManagerApiRepository.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,388 @@
1
+ import { FirmwareNotRecognized, NetworkDown } from "@ledgerhq/errors";
2
+ import { HttpManagerApiRepository } from "./HttpManagerApiRepository";
3
+ const getUserHashesModule = jest.requireActual("../use-cases/getUserHashes");
4
+ const networkModule = jest.requireActual("@ledgerhq/live-network/network");
5
+ describe("HttpManagerApiRepository", () => {
6
+ let httpManagerApiRepository;
7
+ let getUserHashesSpy;
8
+ let networkSpy;
9
+ beforeEach(() => {
10
+ httpManagerApiRepository = new HttpManagerApiRepository("http://managerApiBase.com", "1.2.3");
11
+ getUserHashesSpy = jest.spyOn(getUserHashesModule, "getUserHashes");
12
+ networkSpy = jest.spyOn(networkModule, "default");
13
+ networkSpy.mockImplementation(jest.fn());
14
+ });
15
+ afterEach(() => {
16
+ jest.resetAllMocks();
17
+ });
18
+ test("fetchLatestFirmware should call network() with the correct parameters", async () => {
19
+ getUserHashesSpy.mockReturnValue({
20
+ firmwareSalt: "mockedFirmwareSalt",
21
+ });
22
+ const params = {
23
+ current_se_firmware_final_version: 888,
24
+ device_version: 123,
25
+ providerId: 12,
26
+ userId: "userId",
27
+ };
28
+ await httpManagerApiRepository.fetchLatestFirmware(params).catch(() => {
29
+ // ignore the error in this test case
30
+ });
31
+ expect(networkSpy).toHaveBeenCalledWith({
32
+ method: "GET",
33
+ url: "http://managerApiBase.com/get_latest_firmware" +
34
+ "?livecommonversion=1.2.3" +
35
+ "&salt=mockedFirmwareSalt" +
36
+ "&current_se_firmware_final_version=888" +
37
+ "&device_version=123" +
38
+ "&provider=12",
39
+ });
40
+ });
41
+ test("fetchLatestFirmware should return null if data.result is null", async () => {
42
+ getUserHashesSpy.mockReturnValue({
43
+ firmwareSalt: "mockedFirmwareSalt",
44
+ });
45
+ const params = {
46
+ current_se_firmware_final_version: 888,
47
+ device_version: 123,
48
+ providerId: 12,
49
+ userId: "userId",
50
+ };
51
+ networkSpy.mockResolvedValue({
52
+ data: {
53
+ result: "null",
54
+ },
55
+ });
56
+ const result = await httpManagerApiRepository.fetchLatestFirmware(params);
57
+ expect(result).toBeNull();
58
+ });
59
+ test("fetchLatestFirmware should return data.se_firmware_osu_version", async () => {
60
+ getUserHashesSpy.mockReturnValue({
61
+ firmwareSalt: "mockedFirmwareSalt",
62
+ });
63
+ const params = {
64
+ current_se_firmware_final_version: 888,
65
+ device_version: 123,
66
+ providerId: 12,
67
+ userId: "userId",
68
+ };
69
+ networkSpy.mockResolvedValue({
70
+ data: {
71
+ result: "mockedResult",
72
+ se_firmware_osu_version: "mockedOsuFirmware",
73
+ },
74
+ });
75
+ const result = await httpManagerApiRepository.fetchLatestFirmware(params);
76
+ expect(result).toBe("mockedOsuFirmware");
77
+ });
78
+ test("fetchMcus should call network() with the correct parameters", async () => {
79
+ await httpManagerApiRepository.fetchMcus().catch(() => {
80
+ // ignore the error in this test case
81
+ });
82
+ expect(networkSpy).toHaveBeenCalledWith({
83
+ method: "GET",
84
+ url: "http://managerApiBase.com/mcu_versions?livecommonversion=1.2.3",
85
+ });
86
+ });
87
+ test("fetchMcus should return data", async () => {
88
+ networkSpy.mockResolvedValue({
89
+ data: "mockedData",
90
+ });
91
+ const result = await httpManagerApiRepository.fetchMcus();
92
+ expect(result).toBe("mockedData");
93
+ });
94
+ test("getDeviceVersion should call network() with the correct parameters", async () => {
95
+ const params = {
96
+ targetId: 123,
97
+ providerId: 12,
98
+ };
99
+ await httpManagerApiRepository.getDeviceVersion(params).catch(() => {
100
+ // ignore the error in this test case
101
+ });
102
+ expect(networkSpy).toHaveBeenCalledWith({
103
+ method: "GET",
104
+ url: "http://managerApiBase.com/get_device_version" +
105
+ "?livecommonversion=1.2.3" +
106
+ "&provider=12" +
107
+ "&target_id=123",
108
+ });
109
+ });
110
+ test("getDeviceVersion should throw a FirmwareNotRecognized error if status is 404", async () => {
111
+ networkSpy.mockRejectedValue({
112
+ status: 404,
113
+ });
114
+ await expect(httpManagerApiRepository.getDeviceVersion({
115
+ targetId: 123,
116
+ providerId: 12,
117
+ })).rejects.toThrow(FirmwareNotRecognized);
118
+ });
119
+ test("getDeviceVersion should throw a FirmwareNotRecognized error if response.status is 404", async () => {
120
+ networkSpy.mockRejectedValue({
121
+ response: {
122
+ status: 404,
123
+ },
124
+ });
125
+ await expect(httpManagerApiRepository.getDeviceVersion({
126
+ targetId: 123,
127
+ providerId: 12,
128
+ })).rejects.toThrow(FirmwareNotRecognized);
129
+ });
130
+ test("getDeviceVersion should return data", async () => {
131
+ networkSpy.mockResolvedValue({
132
+ data: "mockedData",
133
+ });
134
+ const result = await httpManagerApiRepository.getDeviceVersion({
135
+ targetId: 123,
136
+ providerId: 12,
137
+ });
138
+ expect(result).toBe("mockedData");
139
+ });
140
+ test("getCurrentOSU should call network() with the correct parameters", async () => {
141
+ const params = {
142
+ deviceId: 123,
143
+ providerId: 12,
144
+ version: "mockedVersion",
145
+ };
146
+ await httpManagerApiRepository.getCurrentOSU(params).catch(() => {
147
+ // ignore the error in this test case
148
+ });
149
+ expect(networkSpy).toHaveBeenCalledWith({
150
+ method: "GET",
151
+ url: "http://managerApiBase.com/get_osu_version" +
152
+ "?livecommonversion=1.2.3" +
153
+ "&device_version=123" +
154
+ "&version_name=mockedVersion-osu" +
155
+ "&provider=12",
156
+ });
157
+ });
158
+ test("getCurrentOSU should return data", async () => {
159
+ networkSpy.mockResolvedValue({
160
+ data: "mockedData",
161
+ });
162
+ const result = await httpManagerApiRepository.getCurrentOSU({
163
+ deviceId: 123,
164
+ providerId: 12,
165
+ version: "mockedVersion",
166
+ });
167
+ expect(result).toBe("mockedData");
168
+ });
169
+ test("getCurrentFirmware should call network() with the correct parameters", async () => {
170
+ const params = {
171
+ deviceId: 123,
172
+ providerId: 12,
173
+ version: "mockedVersion",
174
+ };
175
+ await httpManagerApiRepository.getCurrentFirmware(params).catch(() => {
176
+ // ignore the error in this test case
177
+ });
178
+ expect(networkSpy).toHaveBeenCalledWith({
179
+ method: "GET",
180
+ url: "http://managerApiBase.com/get_firmware_version" +
181
+ "?livecommonversion=1.2.3" +
182
+ "&device_version=123" +
183
+ "&version_name=mockedVersion" +
184
+ "&provider=12",
185
+ });
186
+ });
187
+ test("getCurrentFirmware should throw a FirmwareNotRecognized error if status is 404", async () => {
188
+ networkSpy.mockRejectedValue({
189
+ status: 404,
190
+ });
191
+ await expect(httpManagerApiRepository.getCurrentFirmware({
192
+ deviceId: 123,
193
+ providerId: 12,
194
+ version: "mockedVersion",
195
+ })).rejects.toThrow(FirmwareNotRecognized);
196
+ });
197
+ test("getCurrentFirmware should throw a FirmwareNotRecognized error if response.status is 404", async () => {
198
+ networkSpy.mockRejectedValue({
199
+ response: {
200
+ status: 404,
201
+ },
202
+ });
203
+ await expect(httpManagerApiRepository.getCurrentFirmware({
204
+ deviceId: 123,
205
+ providerId: 12,
206
+ version: "mockedVersion",
207
+ })).rejects.toThrow(FirmwareNotRecognized);
208
+ });
209
+ test("getCurrentFirmware should return data", async () => {
210
+ networkSpy.mockResolvedValue({
211
+ data: "mockedData",
212
+ });
213
+ const result = await httpManagerApiRepository.getCurrentFirmware({
214
+ deviceId: 123,
215
+ providerId: 12,
216
+ version: "mockedVersion",
217
+ });
218
+ expect(result).toBe("mockedData");
219
+ });
220
+ test("getFinalFirmwareById should call network() with the correct parameters", async () => {
221
+ await httpManagerApiRepository.getFinalFirmwareById(123).catch(() => {
222
+ // ignore the error in this test case
223
+ });
224
+ expect(networkSpy).toHaveBeenCalledWith({
225
+ method: "GET",
226
+ url: "http://managerApiBase.com/firmware_final_versions/123?livecommonversion=1.2.3",
227
+ });
228
+ });
229
+ test("getFinalFirmwareById should return data", async () => {
230
+ networkSpy.mockResolvedValue({
231
+ data: "mockedData",
232
+ });
233
+ const result = await httpManagerApiRepository.getFinalFirmwareById(123);
234
+ expect(result).toBe("mockedData");
235
+ });
236
+ test("getAppsByHash should call network() with the correct parameters", async () => {
237
+ const mockHashes = ["mockedHash1", "mockedHash2"];
238
+ await httpManagerApiRepository.getAppsByHash(mockHashes).catch(() => {
239
+ // ignore the error in this test case
240
+ });
241
+ expect(networkSpy).toHaveBeenCalledWith({
242
+ method: "POST",
243
+ url: "http://managerApiBase.com/v2/apps/hash?livecommonversion=1.2.3",
244
+ data: mockHashes,
245
+ });
246
+ });
247
+ test("getAppsByHash should throw a NetworkDown error if data is null", async () => {
248
+ networkSpy.mockResolvedValue({
249
+ data: null,
250
+ });
251
+ await expect(httpManagerApiRepository.getAppsByHash(["mockedHash"])).rejects.toThrow(NetworkDown);
252
+ });
253
+ test("getAppsByHash should throw a NetworkDown error if data is not an array", async () => {
254
+ networkSpy.mockResolvedValue({
255
+ data: "mockedData",
256
+ });
257
+ await expect(httpManagerApiRepository.getAppsByHash(["mockedHash"])).rejects.toThrow(NetworkDown);
258
+ });
259
+ test("getAppsByHash should return data if it's an array", async () => {
260
+ networkSpy.mockResolvedValue({
261
+ data: ["mockedData"],
262
+ });
263
+ const result = await httpManagerApiRepository.getAppsByHash(["mockedHash"]);
264
+ expect(result).toEqual(["mockedData"]);
265
+ });
266
+ test("catalogForDevice should call network() with the correct parameters", async () => {
267
+ await httpManagerApiRepository
268
+ .catalogForDevice({
269
+ targetId: 123,
270
+ provider: 12,
271
+ firmwareVersion: "mockedFirmwareVersion",
272
+ })
273
+ .catch(() => {
274
+ // ignore the error in this test case
275
+ });
276
+ expect(networkSpy).toHaveBeenCalledWith({
277
+ method: "GET",
278
+ url: "http://managerApiBase.com/v2/apps/by-target?livecommonversion=1.2.3&provider=12&target_id=123&firmware_version_name=mockedFirmwareVersion",
279
+ });
280
+ });
281
+ test("catalogForDevice should throw a NetworkDown error if data is null", async () => {
282
+ networkSpy.mockResolvedValue({
283
+ data: null,
284
+ });
285
+ await expect(httpManagerApiRepository.catalogForDevice({
286
+ targetId: 123,
287
+ provider: 12,
288
+ firmwareVersion: "mockedFirmwareVersion",
289
+ })).rejects.toThrow(NetworkDown);
290
+ });
291
+ test("catalogForDevice should throw a NetworkDown error if data is not an array", async () => {
292
+ networkSpy.mockResolvedValue({
293
+ data: "mockedData",
294
+ });
295
+ await expect(httpManagerApiRepository.catalogForDevice({
296
+ targetId: 123,
297
+ provider: 12,
298
+ firmwareVersion: "mockedFirmwareVersion",
299
+ })).rejects.toThrow(NetworkDown);
300
+ });
301
+ test("catalogForDevice should return data if it's an array", async () => {
302
+ networkSpy.mockResolvedValue({
303
+ data: ["mockedData"],
304
+ });
305
+ const result = await httpManagerApiRepository.catalogForDevice({
306
+ targetId: 123,
307
+ provider: 12,
308
+ firmwareVersion: "mockedFirmwareVersion",
309
+ });
310
+ expect(result).toEqual(["mockedData"]);
311
+ });
312
+ test("getLanguagePackagesForDevice should call network() and other methods with the correct parameters", async () => {
313
+ const getDeviceVersionSpy = jest
314
+ .spyOn(httpManagerApiRepository, "getDeviceVersion")
315
+ .mockReturnValue(Promise.resolve({ id: 4 }));
316
+ const getCurrentFirmwareSpy = jest
317
+ .spyOn(httpManagerApiRepository, "getCurrentFirmware")
318
+ .mockImplementation(jest.fn());
319
+ await httpManagerApiRepository
320
+ .getLanguagePackagesForDevice({
321
+ version: 1,
322
+ targetId: 2,
323
+ id: 3,
324
+ }, 12)
325
+ .catch(() => {
326
+ // ignore the error in this test case
327
+ });
328
+ expect(getDeviceVersionSpy).toHaveBeenCalledWith({ targetId: 2, providerId: 12 });
329
+ expect(getCurrentFirmwareSpy).toHaveBeenCalledWith({ deviceId: 4, providerId: 12, version: 1 });
330
+ expect(networkSpy).toHaveBeenCalledWith({
331
+ method: "GET",
332
+ url: "http://managerApiBase.com/language-package?livecommonversion=1.2.3",
333
+ });
334
+ });
335
+ test("getLanguagePackagesForDevice should return language packages", async () => {
336
+ const mockedDeviceVersionId = 123;
337
+ const mockedCurrentFirmwareId = 456;
338
+ jest
339
+ .spyOn(httpManagerApiRepository, "getDeviceVersion")
340
+ .mockReturnValue(Promise.resolve({ id: mockedDeviceVersionId }));
341
+ jest
342
+ .spyOn(httpManagerApiRepository, "getCurrentFirmware")
343
+ .mockReturnValue(Promise.resolve({ id: mockedCurrentFirmwareId }));
344
+ networkSpy.mockResolvedValue({
345
+ data: [
346
+ {
347
+ language: "french",
348
+ language_package_version: [
349
+ {
350
+ device_versions: [mockedDeviceVersionId, 8888],
351
+ language: "french",
352
+ se_firmware_final_versions: [mockedCurrentFirmwareId, 9999],
353
+ },
354
+ ],
355
+ },
356
+ {
357
+ language: "spanish",
358
+ language_package_version: [
359
+ {
360
+ device_versions: [mockedDeviceVersionId],
361
+ language: "spanish",
362
+ se_firmware_final_versions: [9999], // this excludes the package from the result
363
+ },
364
+ ],
365
+ },
366
+ {
367
+ language: "english",
368
+ language_package_version: [
369
+ {
370
+ device_versions: [8888], // this excludes the package from the result
371
+ language: "spanish",
372
+ se_firmware_final_versions: [mockedCurrentFirmwareId],
373
+ },
374
+ ],
375
+ },
376
+ ],
377
+ });
378
+ const result = await httpManagerApiRepository.getLanguagePackagesForDevice({});
379
+ expect(result).toEqual([
380
+ {
381
+ device_versions: [mockedDeviceVersionId, 8888],
382
+ language: "french",
383
+ se_firmware_final_versions: [mockedCurrentFirmwareId, 9999],
384
+ },
385
+ ]);
386
+ });
387
+ });
388
+ //# sourceMappingURL=HttpManagerApiRepository.test.js.map