@ledgerhq/device-management-kit 1.10.0 → 1.11.1

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 (778) hide show
  1. package/README.md +36 -4
  2. package/lib/cjs/package.json +1 -2
  3. package/lib/cjs/src/api/DeviceManagementKit.js +1 -1
  4. package/lib/cjs/src/api/DeviceManagementKit.js.map +3 -3
  5. package/lib/cjs/src/api/DmkConfig.js.map +1 -1
  6. package/lib/cjs/src/api/command/utils/CommandUtils.js +1 -1
  7. package/lib/cjs/src/api/command/utils/CommandUtils.js.map +2 -2
  8. package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.js +1 -1
  9. package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.js.map +3 -3
  10. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js +1 -1
  11. package/lib/cjs/src/internal/manager-api/data/ManagerApiDataSource.js.map +1 -1
  12. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js +1 -1
  13. package/lib/cjs/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  14. package/lib/cjs/src/internal/manager-api/di/managerApiTypes.js +1 -1
  15. package/lib/cjs/src/internal/manager-api/di/managerApiTypes.js.map +2 -2
  16. package/lib/cjs/src/internal/manager-api/use-case/SetFirmwareDistributionSaltUseCase.js +2 -0
  17. package/lib/cjs/src/internal/manager-api/use-case/SetFirmwareDistributionSaltUseCase.js.map +7 -0
  18. package/lib/esm/package.json +1 -2
  19. package/lib/esm/src/api/DeviceManagementKit.js +1 -1
  20. package/lib/esm/src/api/DeviceManagementKit.js.map +3 -3
  21. package/lib/esm/src/api/command/utils/CommandUtils.js +1 -1
  22. package/lib/esm/src/api/command/utils/CommandUtils.js.map +3 -3
  23. package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.js +1 -1
  24. package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.js.map +3 -3
  25. package/lib/esm/src/internal/manager-api/di/managerApiModule.js +1 -1
  26. package/lib/esm/src/internal/manager-api/di/managerApiModule.js.map +3 -3
  27. package/lib/esm/src/internal/manager-api/di/managerApiTypes.js +1 -1
  28. package/lib/esm/src/internal/manager-api/di/managerApiTypes.js.map +2 -2
  29. package/lib/esm/src/internal/manager-api/use-case/SetFirmwareDistributionSaltUseCase.js +2 -0
  30. package/lib/esm/src/internal/manager-api/use-case/SetFirmwareDistributionSaltUseCase.js.map +7 -0
  31. package/lib/types/src/api/DeviceManagementKit.d.ts +16 -0
  32. package/lib/types/src/api/DeviceManagementKit.d.ts.map +1 -1
  33. package/lib/types/src/api/DmkConfig.d.ts +4 -0
  34. package/lib/types/src/api/DmkConfig.d.ts.map +1 -1
  35. package/lib/types/src/api/command/utils/CommandUtils.d.ts.map +1 -1
  36. package/lib/types/src/internal/manager-api/data/HttpManagerApiDataSource.d.ts +5 -1
  37. package/lib/types/src/internal/manager-api/data/HttpManagerApiDataSource.d.ts.map +1 -1
  38. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts +11 -0
  39. package/lib/types/src/internal/manager-api/data/ManagerApiDataSource.d.ts.map +1 -1
  40. package/lib/types/src/internal/manager-api/di/managerApiModule.d.ts.map +1 -1
  41. package/lib/types/src/internal/manager-api/di/managerApiTypes.d.ts +1 -0
  42. package/lib/types/src/internal/manager-api/di/managerApiTypes.d.ts.map +1 -1
  43. package/lib/types/src/internal/manager-api/use-case/SetFirmwareDistributionSaltUseCase.d.ts +16 -0
  44. package/lib/types/src/internal/manager-api/use-case/SetFirmwareDistributionSaltUseCase.d.ts.map +1 -0
  45. package/lib/types/tsconfig.prod.tsbuildinfo +1 -1
  46. package/package.json +5 -6
  47. package/lib/cjs/src/api/DeviceManagementKit.test.js +0 -2
  48. package/lib/cjs/src/api/DeviceManagementKit.test.js.map +0 -7
  49. package/lib/cjs/src/api/DeviceManagementKitBuilder.test.js +0 -2
  50. package/lib/cjs/src/api/DeviceManagementKitBuilder.test.js.map +0 -7
  51. package/lib/cjs/src/api/apdu/model/Apdu.test.js +0 -2
  52. package/lib/cjs/src/api/apdu/model/Apdu.test.js.map +0 -7
  53. package/lib/cjs/src/api/apdu/utils/ApduBuilder.test.js +0 -2
  54. package/lib/cjs/src/api/apdu/utils/ApduBuilder.test.js.map +0 -7
  55. package/lib/cjs/src/api/apdu/utils/ApduParser.test.js +0 -2
  56. package/lib/cjs/src/api/apdu/utils/ApduParser.test.js.map +0 -7
  57. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js +0 -2
  58. package/lib/cjs/src/api/apdu/utils/ByteArrayBuilder.test.js.map +0 -7
  59. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.test.js +0 -2
  60. package/lib/cjs/src/api/apdu/utils/ByteArrayParser.test.js.map +0 -7
  61. package/lib/cjs/src/api/command/di/commandModule.test.js +0 -2
  62. package/lib/cjs/src/api/command/di/commandModule.test.js.map +0 -7
  63. package/lib/cjs/src/api/command/model/CommandResult.test.js +0 -2
  64. package/lib/cjs/src/api/command/model/CommandResult.test.js.map +0 -7
  65. package/lib/cjs/src/api/command/os/CloseAppCommand.test.js +0 -2
  66. package/lib/cjs/src/api/command/os/CloseAppCommand.test.js.map +0 -7
  67. package/lib/cjs/src/api/command/os/DeleteLanguagePackCommand.test.js +0 -2
  68. package/lib/cjs/src/api/command/os/DeleteLanguagePackCommand.test.js.map +0 -7
  69. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.test.js +0 -2
  70. package/lib/cjs/src/api/command/os/GetAppAndVersionCommand.test.js.map +0 -7
  71. package/lib/cjs/src/api/command/os/GetBackgroundImageSizeCommand.test.js +0 -2
  72. package/lib/cjs/src/api/command/os/GetBackgroundImageSizeCommand.test.js.map +0 -7
  73. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.test.js +0 -2
  74. package/lib/cjs/src/api/command/os/GetBatteryStatusCommand.test.js.map +0 -7
  75. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js +0 -2
  76. package/lib/cjs/src/api/command/os/GetOsVersionCommand.test.js.map +0 -7
  77. package/lib/cjs/src/api/command/os/ListAppsCommand.test.js +0 -2
  78. package/lib/cjs/src/api/command/os/ListAppsCommand.test.js.map +0 -7
  79. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js +0 -2
  80. package/lib/cjs/src/api/command/os/ListLanguagePackCommand.test.js.map +0 -7
  81. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js +0 -2
  82. package/lib/cjs/src/api/command/os/LoadCertificateCommand.test.js.map +0 -7
  83. package/lib/cjs/src/api/command/os/OpenAppCommand.test.js +0 -2
  84. package/lib/cjs/src/api/command/os/OpenAppCommand.test.js.map +0 -7
  85. package/lib/cjs/src/api/command/os/SecureElementFlagsParser.test.js +0 -2
  86. package/lib/cjs/src/api/command/os/SecureElementFlagsParser.test.js.map +0 -7
  87. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js +0 -2
  88. package/lib/cjs/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +0 -7
  89. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js +0 -2
  90. package/lib/cjs/src/api/command/use-case/SendCommandUseCase.test.js.map +0 -7
  91. package/lib/cjs/src/api/command/utils/CommandUtils.test.js +0 -2
  92. package/lib/cjs/src/api/command/utils/CommandUtils.test.js.map +0 -7
  93. package/lib/cjs/src/api/command/utils/GlobalCommandError.test.js +0 -2
  94. package/lib/cjs/src/api/command/utils/GlobalCommandError.test.js.map +0 -7
  95. package/lib/cjs/src/api/device-action/__test-utils__/data.js +0 -2
  96. package/lib/cjs/src/api/device-action/__test-utils__/data.js.map +0 -7
  97. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js +0 -2
  98. package/lib/cjs/src/api/device-action/__test-utils__/makeInternalApi.js.map +0 -7
  99. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js +0 -2
  100. package/lib/cjs/src/api/device-action/__test-utils__/setupTestMachine.js.map +0 -7
  101. package/lib/cjs/src/api/device-action/__test-utils__/testDeviceActionStates.js +0 -2
  102. package/lib/cjs/src/api/device-action/__test-utils__/testDeviceActionStates.js.map +0 -7
  103. package/lib/cjs/src/api/device-action/di/deviceActionModule.test.js +0 -2
  104. package/lib/cjs/src/api/device-action/di/deviceActionModule.test.js.map +0 -7
  105. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +0 -2
  106. package/lib/cjs/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +0 -7
  107. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +0 -2
  108. package/lib/cjs/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +0 -7
  109. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +0 -2
  110. package/lib/cjs/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +0 -7
  111. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +0 -2
  112. package/lib/cjs/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +0 -7
  113. package/lib/cjs/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.js +0 -2
  114. package/lib/cjs/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.js.map +0 -7
  115. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +0 -2
  116. package/lib/cjs/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +0 -7
  117. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js +0 -2
  118. package/lib/cjs/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js.map +0 -7
  119. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +0 -2
  120. package/lib/cjs/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +0 -7
  121. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +0 -2
  122. package/lib/cjs/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +0 -7
  123. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +0 -2
  124. package/lib/cjs/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +0 -7
  125. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +0 -2
  126. package/lib/cjs/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +0 -7
  127. package/lib/cjs/src/api/device-action/os/WaitForAppAndVersion/WaitForAppAndVersionDeviceAction.test.js +0 -2
  128. package/lib/cjs/src/api/device-action/os/WaitForAppAndVersion/WaitForAppAndVersionDeviceAction.test.js.map +0 -7
  129. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +0 -2
  130. package/lib/cjs/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +0 -7
  131. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.test.js +0 -2
  132. package/lib/cjs/src/api/device-action/task/GetApplicationsMetadataTask.test.js.map +0 -7
  133. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js +0 -2
  134. package/lib/cjs/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +0 -7
  135. package/lib/cjs/src/api/device-action/task/InstallLanguagePackageTask.test.js +0 -9
  136. package/lib/cjs/src/api/device-action/task/InstallLanguagePackageTask.test.js.map +0 -7
  137. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.test.js +0 -2
  138. package/lib/cjs/src/api/device-action/task/PredictOutOfMemoryTask.test.js.map +0 -7
  139. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js +0 -2
  140. package/lib/cjs/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +0 -7
  141. package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js +0 -2
  142. package/lib/cjs/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js.map +0 -7
  143. package/lib/cjs/src/api/device-session/utils/FramerUtils.test.js +0 -2
  144. package/lib/cjs/src/api/device-session/utils/FramerUtils.test.js.map +0 -7
  145. package/lib/cjs/src/api/logger-publisher/utils/noopLoggerFactory.test.js +0 -2
  146. package/lib/cjs/src/api/logger-publisher/utils/noopLoggerFactory.test.js.map +0 -7
  147. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.test.js +0 -2
  148. package/lib/cjs/src/api/logger-subscriber/service/ConsoleLogger.test.js.map +0 -7
  149. package/lib/cjs/src/api/logger-subscriber/service/DefaultLogTagFormatter.test.js +0 -2
  150. package/lib/cjs/src/api/logger-subscriber/service/DefaultLogTagFormatter.test.js.map +0 -7
  151. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +0 -2
  152. package/lib/cjs/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +0 -7
  153. package/lib/cjs/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js +0 -2
  154. package/lib/cjs/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js.map +0 -7
  155. package/lib/cjs/src/api/model/DmkResult.test.js +0 -2
  156. package/lib/cjs/src/api/model/DmkResult.test.js.map +0 -7
  157. package/lib/cjs/src/api/network/DmkNetworkClient.test.js +0 -2
  158. package/lib/cjs/src/api/network/DmkNetworkClient.test.js.map +0 -7
  159. package/lib/cjs/src/api/network/DmkNetworkClientHelpers.test.js +0 -2
  160. package/lib/cjs/src/api/network/DmkNetworkClientHelpers.test.js.map +0 -7
  161. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js +0 -2
  162. package/lib/cjs/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js.map +0 -7
  163. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js +0 -2
  164. package/lib/cjs/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js.map +0 -7
  165. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js +0 -2
  166. package/lib/cjs/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js.map +0 -7
  167. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js +0 -2
  168. package/lib/cjs/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js.map +0 -7
  169. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +0 -2
  170. package/lib/cjs/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +0 -7
  171. package/lib/cjs/src/api/secure-channel/utils.test.js +0 -2
  172. package/lib/cjs/src/api/secure-channel/utils.test.js.map +0 -7
  173. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.test.js +0 -2
  174. package/lib/cjs/src/api/transport/model/DeviceConnectionStateMachine.test.js.map +0 -7
  175. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.test.js +0 -2
  176. package/lib/cjs/src/api/transport/model/TransportConnectedDevice.test.js.map +0 -7
  177. package/lib/cjs/src/api/transport/model/__mocks__/TransportMock.js +0 -2
  178. package/lib/cjs/src/api/transport/model/__mocks__/TransportMock.js.map +0 -7
  179. package/lib/cjs/src/api/utils/AppName.test.js +0 -2
  180. package/lib/cjs/src/api/utils/AppName.test.js.map +0 -7
  181. package/lib/cjs/src/api/utils/ApplicationChecker.test.js +0 -2
  182. package/lib/cjs/src/api/utils/ApplicationChecker.test.js.map +0 -7
  183. package/lib/cjs/src/api/utils/Base64String.test.js +0 -4
  184. package/lib/cjs/src/api/utils/Base64String.test.js.map +0 -7
  185. package/lib/cjs/src/api/utils/HexaString.test.js +0 -2
  186. package/lib/cjs/src/api/utils/HexaString.test.js.map +0 -7
  187. package/lib/cjs/src/api/utils/apduLogs.test.js +0 -2
  188. package/lib/cjs/src/api/utils/apduLogs.test.js.map +0 -7
  189. package/lib/cjs/src/di.test.js +0 -2
  190. package/lib/cjs/src/di.test.js.map +0 -7
  191. package/lib/cjs/src/internal/config/data/LocalConfigDataSource.test.js +0 -2
  192. package/lib/cjs/src/internal/config/data/LocalConfigDataSource.test.js.map +0 -7
  193. package/lib/cjs/src/internal/config/data/RemoteConfigDataSource.test.js +0 -2
  194. package/lib/cjs/src/internal/config/data/RemoteConfigDataSource.test.js.map +0 -7
  195. package/lib/cjs/src/internal/config/data/__mocks__/LocalConfigDataSource.js +0 -2
  196. package/lib/cjs/src/internal/config/data/__mocks__/LocalConfigDataSource.js.map +0 -7
  197. package/lib/cjs/src/internal/config/data/__mocks__/RemoteConfigDataSource.js +0 -2
  198. package/lib/cjs/src/internal/config/data/__mocks__/RemoteConfigDataSource.js.map +0 -7
  199. package/lib/cjs/src/internal/config/di/configModule.test.js +0 -2
  200. package/lib/cjs/src/internal/config/di/configModule.test.js.map +0 -7
  201. package/lib/cjs/src/internal/config/service/DefaultConfigService.test.js +0 -2
  202. package/lib/cjs/src/internal/config/service/DefaultConfigService.test.js.map +0 -7
  203. package/lib/cjs/src/internal/config/use-case/GetDmkVersionUseCase.test.js +0 -2
  204. package/lib/cjs/src/internal/config/use-case/GetDmkVersionUseCase.test.js.map +0 -7
  205. package/lib/cjs/src/internal/crypto/NobleCryptoService.test.js +0 -2
  206. package/lib/cjs/src/internal/crypto/NobleCryptoService.test.js.map +0 -7
  207. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js +0 -2
  208. package/lib/cjs/src/internal/device-model/di/deviceModelModule.test.js.map +0 -7
  209. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.test.js +0 -2
  210. package/lib/cjs/src/internal/device-session/di/deviceSessionModule.test.js.map +0 -7
  211. package/lib/cjs/src/internal/device-session/model/DevicePinger.test.js +0 -2
  212. package/lib/cjs/src/internal/device-session/model/DevicePinger.test.js.map +0 -7
  213. package/lib/cjs/src/internal/device-session/model/DeviceSession.test.js +0 -2
  214. package/lib/cjs/src/internal/device-session/model/DeviceSession.test.js.map +0 -7
  215. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js +0 -2
  216. package/lib/cjs/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js.map +0 -7
  217. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js +0 -2
  218. package/lib/cjs/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +0 -7
  219. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js +0 -2
  220. package/lib/cjs/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +0 -7
  221. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.test.js +0 -2
  222. package/lib/cjs/src/internal/device-session/service/DefaultApduReceiverService.test.js.map +0 -7
  223. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js +0 -2
  224. package/lib/cjs/src/internal/device-session/service/DefaultApduSenderService.test.js.map +0 -7
  225. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js +0 -2
  226. package/lib/cjs/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +0 -7
  227. package/lib/cjs/src/internal/device-session/service/IntentQueueService.test.js +0 -2
  228. package/lib/cjs/src/internal/device-session/service/IntentQueueService.test.js.map +0 -7
  229. package/lib/cjs/src/internal/device-session/service/RefresherService.test.js +0 -2
  230. package/lib/cjs/src/internal/device-session/service/RefresherService.test.js.map +0 -7
  231. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +0 -2
  232. package/lib/cjs/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +0 -7
  233. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +0 -2
  234. package/lib/cjs/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +0 -7
  235. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js +0 -2
  236. package/lib/cjs/src/internal/discovery/di/discoveryModule.test.js.map +0 -7
  237. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js +0 -2
  238. package/lib/cjs/src/internal/discovery/use-case/ConnectUseCase.test.js.map +0 -7
  239. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js +0 -2
  240. package/lib/cjs/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +0 -7
  241. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +0 -2
  242. package/lib/cjs/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +0 -7
  243. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +0 -2
  244. package/lib/cjs/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +0 -7
  245. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js +0 -2
  246. package/lib/cjs/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js.map +0 -7
  247. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +0 -2
  248. package/lib/cjs/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +0 -7
  249. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.test.js +0 -2
  250. package/lib/cjs/src/internal/discovery/use-case/ReconnectUseCase.test.js.map +0 -7
  251. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +0 -2
  252. package/lib/cjs/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +0 -7
  253. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +0 -2
  254. package/lib/cjs/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +0 -7
  255. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.test.js +0 -2
  256. package/lib/cjs/src/internal/logger-publisher/di/loggerModule.test.js.map +0 -7
  257. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js +0 -2
  258. package/lib/cjs/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js.map +0 -7
  259. package/lib/cjs/src/internal/logger-publisher/service/sanitiseData.test.js +0 -2
  260. package/lib/cjs/src/internal/logger-publisher/service/sanitiseData.test.js.map +0 -7
  261. package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.test.js +0 -2
  262. package/lib/cjs/src/internal/manager-api/data/HttpManagerApiDataSource.test.js.map +0 -7
  263. package/lib/cjs/src/internal/manager-api/data/__mocks__/HttpManagerApiDataSource.js +0 -2
  264. package/lib/cjs/src/internal/manager-api/data/__mocks__/HttpManagerApiDataSource.js.map +0 -7
  265. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js +0 -2
  266. package/lib/cjs/src/internal/manager-api/di/managerApiModule.test.js.map +0 -7
  267. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js +0 -2
  268. package/lib/cjs/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +0 -7
  269. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js +0 -2
  270. package/lib/cjs/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +0 -7
  271. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +0 -2
  272. package/lib/cjs/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +0 -7
  273. package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js +0 -2
  274. package/lib/cjs/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js.map +0 -7
  275. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js +0 -2
  276. package/lib/cjs/src/internal/secure-channel/di/secureChannelModule.test.js.map +0 -7
  277. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +0 -2
  278. package/lib/cjs/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +0 -7
  279. package/lib/cjs/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js +0 -2
  280. package/lib/cjs/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js.map +0 -7
  281. package/lib/cjs/src/internal/send/di/sendModule.test.js +0 -2
  282. package/lib/cjs/src/internal/send/di/sendModule.test.js.map +0 -7
  283. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js +0 -2
  284. package/lib/cjs/src/internal/send/use-case/SendApduUseCase.test.js.map +0 -7
  285. package/lib/cjs/src/internal/transport/di/transportModule.test.js +0 -2
  286. package/lib/cjs/src/internal/transport/di/transportModule.test.js.map +0 -7
  287. package/lib/cjs/src/internal/transport/service/DefaultTransportService.test.js +0 -2
  288. package/lib/cjs/src/internal/transport/service/DefaultTransportService.test.js.map +0 -7
  289. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js +0 -2
  290. package/lib/cjs/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +0 -7
  291. package/lib/esm/src/api/DeviceManagementKit.test.js +0 -2
  292. package/lib/esm/src/api/DeviceManagementKit.test.js.map +0 -7
  293. package/lib/esm/src/api/DeviceManagementKitBuilder.test.js +0 -2
  294. package/lib/esm/src/api/DeviceManagementKitBuilder.test.js.map +0 -7
  295. package/lib/esm/src/api/apdu/model/Apdu.test.js +0 -2
  296. package/lib/esm/src/api/apdu/model/Apdu.test.js.map +0 -7
  297. package/lib/esm/src/api/apdu/utils/ApduBuilder.test.js +0 -2
  298. package/lib/esm/src/api/apdu/utils/ApduBuilder.test.js.map +0 -7
  299. package/lib/esm/src/api/apdu/utils/ApduParser.test.js +0 -2
  300. package/lib/esm/src/api/apdu/utils/ApduParser.test.js.map +0 -7
  301. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js +0 -2
  302. package/lib/esm/src/api/apdu/utils/ByteArrayBuilder.test.js.map +0 -7
  303. package/lib/esm/src/api/apdu/utils/ByteArrayParser.test.js +0 -2
  304. package/lib/esm/src/api/apdu/utils/ByteArrayParser.test.js.map +0 -7
  305. package/lib/esm/src/api/command/di/commandModule.test.js +0 -2
  306. package/lib/esm/src/api/command/di/commandModule.test.js.map +0 -7
  307. package/lib/esm/src/api/command/model/CommandResult.test.js +0 -2
  308. package/lib/esm/src/api/command/model/CommandResult.test.js.map +0 -7
  309. package/lib/esm/src/api/command/os/CloseAppCommand.test.js +0 -2
  310. package/lib/esm/src/api/command/os/CloseAppCommand.test.js.map +0 -7
  311. package/lib/esm/src/api/command/os/DeleteLanguagePackCommand.test.js +0 -2
  312. package/lib/esm/src/api/command/os/DeleteLanguagePackCommand.test.js.map +0 -7
  313. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.test.js +0 -2
  314. package/lib/esm/src/api/command/os/GetAppAndVersionCommand.test.js.map +0 -7
  315. package/lib/esm/src/api/command/os/GetBackgroundImageSizeCommand.test.js +0 -2
  316. package/lib/esm/src/api/command/os/GetBackgroundImageSizeCommand.test.js.map +0 -7
  317. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.test.js +0 -2
  318. package/lib/esm/src/api/command/os/GetBatteryStatusCommand.test.js.map +0 -7
  319. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js +0 -2
  320. package/lib/esm/src/api/command/os/GetOsVersionCommand.test.js.map +0 -7
  321. package/lib/esm/src/api/command/os/ListAppsCommand.test.js +0 -2
  322. package/lib/esm/src/api/command/os/ListAppsCommand.test.js.map +0 -7
  323. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js +0 -2
  324. package/lib/esm/src/api/command/os/ListLanguagePackCommand.test.js.map +0 -7
  325. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js +0 -2
  326. package/lib/esm/src/api/command/os/LoadCertificateCommand.test.js.map +0 -7
  327. package/lib/esm/src/api/command/os/OpenAppCommand.test.js +0 -2
  328. package/lib/esm/src/api/command/os/OpenAppCommand.test.js.map +0 -7
  329. package/lib/esm/src/api/command/os/SecureElementFlagsParser.test.js +0 -2
  330. package/lib/esm/src/api/command/os/SecureElementFlagsParser.test.js.map +0 -7
  331. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js +0 -2
  332. package/lib/esm/src/api/command/os/__mocks__/GetOsVersionCommand.js.map +0 -7
  333. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js +0 -2
  334. package/lib/esm/src/api/command/use-case/SendCommandUseCase.test.js.map +0 -7
  335. package/lib/esm/src/api/command/utils/CommandUtils.test.js +0 -2
  336. package/lib/esm/src/api/command/utils/CommandUtils.test.js.map +0 -7
  337. package/lib/esm/src/api/command/utils/GlobalCommandError.test.js +0 -2
  338. package/lib/esm/src/api/command/utils/GlobalCommandError.test.js.map +0 -7
  339. package/lib/esm/src/api/device-action/__test-utils__/data.js +0 -2
  340. package/lib/esm/src/api/device-action/__test-utils__/data.js.map +0 -7
  341. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js +0 -2
  342. package/lib/esm/src/api/device-action/__test-utils__/makeInternalApi.js.map +0 -7
  343. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js +0 -2
  344. package/lib/esm/src/api/device-action/__test-utils__/setupTestMachine.js.map +0 -7
  345. package/lib/esm/src/api/device-action/__test-utils__/testDeviceActionStates.js +0 -2
  346. package/lib/esm/src/api/device-action/__test-utils__/testDeviceActionStates.js.map +0 -7
  347. package/lib/esm/src/api/device-action/di/deviceActionModule.test.js +0 -2
  348. package/lib/esm/src/api/device-action/di/deviceActionModule.test.js.map +0 -7
  349. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js +0 -2
  350. package/lib/esm/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.js.map +0 -7
  351. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js +0 -2
  352. package/lib/esm/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.js.map +0 -7
  353. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js +0 -2
  354. package/lib/esm/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.js.map +0 -7
  355. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js +0 -2
  356. package/lib/esm/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.js.map +0 -7
  357. package/lib/esm/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.js +0 -2
  358. package/lib/esm/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.js.map +0 -7
  359. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js +0 -2
  360. package/lib/esm/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.js.map +0 -7
  361. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js +0 -2
  362. package/lib/esm/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.js.map +0 -7
  363. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js +0 -2
  364. package/lib/esm/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.js.map +0 -7
  365. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js +0 -2
  366. package/lib/esm/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.js.map +0 -7
  367. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js +0 -2
  368. package/lib/esm/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.js.map +0 -7
  369. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js +0 -2
  370. package/lib/esm/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.js.map +0 -7
  371. package/lib/esm/src/api/device-action/os/WaitForAppAndVersion/WaitForAppAndVersionDeviceAction.test.js +0 -2
  372. package/lib/esm/src/api/device-action/os/WaitForAppAndVersion/WaitForAppAndVersionDeviceAction.test.js.map +0 -7
  373. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js +0 -2
  374. package/lib/esm/src/api/device-action/task/BuildAppsInstallPlanTask.test.js.map +0 -7
  375. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.test.js +0 -2
  376. package/lib/esm/src/api/device-action/task/GetApplicationsMetadataTask.test.js.map +0 -7
  377. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js +0 -2
  378. package/lib/esm/src/api/device-action/task/GetFirmwareMetadataTask.test.js.map +0 -7
  379. package/lib/esm/src/api/device-action/task/InstallLanguagePackageTask.test.js +0 -9
  380. package/lib/esm/src/api/device-action/task/InstallLanguagePackageTask.test.js.map +0 -7
  381. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.test.js +0 -2
  382. package/lib/esm/src/api/device-action/task/PredictOutOfMemoryTask.test.js.map +0 -7
  383. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js +0 -2
  384. package/lib/esm/src/api/device-model/data/StaticDeviceModelDataSource.test.js.map +0 -7
  385. package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js +0 -2
  386. package/lib/esm/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.js.map +0 -7
  387. package/lib/esm/src/api/device-session/utils/FramerUtils.test.js +0 -2
  388. package/lib/esm/src/api/device-session/utils/FramerUtils.test.js.map +0 -7
  389. package/lib/esm/src/api/logger-publisher/utils/noopLoggerFactory.test.js +0 -2
  390. package/lib/esm/src/api/logger-publisher/utils/noopLoggerFactory.test.js.map +0 -7
  391. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.test.js +0 -2
  392. package/lib/esm/src/api/logger-subscriber/service/ConsoleLogger.test.js.map +0 -7
  393. package/lib/esm/src/api/logger-subscriber/service/DefaultLogTagFormatter.test.js +0 -2
  394. package/lib/esm/src/api/logger-subscriber/service/DefaultLogTagFormatter.test.js.map +0 -7
  395. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js +0 -2
  396. package/lib/esm/src/api/logger-subscriber/service/WebLogsExporterLogger.test.js.map +0 -7
  397. package/lib/esm/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js +0 -2
  398. package/lib/esm/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.js.map +0 -7
  399. package/lib/esm/src/api/model/DmkResult.test.js +0 -2
  400. package/lib/esm/src/api/model/DmkResult.test.js.map +0 -7
  401. package/lib/esm/src/api/network/DmkNetworkClient.test.js +0 -2
  402. package/lib/esm/src/api/network/DmkNetworkClient.test.js.map +0 -7
  403. package/lib/esm/src/api/network/DmkNetworkClientHelpers.test.js +0 -2
  404. package/lib/esm/src/api/network/DmkNetworkClientHelpers.test.js.map +0 -7
  405. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js +0 -2
  406. package/lib/esm/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.js.map +0 -7
  407. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js +0 -2
  408. package/lib/esm/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.js.map +0 -7
  409. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js +0 -2
  410. package/lib/esm/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.js.map +0 -7
  411. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js +0 -2
  412. package/lib/esm/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.js.map +0 -7
  413. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js +0 -2
  414. package/lib/esm/src/api/secure-channel/task/ConnectToSecureChannelTask.test.js.map +0 -7
  415. package/lib/esm/src/api/secure-channel/utils.test.js +0 -2
  416. package/lib/esm/src/api/secure-channel/utils.test.js.map +0 -7
  417. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.test.js +0 -2
  418. package/lib/esm/src/api/transport/model/DeviceConnectionStateMachine.test.js.map +0 -7
  419. package/lib/esm/src/api/transport/model/TransportConnectedDevice.test.js +0 -2
  420. package/lib/esm/src/api/transport/model/TransportConnectedDevice.test.js.map +0 -7
  421. package/lib/esm/src/api/transport/model/__mocks__/TransportMock.js +0 -2
  422. package/lib/esm/src/api/transport/model/__mocks__/TransportMock.js.map +0 -7
  423. package/lib/esm/src/api/utils/AppName.test.js +0 -2
  424. package/lib/esm/src/api/utils/AppName.test.js.map +0 -7
  425. package/lib/esm/src/api/utils/ApplicationChecker.test.js +0 -2
  426. package/lib/esm/src/api/utils/ApplicationChecker.test.js.map +0 -7
  427. package/lib/esm/src/api/utils/Base64String.test.js +0 -4
  428. package/lib/esm/src/api/utils/Base64String.test.js.map +0 -7
  429. package/lib/esm/src/api/utils/HexaString.test.js +0 -2
  430. package/lib/esm/src/api/utils/HexaString.test.js.map +0 -7
  431. package/lib/esm/src/api/utils/apduLogs.test.js +0 -2
  432. package/lib/esm/src/api/utils/apduLogs.test.js.map +0 -7
  433. package/lib/esm/src/di.test.js +0 -2
  434. package/lib/esm/src/di.test.js.map +0 -7
  435. package/lib/esm/src/internal/config/data/LocalConfigDataSource.test.js +0 -2
  436. package/lib/esm/src/internal/config/data/LocalConfigDataSource.test.js.map +0 -7
  437. package/lib/esm/src/internal/config/data/RemoteConfigDataSource.test.js +0 -2
  438. package/lib/esm/src/internal/config/data/RemoteConfigDataSource.test.js.map +0 -7
  439. package/lib/esm/src/internal/config/data/__mocks__/LocalConfigDataSource.js +0 -2
  440. package/lib/esm/src/internal/config/data/__mocks__/LocalConfigDataSource.js.map +0 -7
  441. package/lib/esm/src/internal/config/data/__mocks__/RemoteConfigDataSource.js +0 -2
  442. package/lib/esm/src/internal/config/data/__mocks__/RemoteConfigDataSource.js.map +0 -7
  443. package/lib/esm/src/internal/config/di/configModule.test.js +0 -2
  444. package/lib/esm/src/internal/config/di/configModule.test.js.map +0 -7
  445. package/lib/esm/src/internal/config/service/DefaultConfigService.test.js +0 -2
  446. package/lib/esm/src/internal/config/service/DefaultConfigService.test.js.map +0 -7
  447. package/lib/esm/src/internal/config/use-case/GetDmkVersionUseCase.test.js +0 -2
  448. package/lib/esm/src/internal/config/use-case/GetDmkVersionUseCase.test.js.map +0 -7
  449. package/lib/esm/src/internal/crypto/NobleCryptoService.test.js +0 -2
  450. package/lib/esm/src/internal/crypto/NobleCryptoService.test.js.map +0 -7
  451. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js +0 -2
  452. package/lib/esm/src/internal/device-model/di/deviceModelModule.test.js.map +0 -7
  453. package/lib/esm/src/internal/device-session/di/deviceSessionModule.test.js +0 -2
  454. package/lib/esm/src/internal/device-session/di/deviceSessionModule.test.js.map +0 -7
  455. package/lib/esm/src/internal/device-session/model/DevicePinger.test.js +0 -2
  456. package/lib/esm/src/internal/device-session/model/DevicePinger.test.js.map +0 -7
  457. package/lib/esm/src/internal/device-session/model/DeviceSession.test.js +0 -2
  458. package/lib/esm/src/internal/device-session/model/DeviceSession.test.js.map +0 -7
  459. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js +0 -2
  460. package/lib/esm/src/internal/device-session/model/DeviceSessionEventDispatcher.test.js.map +0 -7
  461. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js +0 -2
  462. package/lib/esm/src/internal/device-session/model/DeviceSessionRefresher.test.js.map +0 -7
  463. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js +0 -2
  464. package/lib/esm/src/internal/device-session/model/DeviceSessionStateHandler.test.js.map +0 -7
  465. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.test.js +0 -2
  466. package/lib/esm/src/internal/device-session/service/DefaultApduReceiverService.test.js.map +0 -7
  467. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js +0 -2
  468. package/lib/esm/src/internal/device-session/service/DefaultApduSenderService.test.js.map +0 -7
  469. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js +0 -2
  470. package/lib/esm/src/internal/device-session/service/DefaultDeviceSessionService.test.js.map +0 -7
  471. package/lib/esm/src/internal/device-session/service/IntentQueueService.test.js +0 -2
  472. package/lib/esm/src/internal/device-session/service/IntentQueueService.test.js.map +0 -7
  473. package/lib/esm/src/internal/device-session/service/RefresherService.test.js +0 -2
  474. package/lib/esm/src/internal/device-session/service/RefresherService.test.js.map +0 -7
  475. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js +0 -2
  476. package/lib/esm/src/internal/device-session/use-case/CloseSessionsUseCase.test.js.map +0 -7
  477. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js +0 -2
  478. package/lib/esm/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.js.map +0 -7
  479. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js +0 -2
  480. package/lib/esm/src/internal/discovery/di/discoveryModule.test.js.map +0 -7
  481. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js +0 -2
  482. package/lib/esm/src/internal/discovery/use-case/ConnectUseCase.test.js.map +0 -7
  483. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js +0 -2
  484. package/lib/esm/src/internal/discovery/use-case/DisconnectUseCase.test.js.map +0 -7
  485. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js +0 -2
  486. package/lib/esm/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.js.map +0 -7
  487. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js +0 -2
  488. package/lib/esm/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.js.map +0 -7
  489. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js +0 -2
  490. package/lib/esm/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.js.map +0 -7
  491. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js +0 -2
  492. package/lib/esm/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.js.map +0 -7
  493. package/lib/esm/src/internal/discovery/use-case/ReconnectUseCase.test.js +0 -2
  494. package/lib/esm/src/internal/discovery/use-case/ReconnectUseCase.test.js.map +0 -7
  495. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js +0 -2
  496. package/lib/esm/src/internal/discovery/use-case/StartDiscoveringUseCase.test.js.map +0 -7
  497. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js +0 -2
  498. package/lib/esm/src/internal/discovery/use-case/StopDiscoveringUseCase.test.js.map +0 -7
  499. package/lib/esm/src/internal/logger-publisher/di/loggerModule.test.js +0 -2
  500. package/lib/esm/src/internal/logger-publisher/di/loggerModule.test.js.map +0 -7
  501. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js +0 -2
  502. package/lib/esm/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.js.map +0 -7
  503. package/lib/esm/src/internal/logger-publisher/service/sanitiseData.test.js +0 -2
  504. package/lib/esm/src/internal/logger-publisher/service/sanitiseData.test.js.map +0 -7
  505. package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.test.js +0 -2
  506. package/lib/esm/src/internal/manager-api/data/HttpManagerApiDataSource.test.js.map +0 -7
  507. package/lib/esm/src/internal/manager-api/data/__mocks__/HttpManagerApiDataSource.js +0 -2
  508. package/lib/esm/src/internal/manager-api/data/__mocks__/HttpManagerApiDataSource.js.map +0 -7
  509. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js +0 -2
  510. package/lib/esm/src/internal/manager-api/di/managerApiModule.test.js.map +0 -7
  511. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js +0 -2
  512. package/lib/esm/src/internal/manager-api/service/DefaultManagerApiService.test.js.map +0 -7
  513. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js +0 -2
  514. package/lib/esm/src/internal/manager-api/use-case/SetProviderUseCase.test.js.map +0 -7
  515. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js +0 -2
  516. package/lib/esm/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.js.map +0 -7
  517. package/lib/esm/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js +0 -2
  518. package/lib/esm/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.js.map +0 -7
  519. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js +0 -2
  520. package/lib/esm/src/internal/secure-channel/di/secureChannelModule.test.js.map +0 -7
  521. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js +0 -2
  522. package/lib/esm/src/internal/secure-channel/service/DefaultSecureChannelService.test.js.map +0 -7
  523. package/lib/esm/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js +0 -2
  524. package/lib/esm/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.js.map +0 -7
  525. package/lib/esm/src/internal/send/di/sendModule.test.js +0 -2
  526. package/lib/esm/src/internal/send/di/sendModule.test.js.map +0 -7
  527. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js +0 -2
  528. package/lib/esm/src/internal/send/use-case/SendApduUseCase.test.js.map +0 -7
  529. package/lib/esm/src/internal/transport/di/transportModule.test.js +0 -2
  530. package/lib/esm/src/internal/transport/di/transportModule.test.js.map +0 -7
  531. package/lib/esm/src/internal/transport/service/DefaultTransportService.test.js +0 -2
  532. package/lib/esm/src/internal/transport/service/DefaultTransportService.test.js.map +0 -7
  533. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js +0 -2
  534. package/lib/esm/src/internal/transport/service/__mocks__/DefaultTransportService.js.map +0 -7
  535. package/lib/types/src/api/DeviceManagementKit.test.d.ts +0 -2
  536. package/lib/types/src/api/DeviceManagementKit.test.d.ts.map +0 -1
  537. package/lib/types/src/api/DeviceManagementKitBuilder.test.d.ts +0 -2
  538. package/lib/types/src/api/DeviceManagementKitBuilder.test.d.ts.map +0 -1
  539. package/lib/types/src/api/apdu/model/Apdu.test.d.ts +0 -2
  540. package/lib/types/src/api/apdu/model/Apdu.test.d.ts.map +0 -1
  541. package/lib/types/src/api/apdu/utils/ApduBuilder.test.d.ts +0 -2
  542. package/lib/types/src/api/apdu/utils/ApduBuilder.test.d.ts.map +0 -1
  543. package/lib/types/src/api/apdu/utils/ApduParser.test.d.ts +0 -2
  544. package/lib/types/src/api/apdu/utils/ApduParser.test.d.ts.map +0 -1
  545. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.test.d.ts +0 -2
  546. package/lib/types/src/api/apdu/utils/ByteArrayBuilder.test.d.ts.map +0 -1
  547. package/lib/types/src/api/apdu/utils/ByteArrayParser.test.d.ts +0 -2
  548. package/lib/types/src/api/apdu/utils/ByteArrayParser.test.d.ts.map +0 -1
  549. package/lib/types/src/api/command/di/commandModule.test.d.ts +0 -2
  550. package/lib/types/src/api/command/di/commandModule.test.d.ts.map +0 -1
  551. package/lib/types/src/api/command/model/CommandResult.test.d.ts +0 -2
  552. package/lib/types/src/api/command/model/CommandResult.test.d.ts.map +0 -1
  553. package/lib/types/src/api/command/os/CloseAppCommand.test.d.ts +0 -2
  554. package/lib/types/src/api/command/os/CloseAppCommand.test.d.ts.map +0 -1
  555. package/lib/types/src/api/command/os/DeleteLanguagePackCommand.test.d.ts +0 -2
  556. package/lib/types/src/api/command/os/DeleteLanguagePackCommand.test.d.ts.map +0 -1
  557. package/lib/types/src/api/command/os/GetAppAndVersionCommand.test.d.ts +0 -2
  558. package/lib/types/src/api/command/os/GetAppAndVersionCommand.test.d.ts.map +0 -1
  559. package/lib/types/src/api/command/os/GetBackgroundImageSizeCommand.test.d.ts +0 -2
  560. package/lib/types/src/api/command/os/GetBackgroundImageSizeCommand.test.d.ts.map +0 -1
  561. package/lib/types/src/api/command/os/GetBatteryStatusCommand.test.d.ts +0 -2
  562. package/lib/types/src/api/command/os/GetBatteryStatusCommand.test.d.ts.map +0 -1
  563. package/lib/types/src/api/command/os/GetOsVersionCommand.test.d.ts +0 -2
  564. package/lib/types/src/api/command/os/GetOsVersionCommand.test.d.ts.map +0 -1
  565. package/lib/types/src/api/command/os/ListAppsCommand.test.d.ts +0 -2
  566. package/lib/types/src/api/command/os/ListAppsCommand.test.d.ts.map +0 -1
  567. package/lib/types/src/api/command/os/ListLanguagePackCommand.test.d.ts +0 -2
  568. package/lib/types/src/api/command/os/ListLanguagePackCommand.test.d.ts.map +0 -1
  569. package/lib/types/src/api/command/os/LoadCertificateCommand.test.d.ts +0 -2
  570. package/lib/types/src/api/command/os/LoadCertificateCommand.test.d.ts.map +0 -1
  571. package/lib/types/src/api/command/os/OpenAppCommand.test.d.ts +0 -2
  572. package/lib/types/src/api/command/os/OpenAppCommand.test.d.ts.map +0 -1
  573. package/lib/types/src/api/command/os/SecureElementFlagsParser.test.d.ts +0 -2
  574. package/lib/types/src/api/command/os/SecureElementFlagsParser.test.d.ts.map +0 -1
  575. package/lib/types/src/api/command/os/__mocks__/GetOsVersionCommand.d.ts +0 -4
  576. package/lib/types/src/api/command/os/__mocks__/GetOsVersionCommand.d.ts.map +0 -1
  577. package/lib/types/src/api/command/use-case/SendCommandUseCase.test.d.ts +0 -2
  578. package/lib/types/src/api/command/use-case/SendCommandUseCase.test.d.ts.map +0 -1
  579. package/lib/types/src/api/command/utils/CommandUtils.test.d.ts +0 -2
  580. package/lib/types/src/api/command/utils/CommandUtils.test.d.ts.map +0 -1
  581. package/lib/types/src/api/command/utils/GlobalCommandError.test.d.ts +0 -2
  582. package/lib/types/src/api/command/utils/GlobalCommandError.test.d.ts.map +0 -1
  583. package/lib/types/src/api/device-action/__test-utils__/data.d.ts +0 -94
  584. package/lib/types/src/api/device-action/__test-utils__/data.d.ts.map +0 -1
  585. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts +0 -4
  586. package/lib/types/src/api/device-action/__test-utils__/makeInternalApi.d.ts.map +0 -1
  587. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts +0 -23
  588. package/lib/types/src/api/device-action/__test-utils__/setupTestMachine.d.ts.map +0 -1
  589. package/lib/types/src/api/device-action/__test-utils__/testDeviceActionStates.d.ts +0 -18
  590. package/lib/types/src/api/device-action/__test-utils__/testDeviceActionStates.d.ts.map +0 -1
  591. package/lib/types/src/api/device-action/di/deviceActionModule.test.d.ts +0 -2
  592. package/lib/types/src/api/device-action/di/deviceActionModule.test.d.ts.map +0 -1
  593. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.d.ts +0 -2
  594. package/lib/types/src/api/device-action/os/CallTaskInAppDeviceAction/CallTaskInAppDeviceAction.test.d.ts.map +0 -1
  595. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.d.ts +0 -2
  596. package/lib/types/src/api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction.test.d.ts.map +0 -1
  597. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.d.ts +0 -2
  598. package/lib/types/src/api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction.test.d.ts.map +0 -1
  599. package/lib/types/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.d.ts +0 -2
  600. package/lib/types/src/api/device-action/os/GoToDashboard/GoToDashboardDeviceAction.test.d.ts.map +0 -1
  601. package/lib/types/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.d.ts +0 -2
  602. package/lib/types/src/api/device-action/os/InstallLanguagePackage/InstallLanguagePackageDeviceAction.test.d.ts.map +0 -1
  603. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.d.ts +0 -2
  604. package/lib/types/src/api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction.test.d.ts.map +0 -1
  605. package/lib/types/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.d.ts +0 -2
  606. package/lib/types/src/api/device-action/os/ListApps/ListAppsDeviceAction.test.d.ts.map +0 -1
  607. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.d.ts +0 -2
  608. package/lib/types/src/api/device-action/os/ListAppsWithMetadata/ListAppsWithMetadataDeviceAction.test.d.ts.map +0 -1
  609. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.d.ts +0 -2
  610. package/lib/types/src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.d.ts.map +0 -1
  611. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.d.ts +0 -2
  612. package/lib/types/src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.d.ts.map +0 -1
  613. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.d.ts +0 -2
  614. package/lib/types/src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.d.ts.map +0 -1
  615. package/lib/types/src/api/device-action/os/WaitForAppAndVersion/WaitForAppAndVersionDeviceAction.test.d.ts +0 -2
  616. package/lib/types/src/api/device-action/os/WaitForAppAndVersion/WaitForAppAndVersionDeviceAction.test.d.ts.map +0 -1
  617. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.test.d.ts +0 -2
  618. package/lib/types/src/api/device-action/task/BuildAppsInstallPlanTask.test.d.ts.map +0 -1
  619. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.test.d.ts +0 -2
  620. package/lib/types/src/api/device-action/task/GetApplicationsMetadataTask.test.d.ts.map +0 -1
  621. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.test.d.ts +0 -2
  622. package/lib/types/src/api/device-action/task/GetFirmwareMetadataTask.test.d.ts.map +0 -1
  623. package/lib/types/src/api/device-action/task/InstallLanguagePackageTask.test.d.ts +0 -2
  624. package/lib/types/src/api/device-action/task/InstallLanguagePackageTask.test.d.ts.map +0 -1
  625. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.test.d.ts +0 -2
  626. package/lib/types/src/api/device-action/task/PredictOutOfMemoryTask.test.d.ts.map +0 -1
  627. package/lib/types/src/api/device-model/data/StaticDeviceModelDataSource.test.d.ts +0 -2
  628. package/lib/types/src/api/device-model/data/StaticDeviceModelDataSource.test.d.ts.map +0 -1
  629. package/lib/types/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.d.ts +0 -2
  630. package/lib/types/src/api/device-session/use-case/DisableDeviceSessionRefresher.test.d.ts.map +0 -1
  631. package/lib/types/src/api/device-session/utils/FramerUtils.test.d.ts +0 -2
  632. package/lib/types/src/api/device-session/utils/FramerUtils.test.d.ts.map +0 -1
  633. package/lib/types/src/api/logger-publisher/utils/noopLoggerFactory.test.d.ts +0 -2
  634. package/lib/types/src/api/logger-publisher/utils/noopLoggerFactory.test.d.ts.map +0 -1
  635. package/lib/types/src/api/logger-subscriber/service/ConsoleLogger.test.d.ts +0 -2
  636. package/lib/types/src/api/logger-subscriber/service/ConsoleLogger.test.d.ts.map +0 -1
  637. package/lib/types/src/api/logger-subscriber/service/DefaultLogTagFormatter.test.d.ts +0 -2
  638. package/lib/types/src/api/logger-subscriber/service/DefaultLogTagFormatter.test.d.ts.map +0 -1
  639. package/lib/types/src/api/logger-subscriber/service/WebLogsExporterLogger.test.d.ts +0 -2
  640. package/lib/types/src/api/logger-subscriber/service/WebLogsExporterLogger.test.d.ts.map +0 -1
  641. package/lib/types/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.d.ts +0 -4
  642. package/lib/types/src/api/logger-subscriber/service/__mocks__/ConsoleLogger.d.ts.map +0 -1
  643. package/lib/types/src/api/model/DmkResult.test.d.ts +0 -2
  644. package/lib/types/src/api/model/DmkResult.test.d.ts.map +0 -1
  645. package/lib/types/src/api/network/DmkNetworkClient.test.d.ts +0 -2
  646. package/lib/types/src/api/network/DmkNetworkClient.test.d.ts.map +0 -1
  647. package/lib/types/src/api/network/DmkNetworkClientHelpers.test.d.ts +0 -2
  648. package/lib/types/src/api/network/DmkNetworkClientHelpers.test.d.ts.map +0 -1
  649. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.d.ts +0 -2
  650. package/lib/types/src/api/secure-channel/device-action/GenuineCheck/GenuineCheckDeviceAction.test.d.ts.map +0 -1
  651. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.d.ts +0 -2
  652. package/lib/types/src/api/secure-channel/device-action/InstallApp/InstallAppDeviceAction.test.d.ts.map +0 -1
  653. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.d.ts +0 -2
  654. package/lib/types/src/api/secure-channel/device-action/ListInstalledApps/ListInstalledAppsDeviceAction.test.d.ts.map +0 -1
  655. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.d.ts +0 -2
  656. package/lib/types/src/api/secure-channel/device-action/UninstallApp/UninstallAppDeviceAction.test.d.ts.map +0 -1
  657. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.test.d.ts +0 -2
  658. package/lib/types/src/api/secure-channel/task/ConnectToSecureChannelTask.test.d.ts.map +0 -1
  659. package/lib/types/src/api/secure-channel/utils.test.d.ts +0 -2
  660. package/lib/types/src/api/secure-channel/utils.test.d.ts.map +0 -1
  661. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.test.d.ts +0 -2
  662. package/lib/types/src/api/transport/model/DeviceConnectionStateMachine.test.d.ts.map +0 -1
  663. package/lib/types/src/api/transport/model/TransportConnectedDevice.test.d.ts +0 -2
  664. package/lib/types/src/api/transport/model/TransportConnectedDevice.test.d.ts.map +0 -1
  665. package/lib/types/src/api/transport/model/__mocks__/TransportMock.d.ts +0 -12
  666. package/lib/types/src/api/transport/model/__mocks__/TransportMock.d.ts.map +0 -1
  667. package/lib/types/src/api/utils/AppName.test.d.ts +0 -2
  668. package/lib/types/src/api/utils/AppName.test.d.ts.map +0 -1
  669. package/lib/types/src/api/utils/ApplicationChecker.test.d.ts +0 -2
  670. package/lib/types/src/api/utils/ApplicationChecker.test.d.ts.map +0 -1
  671. package/lib/types/src/api/utils/Base64String.test.d.ts +0 -2
  672. package/lib/types/src/api/utils/Base64String.test.d.ts.map +0 -1
  673. package/lib/types/src/api/utils/HexaString.test.d.ts +0 -2
  674. package/lib/types/src/api/utils/HexaString.test.d.ts.map +0 -1
  675. package/lib/types/src/api/utils/apduLogs.test.d.ts +0 -2
  676. package/lib/types/src/api/utils/apduLogs.test.d.ts.map +0 -1
  677. package/lib/types/src/di.test.d.ts +0 -2
  678. package/lib/types/src/di.test.d.ts.map +0 -1
  679. package/lib/types/src/internal/config/data/LocalConfigDataSource.test.d.ts +0 -2
  680. package/lib/types/src/internal/config/data/LocalConfigDataSource.test.d.ts.map +0 -1
  681. package/lib/types/src/internal/config/data/RemoteConfigDataSource.test.d.ts +0 -2
  682. package/lib/types/src/internal/config/data/RemoteConfigDataSource.test.d.ts.map +0 -1
  683. package/lib/types/src/internal/config/data/__mocks__/LocalConfigDataSource.d.ts +0 -5
  684. package/lib/types/src/internal/config/data/__mocks__/LocalConfigDataSource.d.ts.map +0 -1
  685. package/lib/types/src/internal/config/data/__mocks__/RemoteConfigDataSource.d.ts +0 -7
  686. package/lib/types/src/internal/config/data/__mocks__/RemoteConfigDataSource.d.ts.map +0 -1
  687. package/lib/types/src/internal/config/di/configModule.test.d.ts +0 -2
  688. package/lib/types/src/internal/config/di/configModule.test.d.ts.map +0 -1
  689. package/lib/types/src/internal/config/service/DefaultConfigService.test.d.ts +0 -2
  690. package/lib/types/src/internal/config/service/DefaultConfigService.test.d.ts.map +0 -1
  691. package/lib/types/src/internal/config/use-case/GetDmkVersionUseCase.test.d.ts +0 -2
  692. package/lib/types/src/internal/config/use-case/GetDmkVersionUseCase.test.d.ts.map +0 -1
  693. package/lib/types/src/internal/crypto/NobleCryptoService.test.d.ts +0 -2
  694. package/lib/types/src/internal/crypto/NobleCryptoService.test.d.ts.map +0 -1
  695. package/lib/types/src/internal/device-model/di/deviceModelModule.test.d.ts +0 -2
  696. package/lib/types/src/internal/device-model/di/deviceModelModule.test.d.ts.map +0 -1
  697. package/lib/types/src/internal/device-session/di/deviceSessionModule.test.d.ts +0 -2
  698. package/lib/types/src/internal/device-session/di/deviceSessionModule.test.d.ts.map +0 -1
  699. package/lib/types/src/internal/device-session/model/DevicePinger.test.d.ts +0 -2
  700. package/lib/types/src/internal/device-session/model/DevicePinger.test.d.ts.map +0 -1
  701. package/lib/types/src/internal/device-session/model/DeviceSession.test.d.ts +0 -2
  702. package/lib/types/src/internal/device-session/model/DeviceSession.test.d.ts.map +0 -1
  703. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.test.d.ts +0 -2
  704. package/lib/types/src/internal/device-session/model/DeviceSessionEventDispatcher.test.d.ts.map +0 -1
  705. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.test.d.ts +0 -2
  706. package/lib/types/src/internal/device-session/model/DeviceSessionRefresher.test.d.ts.map +0 -1
  707. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.test.d.ts +0 -2
  708. package/lib/types/src/internal/device-session/model/DeviceSessionStateHandler.test.d.ts.map +0 -1
  709. package/lib/types/src/internal/device-session/service/DefaultApduReceiverService.test.d.ts +0 -2
  710. package/lib/types/src/internal/device-session/service/DefaultApduReceiverService.test.d.ts.map +0 -1
  711. package/lib/types/src/internal/device-session/service/DefaultApduSenderService.test.d.ts +0 -2
  712. package/lib/types/src/internal/device-session/service/DefaultApduSenderService.test.d.ts.map +0 -1
  713. package/lib/types/src/internal/device-session/service/DefaultDeviceSessionService.test.d.ts +0 -2
  714. package/lib/types/src/internal/device-session/service/DefaultDeviceSessionService.test.d.ts.map +0 -1
  715. package/lib/types/src/internal/device-session/service/IntentQueueService.test.d.ts +0 -2
  716. package/lib/types/src/internal/device-session/service/IntentQueueService.test.d.ts.map +0 -1
  717. package/lib/types/src/internal/device-session/service/RefresherService.test.d.ts +0 -2
  718. package/lib/types/src/internal/device-session/service/RefresherService.test.d.ts.map +0 -1
  719. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.test.d.ts +0 -2
  720. package/lib/types/src/internal/device-session/use-case/CloseSessionsUseCase.test.d.ts.map +0 -1
  721. package/lib/types/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.d.ts +0 -2
  722. package/lib/types/src/internal/device-session/use-case/GetDeviceSessionStateUseCase.test.d.ts.map +0 -1
  723. package/lib/types/src/internal/discovery/di/discoveryModule.test.d.ts +0 -2
  724. package/lib/types/src/internal/discovery/di/discoveryModule.test.d.ts.map +0 -1
  725. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.test.d.ts +0 -2
  726. package/lib/types/src/internal/discovery/use-case/ConnectUseCase.test.d.ts.map +0 -1
  727. package/lib/types/src/internal/discovery/use-case/DisconnectUseCase.test.d.ts +0 -2
  728. package/lib/types/src/internal/discovery/use-case/DisconnectUseCase.test.d.ts.map +0 -1
  729. package/lib/types/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.d.ts +0 -2
  730. package/lib/types/src/internal/discovery/use-case/GetConnectedDeviceUseCase.test.d.ts.map +0 -1
  731. package/lib/types/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.d.ts +0 -2
  732. package/lib/types/src/internal/discovery/use-case/ListConnectedDevicesUseCase.test.d.ts.map +0 -1
  733. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.d.ts +0 -2
  734. package/lib/types/src/internal/discovery/use-case/ListenToAvailableDevicesUseCase.test.d.ts.map +0 -1
  735. package/lib/types/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.d.ts +0 -2
  736. package/lib/types/src/internal/discovery/use-case/ListenToConnectedDeviceUseCase.test.d.ts.map +0 -1
  737. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.test.d.ts +0 -2
  738. package/lib/types/src/internal/discovery/use-case/ReconnectUseCase.test.d.ts.map +0 -1
  739. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.test.d.ts +0 -2
  740. package/lib/types/src/internal/discovery/use-case/StartDiscoveringUseCase.test.d.ts.map +0 -1
  741. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.test.d.ts +0 -2
  742. package/lib/types/src/internal/discovery/use-case/StopDiscoveringUseCase.test.d.ts.map +0 -1
  743. package/lib/types/src/internal/logger-publisher/di/loggerModule.test.d.ts +0 -2
  744. package/lib/types/src/internal/logger-publisher/di/loggerModule.test.d.ts.map +0 -1
  745. package/lib/types/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.d.ts +0 -2
  746. package/lib/types/src/internal/logger-publisher/service/DefaultLoggerPublisherService.test.d.ts.map +0 -1
  747. package/lib/types/src/internal/logger-publisher/service/sanitiseData.test.d.ts +0 -2
  748. package/lib/types/src/internal/logger-publisher/service/sanitiseData.test.d.ts.map +0 -1
  749. package/lib/types/src/internal/manager-api/data/HttpManagerApiDataSource.test.d.ts +0 -2
  750. package/lib/types/src/internal/manager-api/data/HttpManagerApiDataSource.test.d.ts.map +0 -1
  751. package/lib/types/src/internal/manager-api/data/__mocks__/HttpManagerApiDataSource.d.ts +0 -15
  752. package/lib/types/src/internal/manager-api/data/__mocks__/HttpManagerApiDataSource.d.ts.map +0 -1
  753. package/lib/types/src/internal/manager-api/di/managerApiModule.test.d.ts +0 -2
  754. package/lib/types/src/internal/manager-api/di/managerApiModule.test.d.ts.map +0 -1
  755. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.test.d.ts +0 -2
  756. package/lib/types/src/internal/manager-api/service/DefaultManagerApiService.test.d.ts.map +0 -1
  757. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.test.d.ts +0 -2
  758. package/lib/types/src/internal/manager-api/use-case/SetProviderUseCase.test.d.ts.map +0 -1
  759. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.d.ts +0 -2
  760. package/lib/types/src/internal/secure-channel/data/DefaultSecureChannelDataSource.test.d.ts.map +0 -1
  761. package/lib/types/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.d.ts +0 -12
  762. package/lib/types/src/internal/secure-channel/data/__mocks__/DefaultSecureChannelDataSource.d.ts.map +0 -1
  763. package/lib/types/src/internal/secure-channel/di/secureChannelModule.test.d.ts +0 -2
  764. package/lib/types/src/internal/secure-channel/di/secureChannelModule.test.d.ts.map +0 -1
  765. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.test.d.ts +0 -2
  766. package/lib/types/src/internal/secure-channel/service/DefaultSecureChannelService.test.d.ts.map +0 -1
  767. package/lib/types/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.d.ts +0 -2
  768. package/lib/types/src/internal/secure-channel/use-case/SetWebSocketUrlUseCase.test.d.ts.map +0 -1
  769. package/lib/types/src/internal/send/di/sendModule.test.d.ts +0 -2
  770. package/lib/types/src/internal/send/di/sendModule.test.d.ts.map +0 -1
  771. package/lib/types/src/internal/send/use-case/SendApduUseCase.test.d.ts +0 -2
  772. package/lib/types/src/internal/send/use-case/SendApduUseCase.test.d.ts.map +0 -1
  773. package/lib/types/src/internal/transport/di/transportModule.test.d.ts +0 -2
  774. package/lib/types/src/internal/transport/di/transportModule.test.d.ts.map +0 -1
  775. package/lib/types/src/internal/transport/service/DefaultTransportService.test.d.ts +0 -2
  776. package/lib/types/src/internal/transport/service/DefaultTransportService.test.d.ts.map +0 -1
  777. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts +0 -20
  778. package/lib/types/src/internal/transport/service/__mocks__/DefaultTransportService.d.ts.map +0 -1
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../../src/api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction.test.ts"],
4
- "sourcesContent": ["import { lastValueFrom } from \"rxjs\";\n\nimport { InvalidStatusWordError } from \"@api/command/Errors\";\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { setupGetDeviceStatusMock } from \"@api/device-action/__test-utils__/setupTestMachine\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport { DeviceActionStatus } from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport {\n DeviceLockedError,\n DeviceNotOnboardedError,\n UnknownDAError,\n} from \"@api/device-action/os/Errors\";\nimport { getDeviceStatusDAStateStep } from \"@api/device-action/os/GetDeviceStatus/types\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport { DeviceDisconnectedWhileSendingError } from \"@api/transport/model/Errors\";\n\nimport { OpenAppDeviceAction } from \"./OpenAppDeviceAction\";\nimport {\n type OpenAppDAError,\n type OpenAppDAState,\n openAppDAStateStep,\n} from \"./types\";\n\nvi.mock(\"@api/device-action/os/GetDeviceStatus/GetDeviceStatusDeviceAction\");\n\ndescribe(\"OpenAppDeviceAction\", () => {\n const getAppAndVersionMock = vi.fn();\n const openAppMock = vi.fn();\n const closeAppMock = vi.fn();\n const getDeviceSessionStateMock = vi.fn();\n const setDeviceSessionStateMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n getDeviceSessionState: getDeviceSessionStateMock,\n setDeviceSessionState: setDeviceSessionStateMock,\n openApp: openAppMock,\n closeApp: closeAppMock,\n };\n }\n\n const { getDeviceSessionState: apiGetDeviceSessionStateMock } =\n makeDeviceActionInternalApiMock();\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"without overriding `extractDependencies`\", () => {\n it(\"should end if the required application is opened\", () =>\n new Promise<void>((resolve, reject) => {\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"Bitcoin\", version: \"1.0.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"0.0.0\",\n },\n ]);\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get onboarding status / list apps / initial step\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // get device status / onboard check\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: undefined,\n },\n ];\n\n testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"success cases\", () => {\n it(\"should end in a success if the app is already opened\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"Bitcoin\", version: \"1.0.0\" },\n });\n\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\", unlockTimeout: undefined },\n });\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get onboarding status / list apps / initial step\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // get app and version / onboard check / device status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: undefined,\n },\n ];\n\n testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in a success if the dashboard is open and open app succeeds\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n });\n\n setupGetDeviceStatusMock([\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"1.0.0\",\n },\n ]);\n\n openAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get app and version /list apps / initial step\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // get app and version / onboard check / device status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: undefined,\n },\n ];\n\n const { observable } = testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n\n lastValueFrom(observable).then(() => {\n expect(setDeviceSessionStateMock).toHaveBeenCalledWith({\n deviceStatus: DeviceStatus.CONNECTED,\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n currentApp: { name: \"Bitcoin\", version: \"1.0.0\" },\n });\n });\n }));\n\n it(\"should end in a success if disconnection occurs while open app succeeds\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue(\n CommandResultFactory({\n data: {\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n },\n }),\n );\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"0.0.0\",\n },\n }),\n );\n setupGetDeviceStatusMock([\n {\n currentApp: \"BOLOS\",\n currentAppVersion: \"0.0.0\",\n },\n {\n currentApp: \"Bitcoin\",\n currentAppVersion: \"0.0.0\",\n },\n ]);\n openAppMock.mockRejectedValue(\n new DeviceDisconnectedWhileSendingError(),\n );\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get onboarded status / list apps / initial step\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // get device status / onboard check\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // open app (confirm)\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // device status after open\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // final device status check\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: undefined,\n },\n ];\n\n testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in a success if another app is open, close app succeeds and open app succeeds\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"AnotherApp\", version: \"0.0.0\" },\n });\n setupGetDeviceStatusMock([\n {\n currentApp: \"AnotherApp\",\n currentAppVersion: \"0.0.0\",\n },\n { currentApp: \"Bitcoin\", currentAppVersion: \"1.0.0\" },\n ]);\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n openAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get app and version / list apps / initial step\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // get device status / close app\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // get device status / close app\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // open app (confirm)\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // get app and version\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // get app and version (final)\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: undefined,\n },\n ];\n\n const { observable } = testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n\n lastValueFrom(observable).then(() => {\n expect(setDeviceSessionStateMock).toHaveBeenCalledWith({\n currentApp: { name: \"Bitcoin\", version: \"1.0.0\" },\n deviceStatus: DeviceStatus.CONNECTED,\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n });\n });\n }));\n });\n\n describe(\"errors cases\", () => {\n it(\"GIVEN a non-onboarded device WHEN opening an app THEN it blocks the app flow\", () =>\n new Promise<void>((resolve, reject) => {\n // GIVEN\n apiGetDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n installedApps: [],\n deviceModelId: DeviceModelId.NANO_X,\n isSecureConnectionAllowed: false,\n });\n setupGetDeviceStatusMock([new DeviceNotOnboardedError()]);\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n error: new DeviceNotOnboardedError(),\n status: DeviceActionStatus.Error,\n },\n ];\n\n // WHEN\n testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n // THEN\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if the device is locked\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.LOCKED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n\n setupGetDeviceStatusMock([new DeviceLockedError()]);\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new DeviceLockedError(),\n },\n ];\n\n testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if getAppAndVersion returns an error\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n\n setupGetDeviceStatusMock([new InvalidStatusWordError(\"mocked error\")]);\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get app and version / list apps / initial\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // device status / onboard check\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new InvalidStatusWordError(\"mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if the dashboard is open and open app returns an error\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue(\n CommandResultFactory({\n data: {\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n },\n }),\n );\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"0.0.0\",\n },\n }),\n );\n setupGetDeviceStatusMock([\n {\n currentApp: \"BOLOS\",\n currentAppVersion: \"0.0.0\",\n },\n ]);\n openAppMock.mockResolvedValue(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"mocked error\"),\n }),\n );\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get onboarded status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // device status / onboard check\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // open app (confirm)\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new InvalidStatusWordError(\"mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in a success if disconnection occurs while open app failed\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue(\n CommandResultFactory({\n data: {\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n },\n }),\n );\n getAppAndVersionMock.mockResolvedValue(\n CommandResultFactory({\n data: {\n name: \"BOLOS\",\n version: \"0.0.0\",\n },\n }),\n );\n setupGetDeviceStatusMock([\n {\n currentApp: \"BOLOS\",\n currentAppVersion: \"0.0.0\",\n },\n {\n currentApp: \"BOLOS\",\n currentAppVersion: \"0.0.0\",\n },\n ]);\n openAppMock.mockRejectedValue(\n new DeviceDisconnectedWhileSendingError(),\n );\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get onboarded status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // onboard check\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // open app (confirm)\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // device status after failure\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // final device status check\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new DeviceDisconnectedWhileSendingError() as OpenAppDAError,\n },\n ];\n\n testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if another app is open, and close app returns an error\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"AnotherApp\", version: \"0.0.0\" },\n });\n setupGetDeviceStatusMock([\n {\n currentApp: \"AnotherApp\",\n currentAppVersion: \"0.0.0\",\n },\n ]);\n closeAppMock.mockResolvedValue(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"mocked error\"),\n }),\n );\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get onboarded status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // onboard / device status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // close app\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new InvalidStatusWordError(\"mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if another app is open, close app succeeds but open app returns an error\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"AnotherApp\", version: \"0.0.0\" },\n });\n setupGetDeviceStatusMock([\n {\n currentApp: \"AnotherApp\",\n currentAppVersion: \"0.0.0\",\n },\n ]);\n closeAppMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n openAppMock.mockResolvedValue(\n CommandResultFactory({\n error: new InvalidStatusWordError(\"mocked error\"),\n }),\n );\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get onboarded status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // onboard / device status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // close app\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // open app (confirm)\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new InvalidStatusWordError(\"mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if getAppAndVersion actor throws an error\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"mockedCurrentApp\", version: \"1.0.0\" },\n });\n\n setupGetDeviceStatusMock([new UnknownDAError(\"Unknown error\")]);\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get onboarded status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // onboard / device status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"Unknown error\"),\n },\n ];\n\n testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if openApp actor throws an error\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue(\n CommandResultFactory({\n data: {\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n },\n }),\n );\n setupGetDeviceStatusMock([\n {\n currentApp: \"BOLOS\",\n currentAppVersion: \"0.0.0\",\n },\n ]);\n openAppMock.mockImplementation(() => {\n throw new UnknownDAError(\"Unknown error\");\n });\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get device onboarded\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // onboard / device status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // open app (confirm)\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"Unknown error\"),\n },\n ];\n\n testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if closeApp actor throws an error\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue(\n CommandResultFactory({\n data: {\n sessionStateType:\n DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"BOLOS\", version: \"0.0.0\" },\n },\n }),\n );\n setupGetDeviceStatusMock([\n {\n currentApp: \"anApp\",\n currentAppVersion: \"0.0.0\",\n },\n ]);\n closeAppMock.mockImplementation(() => {\n throw new UnknownDAError(\"Unknown error\");\n });\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get onboarded status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // onboard / device status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Pending, // close app\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"Unknown error\"),\n },\n ];\n\n testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should emit a stopped state if the action is cancelled\", () =>\n new Promise<void>((resolve, reject) => {\n getDeviceSessionStateMock.mockReturnValue({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n currentApp: { name: \"AnotherApp\", version: \"0.0.0\" },\n });\n setupGetDeviceStatusMock([\n {\n currentApp: \"AnotherApp\",\n currentAppVersion: \"0.0.0\",\n },\n ]);\n\n const openAppDeviceAction = new OpenAppDeviceAction({\n input: { appName: \"Bitcoin\" },\n });\n vi.spyOn(openAppDeviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<OpenAppDAState> = [\n {\n status: DeviceActionStatus.Pending, // get device onboarded\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending, // onboard / device status\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: getDeviceStatusDAStateStep.ONBOARD_CHECK,\n },\n },\n {\n status: DeviceActionStatus.Stopped,\n },\n ];\n\n const { cancel } = testDeviceActionStates(\n openAppDeviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n cancel();\n }));\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_rxjs", "import_Errors", "import_CommandResult", "import_DeviceModel", "import_DeviceStatus", "import_makeInternalApi", "import_setupTestMachine", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_types", "import_DeviceSessionState", "import_OpenAppDeviceAction", "getAppAndVersionMock", "openAppMock", "closeAppMock", "getDeviceSessionStateMock", "setDeviceSessionStateMock", "extractDependenciesMock", "apiGetDeviceSessionStateMock", "resolve", "reject", "openAppDeviceAction", "expectedStates", "observable", "cancel"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var D=require("../../../device-action/__test-utils__/makeInternalApi"),i=require("../../../device-action/__test-utils__/setupTestMachine"),o=require("../../../device-action/__test-utils__/testDeviceActionStates"),e=require("../../../device-action/model/DeviceActionState"),n=require("../../../device-action/model/UserInteractionRequired"),c=require("../../../device-action/os/Errors"),I=require("../../../device-action/os/InstallOrUpdateApps/types"),l=require("./OpenAppWithDependenciesDeviceAction"),t=require("./types");vi.mock("@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction");vi.mock("@api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction");vi.mock("@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction");describe("OpenAppWithDependenciesDeviceAction",()=>{const u=(0,D.makeDeviceActionInternalApiMock)(),A={firmwareUpdateContext:{}},d={requiredUserInteraction:n.UserInteractionRequired.None,step:I.installOrUpdateAppsDAStateStep.INSTALL_APPLICATION,installPlan:{installPlan:[{versionName:"1inch"}],alreadyInstalled:["Ethereum","Uniswap"],missingApplications:[""],currentIndex:0,currentProgress:.5}},E={successfullyInstalled:[{versionName:"1inch"}],alreadyInstalled:["Ethereum","Uniswap"],missingApplications:[""]};beforeEach(()=>{vi.clearAllMocks()}),describe("success cases",()=>{it("Open app with dependencies",()=>new Promise((a,r)=>{(0,i.setupGetDeviceMetadataMock)(A),(0,i.setupInstallOrUpdateAppsMock)(E,d),(0,i.setupOpenAppMock)();const p=new l.OpenAppWithDependenciesDeviceAction({input:{application:{name:"Ethereum"},dependencies:[{name:"Uniswap"},{name:"1inch"}],requireLatestFirmware:!1}}),s=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{...d,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{...d,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.ConfirmOpenApp,installPlan:null,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{output:{deviceMetadata:A,installResult:E},status:e.DeviceActionStatus.Completed}];(0,o.testDeviceActionStates)(p,s,u,{onDone:a,onError:r})}))}),describe("error cases",()=>{it("Get device metadata error",()=>new Promise((a,r)=>{(0,i.setupGetDeviceMetadataMock)(A,!0);const p=new l.OpenAppWithDependenciesDeviceAction({input:{application:{name:"Ethereum"},dependencies:[{name:"Uniswap"},{name:"1inch"}],requireLatestFirmware:!1}}),s=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{error:new c.UnknownDAError("GetDeviceMetadata failed"),status:e.DeviceActionStatus.Error}];(0,o.testDeviceActionStates)(p,s,u,{onDone:a,onError:r})})),it("Unsupported firmware",()=>new Promise((a,r)=>{(0,i.setupGetDeviceMetadataMock)({firmwareUpdateContext:{availableUpdate:"mockUpdate"}});const s=new l.OpenAppWithDependenciesDeviceAction({input:{application:{name:"Ethereum"},dependencies:[{name:"Uniswap"},{name:"1inch"}],requireLatestFirmware:!0}}),m=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{error:new c.UnsupportedFirmwareDAError("Firmware is not the latest version"),status:e.DeviceActionStatus.Error}];(0,o.testDeviceActionStates)(s,m,u,{onDone:a,onError:r})})),it("Install apps error",()=>new Promise((a,r)=>{(0,i.setupGetDeviceMetadataMock)({firmwareUpdateContext:{availableUpdate:"mockUpdate"}}),(0,i.setupInstallOrUpdateAppsMock)(E,d,!0);const s=new l.OpenAppWithDependenciesDeviceAction({input:{application:{name:"Ethereum"},dependencies:[{name:"Uniswap"},{name:"1inch"}],requireLatestFirmware:!1}}),m=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{...d,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{error:new c.UnknownDAError("InstallOrUpdateApps failed"),status:e.DeviceActionStatus.Error}];(0,o.testDeviceActionStates)(s,m,u,{onDone:a,onError:r})})),it("Open app error",()=>new Promise((a,r)=>{(0,i.setupGetDeviceMetadataMock)(A),(0,i.setupInstallOrUpdateAppsMock)(E,d),(0,i.setupOpenAppMock)(!0);const p=new l.OpenAppWithDependenciesDeviceAction({input:{application:{name:"Ethereum"},dependencies:[{name:"Uniswap"},{name:"1inch"}],requireLatestFirmware:!1}}),s=[{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.None,installPlan:null,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{...d,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{...d,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{intermediateValue:{requiredUserInteraction:n.UserInteractionRequired.ConfirmOpenApp,installPlan:null,deviceId:void 0,step:t.openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA},status:e.DeviceActionStatus.Pending},{error:new c.UnknownDAError("OpenApp failed"),status:e.DeviceActionStatus.Error}];(0,o.testDeviceActionStates)(p,s,u,{onDone:a,onError:r})}))})});
2
- //# sourceMappingURL=OpenAppWithDependenciesDeviceAction.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../../src/api/device-action/os/OpenAppWithDependencies/OpenAppWithDependenciesDeviceAction.test.ts"],
4
- "sourcesContent": ["import { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport {\n setupGetDeviceMetadataMock,\n setupInstallOrUpdateAppsMock,\n setupOpenAppMock,\n} from \"@api/device-action/__test-utils__/setupTestMachine\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport { DeviceActionStatus } from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport {\n UnknownDAError,\n UnsupportedFirmwareDAError,\n} from \"@api/device-action/os/Errors\";\nimport type { GetDeviceMetadataDAOutput } from \"@api/device-action/os/GetDeviceMetadata/types\";\nimport {\n type InstallOrUpdateAppsDAIntermediateValue,\n installOrUpdateAppsDAStateStep,\n} from \"@api/device-action/os/InstallOrUpdateApps/types\";\nimport type { Application } from \"@internal/manager-api/model/Application\";\n\nimport { OpenAppWithDependenciesDeviceAction } from \"./OpenAppWithDependenciesDeviceAction\";\nimport {\n type OpenAppWithDependenciesDAState,\n openAppWithDependenciesDAStateStep,\n} from \"./types\";\n\nvi.mock(\"@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction\");\nvi.mock(\n \"@api/device-action/os/InstallOrUpdateApps/InstallOrUpdateAppsDeviceAction\",\n);\nvi.mock(\n \"@api/device-action/os/GetDeviceMetadata/GetDeviceMetadataDeviceAction\",\n);\n\ndescribe(\"OpenAppWithDependenciesDeviceAction\", () => {\n const apiMock = makeDeviceActionInternalApiMock();\n\n const DEVICE_METADATA = {\n firmwareUpdateContext: {},\n } as unknown as GetDeviceMetadataDAOutput;\n\n const INSTALL_INTERMEDIATE_VALUE: InstallOrUpdateAppsDAIntermediateValue = {\n requiredUserInteraction: UserInteractionRequired.None,\n step: installOrUpdateAppsDAStateStep.INSTALL_APPLICATION,\n installPlan: {\n installPlan: [{ versionName: \"1inch\" }] as unknown as Application[],\n alreadyInstalled: [\"Ethereum\", \"Uniswap\"],\n missingApplications: [\"\"],\n currentIndex: 0,\n currentProgress: 0.5,\n },\n };\n\n const INSTALL_RESULT = {\n successfullyInstalled: [\n { versionName: \"1inch\" },\n ] as unknown as Application[],\n alreadyInstalled: [\"Ethereum\", \"Uniswap\"],\n missingApplications: [\"\"],\n };\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n describe(\"success cases\", () => {\n it(\"Open app with dependencies\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock(DEVICE_METADATA);\n setupInstallOrUpdateAppsMock(\n INSTALL_RESULT,\n INSTALL_INTERMEDIATE_VALUE,\n );\n setupOpenAppMock();\n const deviceAction = new OpenAppWithDependenciesDeviceAction({\n input: {\n application: { name: \"Ethereum\" },\n dependencies: [{ name: \"Uniswap\" }, { name: \"1inch\" }],\n requireLatestFirmware: false,\n },\n });\n\n const expectedStates: Array<OpenAppWithDependenciesDAState> = [\n // GetDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallOrUpdateApps\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n ...INSTALL_INTERMEDIATE_VALUE,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n // OpenApp\n {\n intermediateValue: {\n ...INSTALL_INTERMEDIATE_VALUE,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n installPlan: null,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n // Success\n {\n output: {\n deviceMetadata: DEVICE_METADATA,\n installResult: INSTALL_RESULT,\n },\n status: DeviceActionStatus.Completed,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n });\n\n describe(\"error cases\", () => {\n it(\"Get device metadata error\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock(DEVICE_METADATA, true);\n const deviceAction = new OpenAppWithDependenciesDeviceAction({\n input: {\n application: { name: \"Ethereum\" },\n dependencies: [{ name: \"Uniswap\" }, { name: \"1inch\" }],\n requireLatestFirmware: false,\n },\n });\n\n const expectedStates: Array<OpenAppWithDependenciesDAState> = [\n // GetDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n // Error\n {\n error: new UnknownDAError(\"GetDeviceMetadata failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Unsupported firmware\", () =>\n new Promise<void>((resolve, reject) => {\n const metadataWithUpdate = {\n firmwareUpdateContext: {\n availableUpdate: \"mockUpdate\",\n },\n } as unknown as GetDeviceMetadataDAOutput;\n setupGetDeviceMetadataMock(metadataWithUpdate);\n const deviceAction = new OpenAppWithDependenciesDeviceAction({\n input: {\n application: { name: \"Ethereum\" },\n dependencies: [{ name: \"Uniswap\" }, { name: \"1inch\" }],\n requireLatestFirmware: true,\n },\n });\n\n const expectedStates: Array<OpenAppWithDependenciesDAState> = [\n // GetDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n // Error\n {\n error: new UnsupportedFirmwareDAError(\n \"Firmware is not the latest version\",\n ),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Install apps error\", () =>\n new Promise<void>((resolve, reject) => {\n const metadataWithUpdate = {\n firmwareUpdateContext: {\n availableUpdate: \"mockUpdate\",\n },\n } as unknown as GetDeviceMetadataDAOutput;\n setupGetDeviceMetadataMock(metadataWithUpdate);\n setupInstallOrUpdateAppsMock(\n INSTALL_RESULT,\n INSTALL_INTERMEDIATE_VALUE,\n true,\n );\n const deviceAction = new OpenAppWithDependenciesDeviceAction({\n input: {\n application: { name: \"Ethereum\" },\n dependencies: [{ name: \"Uniswap\" }, { name: \"1inch\" }],\n requireLatestFirmware: false,\n },\n });\n\n const expectedStates: Array<OpenAppWithDependenciesDAState> = [\n // GetDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallOrUpdateApps\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n ...INSTALL_INTERMEDIATE_VALUE,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n // Error\n {\n error: new UnknownDAError(\"InstallOrUpdateApps failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n\n it(\"Open app error\", () =>\n new Promise<void>((resolve, reject) => {\n setupGetDeviceMetadataMock(DEVICE_METADATA);\n setupInstallOrUpdateAppsMock(\n INSTALL_RESULT,\n INSTALL_INTERMEDIATE_VALUE,\n );\n setupOpenAppMock(true);\n const deviceAction = new OpenAppWithDependenciesDeviceAction({\n input: {\n application: { name: \"Ethereum\" },\n dependencies: [{ name: \"Uniswap\" }, { name: \"1inch\" }],\n requireLatestFirmware: false,\n },\n });\n\n const expectedStates: Array<OpenAppWithDependenciesDAState> = [\n // GetDeviceMetadata\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n // InstallOrUpdateApps\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n installPlan: null,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n ...INSTALL_INTERMEDIATE_VALUE,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n // OpenApp\n {\n intermediateValue: {\n ...INSTALL_INTERMEDIATE_VALUE,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n {\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n installPlan: null,\n deviceId: undefined,\n step: openAppWithDependenciesDAStateStep.GET_DEVICE_METADATA,\n },\n status: DeviceActionStatus.Pending,\n },\n // Error\n {\n error: new UnknownDAError(\"OpenApp failed\"),\n status: DeviceActionStatus.Error,\n },\n ];\n\n testDeviceActionStates(deviceAction, expectedStates, apiMock, {\n onDone: resolve,\n onError: reject,\n });\n }));\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_makeInternalApi", "import_setupTestMachine", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_Errors", "import_types", "import_OpenAppWithDependenciesDeviceAction", "apiMock", "DEVICE_METADATA", "INSTALL_INTERMEDIATE_VALUE", "INSTALL_RESULT", "resolve", "reject", "deviceAction", "expectedStates"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var f=require("purify-ts"),y=require("xstate"),k=require("../../../apdu/utils/ApduBuilder"),u=require("../../../command/model/CommandResult"),i=require("../../../device-action/__test-utils__/makeInternalApi"),S=require("../../../device-action/__test-utils__/testDeviceActionStates"),n=require("../../../device-action/model/DeviceActionState"),e=require("../../../device-action/model/UserInteractionRequired"),I=require("../../../device-action/os/Errors"),E=require("../../../device-action/os/OpenAppDeviceAction/OpenAppDeviceAction"),C=require("../../../device-action/os/OpenAppDeviceAction/types"),v=require("../../../../../src"),c=require("./SendCommandInAppDeviceAction"),m=require("./SendCommandInAppDeviceActionTypes");vi.mock("@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction",async r=>({...await r(),OpenAppDeviceAction:vi.fn(()=>({makeStateMachine:vi.fn()}))}));const l=r=>{E.OpenAppDeviceAction.mockImplementation(()=>({makeStateMachine:vi.fn().mockImplementation(()=>(0,y.createMachine)({initial:"pending",states:{pending:{entry:(0,y.assign)({intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:C.openAppDAStateStep.GET_DEVICE_STATUS}}),after:{0:"done"}},done:{type:"final"}},output:()=>r?(0,f.Left)(r):(0,f.Right)(void 0)}))}))};describe("SendCommandInAppDeviceAction",()=>{const r=vi.fn(),p=()=>({sendCommand:r}),{sendCommand:M}=(0,i.makeDeviceActionInternalApiMock)(),s={paramString:"aParameter",paramNumber:1234},D={aNumber:5678,aString:"mockedResponseString"};beforeEach(()=>{vi.resetAllMocks()}),describe("without mocking extractDependencies",()=>{it("should call sendCommand on internalApi with the correct parameters",async()=>{l(),M.mockResolvedValue((0,u.CommandResultFactory)({data:void 0}));const o=new c.SendCommandInAppDeviceAction({input:{command:new d(s),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}});await new Promise((a,t)=>{o._execute((0,i.makeDeviceActionInternalApiMock)()).observable.subscribe({error:()=>t(),complete:()=>a(),next:()=>{}})}),expect(M).toHaveBeenCalledWith(new d(s))})}),describe("error cases",()=>{it("should error and output the error if the open app fails",()=>new Promise((o,a)=>{l(new I.UnknownDAError("Mocked error"));const t=[{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:m.sendCommandInAppDAStateStep.OPEN_APP}},{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:C.openAppDAStateStep.GET_DEVICE_STATUS}},{status:n.DeviceActionStatus.Error,error:new I.UnknownDAError("Mocked error")}];(0,S.testDeviceActionStates)(new c.SendCommandInAppDeviceAction({input:{command:new d(s),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}}),t,(0,i.makeDeviceActionInternalApiMock)(),{onDone:o,onError:a})})),it("should error and output an error if the send command fails",()=>new Promise((o,a)=>{l(),r.mockResolvedValue((0,u.CommandResultFactory)({error:new v.UnknownDeviceExchangeError("Mocked error")}));const t=new c.SendCommandInAppDeviceAction({input:{command:new d(s),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}});vi.spyOn(t,"extractDependencies").mockImplementation(p);const A=[{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:m.sendCommandInAppDAStateStep.OPEN_APP}},{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:C.openAppDAStateStep.GET_DEVICE_STATUS}},{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,step:m.sendCommandInAppDAStateStep.SEND_COMMAND}},{status:n.DeviceActionStatus.Error,error:new v.UnknownDeviceExchangeError("Mocked error")}];(0,S.testDeviceActionStates)(t,A,(0,i.makeDeviceActionInternalApiMock)(),{onDone:o,onError:a})}))}),describe("success cases",()=>{it("should succeed and output the command result if the send command succeeds",()=>new Promise((o,a)=>{l(),r.mockResolvedValue((0,u.CommandResultFactory)({data:D}));const t=new c.SendCommandInAppDeviceAction({input:{command:new d(s),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!1}});vi.spyOn(t,"extractDependencies").mockImplementation(p);const A=[{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.None,step:m.sendCommandInAppDAStateStep.OPEN_APP}},{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.ConfirmOpenApp,step:C.openAppDAStateStep.GET_DEVICE_STATUS}},{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,step:m.sendCommandInAppDAStateStep.SEND_COMMAND}},{status:n.DeviceActionStatus.Completed,output:D}];(0,S.testDeviceActionStates)(t,A,(0,i.makeDeviceActionInternalApiMock)(),{onDone:o,onError:a})})),it("should succeed while skipping OpenApp",()=>new Promise((o,a)=>{l(),r.mockResolvedValue((0,u.CommandResultFactory)({data:D}));const t=new c.SendCommandInAppDeviceAction({input:{command:new d(s),appName:"MyApp",requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,skipOpenApp:!0}});vi.spyOn(t,"extractDependencies").mockImplementation(p);const A=[{status:n.DeviceActionStatus.Pending,intermediateValue:{requiredUserInteraction:e.UserInteractionRequired.VerifyAddress,step:m.sendCommandInAppDAStateStep.SEND_COMMAND}},{status:n.DeviceActionStatus.Completed,output:D}];(0,S.testDeviceActionStates)(t,A,(0,i.makeDeviceActionInternalApiMock)(),{onDone:o,onError:a})}))})});class d{name="testCommand";params;constructor(p){this.params=p}getApdu(){return new k.ApduBuilder({cla:0,ins:1,p1:2,p2:3}).add32BitUIntToData(this.params.paramNumber).addAsciiStringToData(this.params.paramString).build()}parseResponse(){return(0,u.CommandResultFactory)({data:{aNumber:1,aString:"aString"}})}}
2
- //# sourceMappingURL=SendCommandInAppDeviceAction.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../../src/api/device-action/os/SendCommandInAppDeviceAction/SendCommandInAppDeviceAction.test.ts"],
4
- "sourcesContent": ["/* eslint @typescript-eslint/consistent-type-imports:0 */\n\nimport { Left, Right } from \"purify-ts\";\nimport { type Mock } from \"vitest\";\nimport { assign, createMachine } from \"xstate\";\n\nimport { type Apdu } from \"@api/apdu/model/Apdu\";\nimport { ApduBuilder } from \"@api/apdu/utils/ApduBuilder\";\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport {\n type DeviceActionState,\n DeviceActionStatus,\n} from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport { UnknownDAError } from \"@api/device-action/os/Errors\";\nimport { OpenAppDeviceAction } from \"@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction\";\nimport { openAppDAStateStep } from \"@api/device-action/os/OpenAppDeviceAction/types\";\nimport { type Command } from \"@api/types\";\nimport { UnknownDeviceExchangeError } from \"@root/src\";\n\nimport { SendCommandInAppDeviceAction } from \"./SendCommandInAppDeviceAction\";\nimport {\n type SendCommandInAppDAError,\n type SendCommandInAppDAIntermediateValue,\n type SendCommandInAppDAOutput,\n sendCommandInAppDAStateStep,\n} from \"./SendCommandInAppDeviceActionTypes\";\n\nvi.mock(\n \"@api/device-action/os/OpenAppDeviceAction/OpenAppDeviceAction\",\n async (importOriginal) => {\n const original =\n await importOriginal<\n typeof import(\"../OpenAppDeviceAction/OpenAppDeviceAction\")\n >();\n\n return {\n ...original,\n OpenAppDeviceAction: vi.fn(() => ({\n makeStateMachine: vi.fn(),\n })),\n };\n },\n);\n\nconst setupOpenAppDAMock = (error?: unknown) => {\n (OpenAppDeviceAction as Mock).mockImplementation(() => ({\n makeStateMachine: vi.fn().mockImplementation(() =>\n createMachine({\n initial: \"pending\",\n states: {\n pending: {\n entry: assign({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n }),\n after: {\n 0: \"done\",\n },\n },\n done: {\n type: \"final\",\n },\n },\n output: () => (error ? Left(error) : Right(undefined)),\n }),\n ),\n }));\n};\n\ndescribe(\"SendCommandInAppDeviceAction\", () => {\n const sendMyCommand = vi.fn();\n\n const extractDependenciesMock = () => ({\n sendCommand: sendMyCommand,\n });\n\n const { sendCommand: apiSendCommandMock } = makeDeviceActionInternalApiMock();\n\n const commandParams = {\n paramString: \"aParameter\",\n paramNumber: 1234,\n };\n const mockedCommandResponse = {\n aNumber: 5678,\n aString: \"mockedResponseString\",\n };\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n describe(\"without mocking extractDependencies\", () => {\n it(\"should call sendCommand on internalApi with the correct parameters\", async () => {\n setupOpenAppDAMock();\n apiSendCommandMock.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n\n const deviceAction = new SendCommandInAppDeviceAction({\n input: {\n command: new TestCommand(commandParams),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n });\n await new Promise<void>((resolve, reject) => {\n deviceAction\n ._execute(makeDeviceActionInternalApiMock())\n .observable.subscribe({\n error: () => reject(),\n complete: () => resolve(),\n next: () => {},\n });\n });\n\n expect(apiSendCommandMock).toHaveBeenCalledWith(\n new TestCommand(commandParams),\n );\n });\n });\n\n describe(\"error cases\", () => {\n it(\"should error and output the error if the open app fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock(new UnknownDAError(\"Mocked error\"));\n\n const expectedStates: MyCommandSendCommandDAState[] = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: sendCommandInAppDAStateStep.OPEN_APP,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n new SendCommandInAppDeviceAction({\n input: {\n command: new TestCommand(commandParams),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n }),\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should error and output an error if the send command fails\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n sendMyCommand.mockResolvedValue(\n CommandResultFactory({\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n }),\n );\n\n const deviceAction = new SendCommandInAppDeviceAction({\n input: {\n command: new TestCommand(commandParams),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockImplementation(\n extractDependenciesMock,\n );\n\n const expectedStates: MyCommandSendCommandDAState[] = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: sendCommandInAppDAStateStep.OPEN_APP,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n step: sendCommandInAppDAStateStep.SEND_COMMAND,\n },\n },\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDeviceExchangeError(\"Mocked error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n\n describe(\"success cases\", () => {\n it(\"should succeed and output the command result if the send command succeeds\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n sendMyCommand.mockResolvedValue(\n CommandResultFactory({ data: mockedCommandResponse }),\n );\n\n const deviceAction = new SendCommandInAppDeviceAction({\n input: {\n command: new TestCommand(commandParams),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: false,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockImplementation(\n extractDependenciesMock,\n );\n\n const expectedStates: MyCommandSendCommandDAState[] = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: sendCommandInAppDAStateStep.OPEN_APP,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.ConfirmOpenApp,\n step: openAppDAStateStep.GET_DEVICE_STATUS,\n },\n },\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n step: sendCommandInAppDAStateStep.SEND_COMMAND,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: mockedCommandResponse,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should succeed while skipping OpenApp\", () =>\n new Promise<void>((resolve, reject) => {\n setupOpenAppDAMock();\n\n sendMyCommand.mockResolvedValue(\n CommandResultFactory({ data: mockedCommandResponse }),\n );\n\n const deviceAction = new SendCommandInAppDeviceAction({\n input: {\n command: new TestCommand(commandParams),\n appName: \"MyApp\",\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n skipOpenApp: true,\n },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockImplementation(\n extractDependenciesMock,\n );\n\n const expectedStates: MyCommandSendCommandDAState[] = [\n {\n status: DeviceActionStatus.Pending,\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.VerifyAddress,\n step: sendCommandInAppDAStateStep.SEND_COMMAND,\n },\n },\n {\n status: DeviceActionStatus.Completed,\n output: mockedCommandResponse,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n });\n});\n\ntype MyCommandResponse = {\n aNumber: number;\n aString: string;\n};\n\ntype MyCommandParams = {\n paramString: string;\n paramNumber: number;\n};\n\nclass TestCommand implements Command<MyCommandResponse, MyCommandParams> {\n readonly name = \"testCommand\";\n\n params: MyCommandParams;\n constructor(params: MyCommandParams) {\n this.params = params;\n }\n getApdu(): Apdu {\n return new ApduBuilder({ cla: 0x00, ins: 0x01, p1: 0x02, p2: 0x03 })\n .add32BitUIntToData(this.params.paramNumber)\n .addAsciiStringToData(this.params.paramString)\n .build();\n }\n parseResponse() {\n return CommandResultFactory({ data: { aNumber: 1, aString: \"aString\" } });\n }\n}\n\ntype MyCommandSendCommandDAState = DeviceActionState<\n SendCommandInAppDAOutput<MyCommandResponse>,\n SendCommandInAppDAError<UnknownDAError>,\n SendCommandInAppDAIntermediateValue<\n UserInteractionRequired.None | UserInteractionRequired.VerifyAddress\n >\n>;\n"],
5
- "mappings": "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",
6
- "names": ["import_purify_ts", "import_xstate", "import_ApduBuilder", "import_CommandResult", "import_makeInternalApi", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_Errors", "import_OpenAppDeviceAction", "import_types", "import_src", "import_SendCommandInAppDeviceAction", "import_SendCommandInAppDeviceActionTypes", "importOriginal", "setupOpenAppDAMock", "error", "sendMyCommand", "extractDependenciesMock", "apiSendCommandMock", "commandParams", "mockedCommandResponse", "deviceAction", "TestCommand", "resolve", "reject", "expectedStates", "params"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var v=require("rxjs"),l=require("../../../command/model/CommandResult"),c=require("../../../command/utils/GlobalCommandError"),a=require("../../../device-action/__test-utils__/makeInternalApi"),d=require("../../../device-action/__test-utils__/testDeviceActionStates"),i=require("../../../device-action/model/DeviceActionState"),k=require("../../../device-action/model/UserInteractionRequired"),A=require("../../../device-action/os/Errors"),V=require("./types"),p=require("./WaitForAppAndVersionDeviceAction");const D=(r,m)=>(0,l.CommandResultFactory)({data:{name:r,version:m}}),w=()=>(0,l.CommandResultFactory)({error:new c.GlobalCommandError({...c.GLOBAL_ERRORS[5515],errorCode:"5515"})}),h=()=>(0,l.CommandResultFactory)({error:new c.GlobalCommandError({...c.GLOBAL_ERRORS["6e00"],errorCode:"6e00"})}),s=()=>({intermediateValue:{requiredUserInteraction:k.UserInteractionRequired.None,step:V.waitForAppAndVersionDAStateStep.GET_APP_AND_VERSION},status:i.DeviceActionStatus.Pending}),S=()=>({intermediateValue:{requiredUserInteraction:k.UserInteractionRequired.UnlockDevice,step:V.waitForAppAndVersionDAStateStep.UNLOCK_DEVICE},status:i.DeviceActionStatus.Pending});describe("WaitForAppAndVersionDeviceAction",()=>{const r=vi.fn(),m=vi.fn();function u(){return{getAppAndVersion:r,waitForDeviceUnlock:m}}beforeEach(()=>{vi.resetAllMocks()}),it("should succeed on the first call when the device is already unlocked",()=>new Promise((t,n)=>{r.mockResolvedValue(D("BOLOS","1.0.0"));const e=new p.WaitForAppAndVersionDeviceAction({input:{unlockTimeout:500}});vi.spyOn(e,"extractDependencies").mockReturnValue(u());const o=[s(),{status:i.DeviceActionStatus.Completed,output:{name:"BOLOS",version:"1.0.0"}}];(0,d.testDeviceActionStates)(e,o,(0,a.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})})),it("should wait for the device to be unlocked then succeed",()=>new Promise((t,n)=>{r.mockResolvedValueOnce(w()).mockResolvedValueOnce(D("Bitcoin","2.1.0")),m.mockReturnValue((0,v.of)(void 0));const e=new p.WaitForAppAndVersionDeviceAction({input:{unlockTimeout:500}});vi.spyOn(e,"extractDependencies").mockReturnValue(u());const o=[s(),S(),s(),{status:i.DeviceActionStatus.Completed,output:{name:"Bitcoin",version:"2.1.0"}}];(0,d.testDeviceActionStates)(e,o,(0,a.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})})),it("should consider the device on the dashboard of an old firmware when CLA is not supported",()=>new Promise((t,n)=>{r.mockResolvedValue(h());const e=new p.WaitForAppAndVersionDeviceAction({input:{unlockTimeout:500}});vi.spyOn(e,"extractDependencies").mockReturnValue(u());const o=[s(),{status:i.DeviceActionStatus.Completed,output:{name:"BOLOS",version:"0.0.0"}}];(0,d.testDeviceActionStates)(e,o,(0,a.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})})),it("should end in an error if the device stays locked until the unlock timeout",()=>new Promise((t,n)=>{r.mockResolvedValue(w()),m.mockReturnValue((0,v.throwError)(()=>new A.DeviceLockedError));const e=new p.WaitForAppAndVersionDeviceAction({input:{unlockTimeout:500}});vi.spyOn(e,"extractDependencies").mockReturnValue(u());const o=[s(),S(),{status:i.DeviceActionStatus.Error,error:new A.DeviceLockedError}];(0,d.testDeviceActionStates)(e,o,(0,a.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})})),it("should end in an error if the GetAppAndVersion command fails with a non-locked error",()=>new Promise((t,n)=>{const e=new c.GlobalCommandError({...c.GLOBAL_ERRORS[5501],errorCode:"5501"});r.mockResolvedValue((0,l.CommandResultFactory)({error:e}));const o=new p.WaitForAppAndVersionDeviceAction({input:{unlockTimeout:500}});vi.spyOn(o,"extractDependencies").mockReturnValue(u());const f=[s(),{status:i.DeviceActionStatus.Error,error:e}];(0,d.testDeviceActionStates)(o,f,(0,a.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})})),it("should end in an error if the getAppAndVersion actor throws an error",()=>new Promise((t,n)=>{r.mockImplementation(()=>{throw new A.UnknownDAError("error")});const e=new p.WaitForAppAndVersionDeviceAction({input:{unlockTimeout:500}});vi.spyOn(e,"extractDependencies").mockReturnValue(u());const o=[s(),{status:i.DeviceActionStatus.Error,error:new A.UnknownDAError("error")}];(0,d.testDeviceActionStates)(e,o,(0,a.makeDeviceActionInternalApiMock)(),{onDone:t,onError:n})}))});
2
- //# sourceMappingURL=WaitForAppAndVersionDeviceAction.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../../src/api/device-action/os/WaitForAppAndVersion/WaitForAppAndVersionDeviceAction.test.ts"],
4
- "sourcesContent": ["import { of, throwError } from \"rxjs\";\n\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport {\n GLOBAL_ERRORS,\n GlobalCommandError,\n} from \"@api/command/utils/GlobalCommandError\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { testDeviceActionStates } from \"@api/device-action/__test-utils__/testDeviceActionStates\";\nimport { DeviceActionStatus } from \"@api/device-action/model/DeviceActionState\";\nimport { UserInteractionRequired } from \"@api/device-action/model/UserInteractionRequired\";\nimport {\n DeviceLockedError,\n UnknownDAError,\n} from \"@api/device-action/os/Errors\";\n\nimport {\n type WaitForAppAndVersionDAState,\n waitForAppAndVersionDAStateStep,\n} from \"./types\";\nimport { WaitForAppAndVersionDeviceAction } from \"./WaitForAppAndVersionDeviceAction\";\n\nconst appAndVersionResult = (name: string, version: string) =>\n CommandResultFactory({\n data: {\n name,\n version,\n },\n });\n\nconst lockedErrorResult = () =>\n CommandResultFactory({\n error: new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5515\"],\n errorCode: \"5515\",\n }),\n });\n\nconst claNotSupportedErrorResult = () =>\n CommandResultFactory({\n error: new GlobalCommandError({\n ...GLOBAL_ERRORS[\"6e00\"],\n errorCode: \"6e00\",\n }),\n });\n\nconst getAppAndVersionPendingState = (): WaitForAppAndVersionDAState => ({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.None,\n step: waitForAppAndVersionDAStateStep.GET_APP_AND_VERSION,\n },\n status: DeviceActionStatus.Pending,\n});\n\nconst unlockRequestedPendingState = (): WaitForAppAndVersionDAState => ({\n intermediateValue: {\n requiredUserInteraction: UserInteractionRequired.UnlockDevice,\n step: waitForAppAndVersionDAStateStep.UNLOCK_DEVICE,\n },\n status: DeviceActionStatus.Pending,\n});\n\ndescribe(\"WaitForAppAndVersionDeviceAction\", () => {\n const getAppAndVersionMock = vi.fn();\n const waitForDeviceUnlockMock = vi.fn();\n\n function extractDependenciesMock() {\n return {\n getAppAndVersion: getAppAndVersionMock,\n waitForDeviceUnlock: waitForDeviceUnlockMock,\n };\n }\n\n beforeEach(() => {\n vi.resetAllMocks();\n });\n\n it(\"should succeed on the first call when the device is already unlocked\", () =>\n new Promise<void>((resolve, reject) => {\n getAppAndVersionMock.mockResolvedValue(\n appAndVersionResult(\"BOLOS\", \"1.0.0\"),\n );\n\n const deviceAction = new WaitForAppAndVersionDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<WaitForAppAndVersionDAState> = [\n getAppAndVersionPendingState(),\n {\n status: DeviceActionStatus.Completed,\n output: {\n name: \"BOLOS\",\n version: \"1.0.0\",\n },\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should wait for the device to be unlocked then succeed\", () =>\n new Promise<void>((resolve, reject) => {\n getAppAndVersionMock\n .mockResolvedValueOnce(lockedErrorResult())\n .mockResolvedValueOnce(appAndVersionResult(\"Bitcoin\", \"2.1.0\"));\n\n waitForDeviceUnlockMock.mockReturnValue(of(undefined));\n\n const deviceAction = new WaitForAppAndVersionDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<WaitForAppAndVersionDAState> = [\n getAppAndVersionPendingState(),\n unlockRequestedPendingState(),\n getAppAndVersionPendingState(),\n {\n status: DeviceActionStatus.Completed,\n output: {\n name: \"Bitcoin\",\n version: \"2.1.0\",\n },\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should consider the device on the dashboard of an old firmware when CLA is not supported\", () =>\n new Promise<void>((resolve, reject) => {\n getAppAndVersionMock.mockResolvedValue(claNotSupportedErrorResult());\n\n const deviceAction = new WaitForAppAndVersionDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<WaitForAppAndVersionDAState> = [\n getAppAndVersionPendingState(),\n {\n status: DeviceActionStatus.Completed,\n output: {\n name: \"BOLOS\",\n version: \"0.0.0\",\n },\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if the device stays locked until the unlock timeout\", () =>\n new Promise<void>((resolve, reject) => {\n getAppAndVersionMock.mockResolvedValue(lockedErrorResult());\n\n waitForDeviceUnlockMock.mockReturnValue(\n throwError(() => new DeviceLockedError()),\n );\n\n const deviceAction = new WaitForAppAndVersionDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<WaitForAppAndVersionDAState> = [\n getAppAndVersionPendingState(),\n unlockRequestedPendingState(),\n {\n status: DeviceActionStatus.Error,\n error: new DeviceLockedError(),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if the GetAppAndVersion command fails with a non-locked error\", () =>\n new Promise<void>((resolve, reject) => {\n const error = new GlobalCommandError({\n ...GLOBAL_ERRORS[\"5501\"],\n errorCode: \"5501\",\n });\n\n getAppAndVersionMock.mockResolvedValue(CommandResultFactory({ error }));\n\n const deviceAction = new WaitForAppAndVersionDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<WaitForAppAndVersionDAState> = [\n getAppAndVersionPendingState(),\n {\n status: DeviceActionStatus.Error,\n error,\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n\n it(\"should end in an error if the getAppAndVersion actor throws an error\", () =>\n new Promise<void>((resolve, reject) => {\n getAppAndVersionMock.mockImplementation(() => {\n throw new UnknownDAError(\"error\");\n });\n\n const deviceAction = new WaitForAppAndVersionDeviceAction({\n input: { unlockTimeout: 500 },\n });\n\n vi.spyOn(deviceAction, \"extractDependencies\").mockReturnValue(\n extractDependenciesMock(),\n );\n\n const expectedStates: Array<WaitForAppAndVersionDAState> = [\n getAppAndVersionPendingState(),\n {\n status: DeviceActionStatus.Error,\n error: new UnknownDAError(\"error\"),\n },\n ];\n\n testDeviceActionStates(\n deviceAction,\n expectedStates,\n makeDeviceActionInternalApiMock(),\n {\n onDone: resolve,\n onError: reject,\n },\n );\n }));\n});\n"],
5
- "mappings": "aAAA,IAAAA,EAA+B,gBAE/BC,EAAqC,4CACrCC,EAGO,iDACPC,EAAgD,6DAChDC,EAAuC,oEACvCC,EAAmC,sDACnCC,EAAwC,4DACxCC,EAGO,wCAEPC,EAGO,mBACPC,EAAiD,8CAEjD,MAAMC,EAAsB,CAACC,EAAcC,OACzC,wBAAqB,CACnB,KAAM,CACJ,KAAAD,EACA,QAAAC,CACF,CACF,CAAC,EAEGC,EAAoB,OACxB,wBAAqB,CACnB,MAAO,IAAI,qBAAmB,CAC5B,GAAG,gBAAc,IAAM,EACvB,UAAW,MACb,CAAC,CACH,CAAC,EAEGC,EAA6B,OACjC,wBAAqB,CACnB,MAAO,IAAI,qBAAmB,CAC5B,GAAG,gBAAc,MAAM,EACvB,UAAW,MACb,CAAC,CACH,CAAC,EAEGC,EAA+B,KAAoC,CACvE,kBAAmB,CACjB,wBAAyB,0BAAwB,KACjD,KAAM,kCAAgC,mBACxC,EACA,OAAQ,qBAAmB,OAC7B,GAEMC,EAA8B,KAAoC,CACtE,kBAAmB,CACjB,wBAAyB,0BAAwB,aACjD,KAAM,kCAAgC,aACxC,EACA,OAAQ,qBAAmB,OAC7B,GAEA,SAAS,mCAAoC,IAAM,CACjD,MAAMC,EAAuB,GAAG,GAAG,EAC7BC,EAA0B,GAAG,GAAG,EAEtC,SAASC,GAA0B,CACjC,MAAO,CACL,iBAAkBF,EAClB,oBAAqBC,CACvB,CACF,CAEA,WAAW,IAAM,CACf,GAAG,cAAc,CACnB,CAAC,EAED,GAAG,uEAAwE,IACzE,IAAI,QAAc,CAACE,EAASC,IAAW,CACrCJ,EAAqB,kBACnBP,EAAoB,QAAS,OAAO,CACtC,EAEA,MAAMY,EAAe,IAAI,mCAAiC,CACxD,MAAO,CAAE,cAAe,GAAI,CAC9B,CAAC,EAED,GAAG,MAAMA,EAAc,qBAAqB,EAAE,gBAC5CH,EAAwB,CAC1B,EAEA,MAAMI,EAAqD,CACzDR,EAA6B,EAC7B,CACE,OAAQ,qBAAmB,UAC3B,OAAQ,CACN,KAAM,QACN,QAAS,OACX,CACF,CACF,KAEA,0BACEO,EACAC,KACA,mCAAgC,EAChC,CACE,OAAQH,EACR,QAASC,CACX,CACF,CACF,CAAC,CAAC,EAEJ,GAAG,yDAA0D,IAC3D,IAAI,QAAc,CAACD,EAASC,IAAW,CACrCJ,EACG,sBAAsBJ,EAAkB,CAAC,EACzC,sBAAsBH,EAAoB,UAAW,OAAO,CAAC,EAEhEQ,EAAwB,mBAAgB,MAAG,MAAS,CAAC,EAErD,MAAMI,EAAe,IAAI,mCAAiC,CACxD,MAAO,CAAE,cAAe,GAAI,CAC9B,CAAC,EAED,GAAG,MAAMA,EAAc,qBAAqB,EAAE,gBAC5CH,EAAwB,CAC1B,EAEA,MAAMI,EAAqD,CACzDR,EAA6B,EAC7BC,EAA4B,EAC5BD,EAA6B,EAC7B,CACE,OAAQ,qBAAmB,UAC3B,OAAQ,CACN,KAAM,UACN,QAAS,OACX,CACF,CACF,KAEA,0BACEO,EACAC,KACA,mCAAgC,EAChC,CACE,OAAQH,EACR,QAASC,CACX,CACF,CACF,CAAC,CAAC,EAEJ,GAAG,2FAA4F,IAC7F,IAAI,QAAc,CAACD,EAASC,IAAW,CACrCJ,EAAqB,kBAAkBH,EAA2B,CAAC,EAEnE,MAAMQ,EAAe,IAAI,mCAAiC,CACxD,MAAO,CAAE,cAAe,GAAI,CAC9B,CAAC,EAED,GAAG,MAAMA,EAAc,qBAAqB,EAAE,gBAC5CH,EAAwB,CAC1B,EAEA,MAAMI,EAAqD,CACzDR,EAA6B,EAC7B,CACE,OAAQ,qBAAmB,UAC3B,OAAQ,CACN,KAAM,QACN,QAAS,OACX,CACF,CACF,KAEA,0BACEO,EACAC,KACA,mCAAgC,EAChC,CACE,OAAQH,EACR,QAASC,CACX,CACF,CACF,CAAC,CAAC,EAEJ,GAAG,6EAA8E,IAC/E,IAAI,QAAc,CAACD,EAASC,IAAW,CACrCJ,EAAqB,kBAAkBJ,EAAkB,CAAC,EAE1DK,EAAwB,mBACtB,cAAW,IAAM,IAAI,mBAAmB,CAC1C,EAEA,MAAMI,EAAe,IAAI,mCAAiC,CACxD,MAAO,CAAE,cAAe,GAAI,CAC9B,CAAC,EAED,GAAG,MAAMA,EAAc,qBAAqB,EAAE,gBAC5CH,EAAwB,CAC1B,EAEA,MAAMI,EAAqD,CACzDR,EAA6B,EAC7BC,EAA4B,EAC5B,CACE,OAAQ,qBAAmB,MAC3B,MAAO,IAAI,mBACb,CACF,KAEA,0BACEM,EACAC,KACA,mCAAgC,EAChC,CACE,OAAQH,EACR,QAASC,CACX,CACF,CACF,CAAC,CAAC,EAEJ,GAAG,uFAAwF,IACzF,IAAI,QAAc,CAACD,EAASC,IAAW,CACrC,MAAMG,EAAQ,IAAI,qBAAmB,CACnC,GAAG,gBAAc,IAAM,EACvB,UAAW,MACb,CAAC,EAEDP,EAAqB,qBAAkB,wBAAqB,CAAE,MAAAO,CAAM,CAAC,CAAC,EAEtE,MAAMF,EAAe,IAAI,mCAAiC,CACxD,MAAO,CAAE,cAAe,GAAI,CAC9B,CAAC,EAED,GAAG,MAAMA,EAAc,qBAAqB,EAAE,gBAC5CH,EAAwB,CAC1B,EAEA,MAAMI,EAAqD,CACzDR,EAA6B,EAC7B,CACE,OAAQ,qBAAmB,MAC3B,MAAAS,CACF,CACF,KAEA,0BACEF,EACAC,KACA,mCAAgC,EAChC,CACE,OAAQH,EACR,QAASC,CACX,CACF,CACF,CAAC,CAAC,EAEJ,GAAG,uEAAwE,IACzE,IAAI,QAAc,CAACD,EAASC,IAAW,CACrCJ,EAAqB,mBAAmB,IAAM,CAC5C,MAAM,IAAI,iBAAe,OAAO,CAClC,CAAC,EAED,MAAMK,EAAe,IAAI,mCAAiC,CACxD,MAAO,CAAE,cAAe,GAAI,CAC9B,CAAC,EAED,GAAG,MAAMA,EAAc,qBAAqB,EAAE,gBAC5CH,EAAwB,CAC1B,EAEA,MAAMI,EAAqD,CACzDR,EAA6B,EAC7B,CACE,OAAQ,qBAAmB,MAC3B,MAAO,IAAI,iBAAe,OAAO,CACnC,CACF,KAEA,0BACEO,EACAC,KACA,mCAAgC,EAChC,CACE,OAAQH,EACR,QAASC,CACX,CACF,CACF,CAAC,CAAC,CACN,CAAC",
6
- "names": ["import_rxjs", "import_CommandResult", "import_GlobalCommandError", "import_makeInternalApi", "import_testDeviceActionStates", "import_DeviceActionState", "import_UserInteractionRequired", "import_Errors", "import_types", "import_WaitForAppAndVersionDeviceAction", "appAndVersionResult", "name", "version", "lockedErrorResult", "claNotSupportedErrorResult", "getAppAndVersionPendingState", "unlockRequestedPendingState", "getAppAndVersionMock", "waitForDeviceUnlockMock", "extractDependenciesMock", "resolve", "reject", "deviceAction", "expectedStates", "error"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var o=require("../../device/DeviceModel"),a=require("../../device/DeviceStatus"),r=require("../../device-action/__test-utils__/makeInternalApi"),s=require("../../device-action/os/Errors"),i=require("../../device-session/DeviceSessionState"),t=require("./BuildAppsInstallPlanTask");describe("BuildAppsInstallPlanTask",()=>{const e=(0,r.makeDeviceActionInternalApiMock)();beforeEach(()=>{vi.clearAllMocks(),e.getDeviceModel.mockReturnValue({id:o.DeviceModelId.NANO_X})}),it("Success with no changes needed",()=>{e.getDeviceSessionState.mockReturnValueOnce({sessionStateType:i.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:a.DeviceStatus.CONNECTED,installedApps:[{versionName:"Ethereum",version:"1.5.0"},{versionName:"Bitcoin",version:"1.3.0"}],catalog:{applications:[],languagePackages:[]}});const n=new t.BuildAppsInstallPlanTask(e,{applications:[{name:"Ethereum"},{name:"Bitcoin"}],allowMissingApplication:!1}).run();expect(n).toStrictEqual({installPlan:[],alreadyInstalled:["Ethereum","Bitcoin"],missingApplications:[]})}),it("Success with no constraints",()=>{e.getDeviceSessionState.mockReturnValueOnce({sessionStateType:i.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:a.DeviceStatus.CONNECTED,installedApps:[{versionName:"Ethereum",version:"1.5.0"},{versionName:"Bitcoin",version:"1.3.0"}],catalog:{applications:[{versionName:"Ethereum",version:"1.6.0"},{versionName:"Bitcoin",version:"1.3.0"},{versionName:"Solana",version:"1.2.0"},{versionName:"MyShitCoin",version:"0.0.1"},{versionName:"Cardano",version:"1.1.0"}],languagePackages:[]}});const n=new t.BuildAppsInstallPlanTask(e,{applications:[{name:"Ethereum"},{name:"Solana"},{name:"Cardano"}],allowMissingApplication:!1}).run();expect(n).toStrictEqual({installPlan:[{versionName:"Solana",version:"1.2.0"},{versionName:"Cardano",version:"1.1.0"}],alreadyInstalled:["Ethereum"],missingApplications:[]})}),it("Success with applicable constraints",()=>{e.getDeviceSessionState.mockReturnValueOnce({sessionStateType:i.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:a.DeviceStatus.CONNECTED,installedApps:[{versionName:"Ethereum",version:"1.5.0"},{versionName:"Bitcoin",version:"1.2.0"},{versionName:"Solana",version:"1.1.0"},{versionName:"Cardano",version:"1.1.0"}],catalog:{applications:[{versionName:"Ethereum",version:"1.6.0"},{versionName:"Bitcoin",version:"1.3.0"},{versionName:"Solana",version:"1.2.0"},{versionName:"MyShitCoin",version:"0.0.1"},{versionName:"Cardano",version:"1.2.0"}],languagePackages:[]}});const n=new t.BuildAppsInstallPlanTask(e,{applications:[{name:"Ethereum",constraints:[{minVersion:"1.6.0",applicableModels:[o.DeviceModelId.NANO_X]}]},{name:"Bitcoin",constraints:[{minVersion:"1.2.1",exemptModels:[o.DeviceModelId.NANO_S]}]},{name:"Solana",constraints:[{minVersion:"1.2.0"}]}],allowMissingApplication:!1}).run();expect(n).toStrictEqual({installPlan:[{versionName:"Ethereum",version:"1.6.0"},{versionName:"Bitcoin",version:"1.3.0"},{versionName:"Solana",version:"1.2.0"}],alreadyInstalled:[],missingApplications:[]})}),it("Success with non-applicable constraints",()=>{e.getDeviceSessionState.mockReturnValueOnce({sessionStateType:i.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:a.DeviceStatus.CONNECTED,installedApps:[{versionName:"Ethereum",version:"1.5.0"},{versionName:"Bitcoin",version:"1.2.0"},{versionName:"Solana",version:"1.1.0"},{versionName:"Cardano",version:"1.1.0"}],catalog:{applications:[{versionName:"Ethereum",version:"1.6.0"},{versionName:"Bitcoin",version:"1.3.0"},{versionName:"Solana",version:"1.2.0"},{versionName:"MyShitCoin",version:"0.0.1"},{versionName:"Cardano",version:"1.2.0"}],languagePackages:[]}});const n=new t.BuildAppsInstallPlanTask(e,{applications:[{name:"Ethereum",constraints:[{minVersion:"1.6.0",exemptModels:[o.DeviceModelId.NANO_X]}]},{name:"Bitcoin",constraints:[{minVersion:"1.2.1",applicableModels:[o.DeviceModelId.NANO_S]}]},{name:"Cardano",constraints:[{minVersion:"1.1.0"}]}],allowMissingApplication:!1}).run();expect(n).toStrictEqual({installPlan:[],alreadyInstalled:["Ethereum","Bitcoin","Cardano"],missingApplications:[]})}),it("Success with applicable constraints latest version",()=>{e.getDeviceSessionState.mockReturnValueOnce({sessionStateType:i.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:a.DeviceStatus.CONNECTED,installedApps:[{versionName:"Ethereum",version:"1.5.0"},{versionName:"Bitcoin",version:"1.3.0"},{versionName:"Solana",version:"1.1.0"},{versionName:"MyShitCoin",version:"0.0.1"}],catalog:{applications:[{versionName:"Ethereum",version:"1.6.0"},{versionName:"Bitcoin",version:"1.3.0"},{versionName:"Solana",version:"1.2.0"},{versionName:"Cardano",version:"1.2.0"}],languagePackages:[]}});const n=new t.BuildAppsInstallPlanTask(e,{applications:[{name:"Ethereum",constraints:[{minVersion:"latest"}]},{name:"Bitcoin",constraints:[{minVersion:"latest"}]},{name:"MyShitCoin",constraints:[{minVersion:"latest"}]}],allowMissingApplication:!1}).run();expect(n).toStrictEqual({installPlan:[{versionName:"Ethereum",version:"1.6.0"}],alreadyInstalled:["Bitcoin","MyShitCoin"],missingApplications:[]})}),it("Success with dependencies",()=>{e.getDeviceSessionState.mockReturnValueOnce({sessionStateType:i.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:a.DeviceStatus.CONNECTED,installedApps:[{versionName:"AlreadyInstalledDep",version:"1.2.0"}],catalog:{applications:[{versionName:"Ethereum",version:"1.6.0",parentName:void 0},{versionName:"Solana",version:"1.2.0",parentName:void 0},{versionName:"MyEthShitCoin",version:"0.0.1",parentName:"Ethereum"},{versionName:"MySolShitCoin",version:"0.0.1",parentName:"Solana"},{versionName:"MyPumpFunShitCoin",version:"0.0.1",parentName:"Solana"},{versionName:"Cardano",version:"1.2.0",parentName:void 0},{versionName:"AlreadyInstalledDep",version:"1.2.0",parentName:"Cardano"}],languagePackages:[]}});const n=new t.BuildAppsInstallPlanTask(e,{applications:[{name:"MyEthShitCoin"},{name:"MySolShitCoin"},{name:"Solana"},{name:"MyPumpFunShitCoin"},{name:"AlreadyInstalledDep"}],allowMissingApplication:!1}).run();expect(n).toStrictEqual({installPlan:[{versionName:"Ethereum",version:"1.6.0",parentName:void 0},{versionName:"Solana",version:"1.2.0",parentName:void 0},{versionName:"MyEthShitCoin",version:"0.0.1",parentName:"Ethereum"},{versionName:"MySolShitCoin",version:"0.0.1",parentName:"Solana"},{versionName:"MyPumpFunShitCoin",version:"0.0.1",parentName:"Solana"}],alreadyInstalled:["AlreadyInstalledDep"],missingApplications:[]})}),it("Success with allowed missing applications",()=>{e.getDeviceSessionState.mockReturnValueOnce({sessionStateType:i.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:a.DeviceStatus.CONNECTED,installedApps:[{versionName:"Ethereum",version:"1.5.0"},{versionName:"Bitcoin",version:"1.3.0"}],catalog:{applications:[{versionName:"Ethereum",version:"1.6.0"},{versionName:"Bitcoin",version:"1.3.0"},{versionName:"Solana",version:"1.2.0"}],languagePackages:[]}});const n=new t.BuildAppsInstallPlanTask(e,{applications:[{name:"Ethereum"},{name:"Solana"},{name:"Cardano"}],allowMissingApplication:!0}).run();expect(n).toStrictEqual({installPlan:[{versionName:"Solana",version:"1.2.0"}],alreadyInstalled:["Ethereum"],missingApplications:["Cardano"]})}),it("Error when device is in incorrect state",()=>{e.getDeviceSessionState.mockReturnValueOnce({sessionStateType:i.DeviceSessionStateType.Connected,deviceStatus:a.DeviceStatus.CONNECTED});const n=new t.BuildAppsInstallPlanTask(e,{applications:[{name:"Ethereum"}],allowMissingApplication:!1}).run();expect(n).toStrictEqual({error:new s.UnknownDAError("Invalid device state")})}),it("Error when device session was not populated",()=>{e.getDeviceSessionState.mockReturnValueOnce({sessionStateType:i.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:a.DeviceStatus.CONNECTED,installedApps:[]});const n=new t.BuildAppsInstallPlanTask(e,{applications:[{name:"Ethereum"}],allowMissingApplication:!1}).run();expect(n).toStrictEqual({error:new s.UnknownDAError("Device apps metadata not fetched")})}),describe("Error cases for unsupported applications and firmwares",()=>{describe("when firmware is up to date",()=>{it("should throw `UnsupportedApplicationDAError` when application not found in catalog",()=>{e.getDeviceSessionState.mockReturnValueOnce({sessionStateType:i.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:a.DeviceStatus.CONNECTED,firmwareUpdateContext:{currentFirmware:{}},installedApps:[],catalog:{applications:[],languagePackages:[]}});const n=new t.BuildAppsInstallPlanTask(e,{applications:[{name:"Ethereum"}],allowMissingApplication:!1}).run();expect(n).toStrictEqual({error:new s.UnsupportedApplicationDAError("Application Ethereum not supported for this device")})}),it("should throw `UnsupportedApplicationDAError` when application version is not supported",()=>{e.getDeviceSessionState.mockReturnValueOnce({sessionStateType:i.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:a.DeviceStatus.CONNECTED,firmwareUpdateContext:{currentFirmware:{}},installedApps:[],catalog:{applications:[{versionName:"Ethereum",version:"1.5.0"}],languagePackages:[]}});const n=new t.BuildAppsInstallPlanTask(e,{applications:[{name:"Ethereum",constraints:[{minVersion:"1.6.0"}]}],allowMissingApplication:!1}).run();expect(n).toStrictEqual({error:new s.UnsupportedApplicationDAError("Application Ethereum not supported for this device")})})}),describe("when firmware is out of date",()=>{it("should throw `UnsupportedFirmwareDAError` when application not found in catalog",()=>{e.getDeviceSessionState.mockReturnValueOnce({sessionStateType:i.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:a.DeviceStatus.CONNECTED,firmwareUpdateContext:{currentFirmware:{},availableUpdate:{}},installedApps:[],catalog:{applications:[],languagePackages:[]}});const n=new t.BuildAppsInstallPlanTask(e,{applications:[{name:"Ethereum"}],allowMissingApplication:!1}).run();expect(n).toStrictEqual({error:new s.UnsupportedFirmwareDAError("Application Ethereum needs latest firmware")})}),it("should throw `UnsupportedFirmwareDAError` when application version is not supported",()=>{e.getDeviceSessionState.mockReturnValueOnce({sessionStateType:i.DeviceSessionStateType.ReadyWithoutSecureChannel,deviceStatus:a.DeviceStatus.CONNECTED,installedApps:[],firmwareUpdateContext:{currentFirmware:{},availableUpdate:{}},catalog:{applications:[{versionName:"Ethereum",version:"1.5.0"}],languagePackages:[]}});const n=new t.BuildAppsInstallPlanTask(e,{applications:[{name:"Ethereum",constraints:[{minVersion:"1.6.0"}]}],allowMissingApplication:!1}).run();expect(n).toStrictEqual({error:new s.UnsupportedFirmwareDAError("Application Ethereum needs latest firmware")})})})})});
2
- //# sourceMappingURL=BuildAppsInstallPlanTask.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/api/device-action/task/BuildAppsInstallPlanTask.test.ts"],
4
- "sourcesContent": ["import { DeviceModelId } from \"@api/device/DeviceModel\";\nimport { DeviceStatus } from \"@api/device/DeviceStatus\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport {\n UnknownDAError,\n UnsupportedApplicationDAError,\n UnsupportedFirmwareDAError,\n} from \"@api/device-action/os/Errors\";\nimport type { TransportDeviceModel } from \"@api/device-model/model/DeviceModel\";\nimport type {\n DeviceSessionState,\n FirmwareUpdate,\n} from \"@api/device-session/DeviceSessionState\";\nimport { DeviceSessionStateType } from \"@api/device-session/DeviceSessionState\";\nimport type { Application } from \"@internal/manager-api/model/Application\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\n\nimport { BuildAppsInstallPlanTask } from \"./BuildAppsInstallPlanTask\";\n\ndescribe(\"BuildAppsInstallPlanTask\", () => {\n const apiMock = makeDeviceActionInternalApiMock();\n\n beforeEach(() => {\n vi.clearAllMocks();\n apiMock.getDeviceModel.mockReturnValue({\n id: DeviceModelId.NANO_X,\n } as unknown as TransportDeviceModel);\n });\n\n it(\"Success with no changes needed\", () => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [\n { versionName: \"Ethereum\", version: \"1.5.0\" },\n { versionName: \"Bitcoin\", version: \"1.3.0\" },\n ] as unknown as Application[],\n catalog: {\n applications: [] as unknown as Application[],\n languagePackages: [],\n },\n } as unknown as DeviceSessionState);\n\n // WHEN\n const result = new BuildAppsInstallPlanTask(apiMock, {\n applications: [{ name: \"Ethereum\" }, { name: \"Bitcoin\" }],\n allowMissingApplication: false,\n }).run();\n\n // THEN\n expect(result).toStrictEqual({\n installPlan: [],\n alreadyInstalled: [\"Ethereum\", \"Bitcoin\"],\n missingApplications: [],\n });\n });\n\n it(\"Success with no constraints\", () => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [\n { versionName: \"Ethereum\", version: \"1.5.0\" },\n { versionName: \"Bitcoin\", version: \"1.3.0\" },\n ] as unknown as Application[],\n catalog: {\n applications: [\n { versionName: \"Ethereum\", version: \"1.6.0\" },\n { versionName: \"Bitcoin\", version: \"1.3.0\" },\n { versionName: \"Solana\", version: \"1.2.0\" },\n { versionName: \"MyShitCoin\", version: \"0.0.1\" },\n { versionName: \"Cardano\", version: \"1.1.0\" },\n ] as unknown as Application[],\n languagePackages: [],\n },\n } as unknown as DeviceSessionState);\n\n // WHEN\n const result = new BuildAppsInstallPlanTask(apiMock, {\n applications: [\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"Cardano\" },\n ],\n allowMissingApplication: false,\n }).run();\n\n // THEN\n expect(result).toStrictEqual({\n installPlan: [\n { versionName: \"Solana\", version: \"1.2.0\" },\n { versionName: \"Cardano\", version: \"1.1.0\" },\n ],\n alreadyInstalled: [\"Ethereum\"],\n missingApplications: [],\n });\n });\n\n it(\"Success with applicable constraints\", () => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [\n { versionName: \"Ethereum\", version: \"1.5.0\" },\n { versionName: \"Bitcoin\", version: \"1.2.0\" },\n { versionName: \"Solana\", version: \"1.1.0\" },\n { versionName: \"Cardano\", version: \"1.1.0\" },\n ] as unknown as Application[],\n catalog: {\n applications: [\n { versionName: \"Ethereum\", version: \"1.6.0\" },\n { versionName: \"Bitcoin\", version: \"1.3.0\" },\n { versionName: \"Solana\", version: \"1.2.0\" },\n { versionName: \"MyShitCoin\", version: \"0.0.1\" },\n { versionName: \"Cardano\", version: \"1.2.0\" },\n ] as unknown as Application[],\n languagePackages: [],\n },\n } as unknown as DeviceSessionState);\n\n // WHEN\n const result = new BuildAppsInstallPlanTask(apiMock, {\n applications: [\n {\n name: \"Ethereum\",\n constraints: [\n { minVersion: \"1.6.0\", applicableModels: [DeviceModelId.NANO_X] },\n ],\n },\n {\n name: \"Bitcoin\",\n constraints: [\n { minVersion: \"1.2.1\", exemptModels: [DeviceModelId.NANO_S] },\n ],\n },\n { name: \"Solana\", constraints: [{ minVersion: \"1.2.0\" }] },\n ],\n allowMissingApplication: false,\n }).run();\n\n // THEN\n expect(result).toStrictEqual({\n installPlan: [\n { versionName: \"Ethereum\", version: \"1.6.0\" },\n { versionName: \"Bitcoin\", version: \"1.3.0\" },\n { versionName: \"Solana\", version: \"1.2.0\" },\n ],\n alreadyInstalled: [],\n missingApplications: [],\n });\n });\n\n it(\"Success with non-applicable constraints\", () => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [\n { versionName: \"Ethereum\", version: \"1.5.0\" },\n { versionName: \"Bitcoin\", version: \"1.2.0\" },\n { versionName: \"Solana\", version: \"1.1.0\" },\n { versionName: \"Cardano\", version: \"1.1.0\" },\n ] as unknown as Application[],\n catalog: {\n applications: [\n { versionName: \"Ethereum\", version: \"1.6.0\" },\n { versionName: \"Bitcoin\", version: \"1.3.0\" },\n { versionName: \"Solana\", version: \"1.2.0\" },\n { versionName: \"MyShitCoin\", version: \"0.0.1\" },\n { versionName: \"Cardano\", version: \"1.2.0\" },\n ] as unknown as Application[],\n languagePackages: [],\n },\n } as unknown as DeviceSessionState);\n\n // WHEN\n const result = new BuildAppsInstallPlanTask(apiMock, {\n applications: [\n {\n name: \"Ethereum\",\n constraints: [\n { minVersion: \"1.6.0\", exemptModels: [DeviceModelId.NANO_X] },\n ],\n },\n {\n name: \"Bitcoin\",\n constraints: [\n { minVersion: \"1.2.1\", applicableModels: [DeviceModelId.NANO_S] },\n ],\n },\n { name: \"Cardano\", constraints: [{ minVersion: \"1.1.0\" }] },\n ],\n allowMissingApplication: false,\n }).run();\n\n // THEN\n expect(result).toStrictEqual({\n installPlan: [],\n alreadyInstalled: [\"Ethereum\", \"Bitcoin\", \"Cardano\"],\n missingApplications: [],\n });\n });\n\n it(\"Success with applicable constraints latest version\", () => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [\n { versionName: \"Ethereum\", version: \"1.5.0\" },\n { versionName: \"Bitcoin\", version: \"1.3.0\" },\n { versionName: \"Solana\", version: \"1.1.0\" },\n { versionName: \"MyShitCoin\", version: \"0.0.1\" },\n ] as unknown as Application[],\n catalog: {\n applications: [\n { versionName: \"Ethereum\", version: \"1.6.0\" },\n { versionName: \"Bitcoin\", version: \"1.3.0\" },\n { versionName: \"Solana\", version: \"1.2.0\" },\n { versionName: \"Cardano\", version: \"1.2.0\" },\n ] as unknown as Application[],\n languagePackages: [],\n },\n } as unknown as DeviceSessionState);\n\n // WHEN\n const result = new BuildAppsInstallPlanTask(apiMock, {\n applications: [\n { name: \"Ethereum\", constraints: [{ minVersion: \"latest\" }] },\n { name: \"Bitcoin\", constraints: [{ minVersion: \"latest\" }] },\n { name: \"MyShitCoin\", constraints: [{ minVersion: \"latest\" }] },\n ],\n allowMissingApplication: false,\n }).run();\n\n // THEN\n expect(result).toStrictEqual({\n installPlan: [{ versionName: \"Ethereum\", version: \"1.6.0\" }],\n alreadyInstalled: [\"Bitcoin\", \"MyShitCoin\"],\n missingApplications: [],\n });\n });\n\n it(\"Success with dependencies\", () => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [\n { versionName: \"AlreadyInstalledDep\", version: \"1.2.0\" },\n ] as unknown as Application[],\n catalog: {\n applications: [\n { versionName: \"Ethereum\", version: \"1.6.0\", parentName: undefined },\n { versionName: \"Solana\", version: \"1.2.0\", parentName: undefined },\n {\n versionName: \"MyEthShitCoin\",\n version: \"0.0.1\",\n parentName: \"Ethereum\",\n },\n {\n versionName: \"MySolShitCoin\",\n version: \"0.0.1\",\n parentName: \"Solana\",\n },\n {\n versionName: \"MyPumpFunShitCoin\",\n version: \"0.0.1\",\n parentName: \"Solana\",\n },\n { versionName: \"Cardano\", version: \"1.2.0\", parentName: undefined },\n {\n versionName: \"AlreadyInstalledDep\",\n version: \"1.2.0\",\n parentName: \"Cardano\",\n },\n ] as unknown as Application[],\n languagePackages: [],\n },\n } as unknown as DeviceSessionState);\n\n // WHEN\n const result = new BuildAppsInstallPlanTask(apiMock, {\n applications: [\n { name: \"MyEthShitCoin\" },\n { name: \"MySolShitCoin\" },\n { name: \"Solana\" },\n { name: \"MyPumpFunShitCoin\" },\n { name: \"AlreadyInstalledDep\" },\n ],\n allowMissingApplication: false,\n }).run();\n\n // THEN\n expect(result).toStrictEqual({\n installPlan: [\n { versionName: \"Ethereum\", version: \"1.6.0\", parentName: undefined },\n { versionName: \"Solana\", version: \"1.2.0\", parentName: undefined },\n {\n versionName: \"MyEthShitCoin\",\n version: \"0.0.1\",\n parentName: \"Ethereum\",\n },\n {\n versionName: \"MySolShitCoin\",\n version: \"0.0.1\",\n parentName: \"Solana\",\n },\n {\n versionName: \"MyPumpFunShitCoin\",\n version: \"0.0.1\",\n parentName: \"Solana\",\n },\n ],\n alreadyInstalled: [\"AlreadyInstalledDep\"],\n missingApplications: [],\n });\n });\n\n it(\"Success with allowed missing applications\", () => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [\n { versionName: \"Ethereum\", version: \"1.5.0\" },\n { versionName: \"Bitcoin\", version: \"1.3.0\" },\n ] as unknown as Application[],\n catalog: {\n applications: [\n { versionName: \"Ethereum\", version: \"1.6.0\" },\n { versionName: \"Bitcoin\", version: \"1.3.0\" },\n { versionName: \"Solana\", version: \"1.2.0\" },\n ] as unknown as Application[],\n languagePackages: [],\n },\n } as unknown as DeviceSessionState);\n\n // WHEN\n const result = new BuildAppsInstallPlanTask(apiMock, {\n applications: [\n { name: \"Ethereum\" },\n { name: \"Solana\" },\n { name: \"Cardano\" },\n ],\n allowMissingApplication: true,\n }).run();\n\n // THEN\n expect(result).toStrictEqual({\n installPlan: [{ versionName: \"Solana\", version: \"1.2.0\" }],\n alreadyInstalled: [\"Ethereum\"],\n missingApplications: [\"Cardano\"],\n });\n });\n\n it(\"Error when device is in incorrect state\", () => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.Connected,\n deviceStatus: DeviceStatus.CONNECTED,\n } as DeviceSessionState);\n\n // WHEN\n const result = new BuildAppsInstallPlanTask(apiMock, {\n applications: [{ name: \"Ethereum\" }],\n allowMissingApplication: false,\n }).run();\n\n // THEN\n expect(result).toStrictEqual({\n error: new UnknownDAError(\"Invalid device state\"),\n });\n });\n\n it(\"Error when device session was not populated\", () => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [],\n } as unknown as DeviceSessionState);\n\n // WHEN\n const result = new BuildAppsInstallPlanTask(apiMock, {\n applications: [{ name: \"Ethereum\" }],\n allowMissingApplication: false,\n }).run();\n\n // THEN\n expect(result).toStrictEqual({\n error: new UnknownDAError(\"Device apps metadata not fetched\"),\n });\n });\n\n describe(\"Error cases for unsupported applications and firmwares\", () => {\n describe(\"when firmware is up to date\", () => {\n it(\"should throw `UnsupportedApplicationDAError` when application not found in catalog\", () => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n firmwareUpdateContext: {\n currentFirmware: {} as FinalFirmware,\n },\n installedApps: [] as unknown as Application[],\n catalog: {\n applications: [] as unknown as Application[],\n languagePackages: [],\n },\n } as unknown as DeviceSessionState);\n\n // WHEN\n const result = new BuildAppsInstallPlanTask(apiMock, {\n applications: [{ name: \"Ethereum\" }],\n allowMissingApplication: false,\n }).run();\n\n // THEN\n expect(result).toStrictEqual({\n error: new UnsupportedApplicationDAError(\n \"Application Ethereum not supported for this device\",\n ),\n });\n });\n it(\"should throw `UnsupportedApplicationDAError` when application version is not supported\", () => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n firmwareUpdateContext: {\n currentFirmware: {} as FinalFirmware,\n },\n installedApps: [] as unknown as Application[],\n catalog: {\n applications: [\n { versionName: \"Ethereum\", version: \"1.5.0\" },\n ] as Application[],\n languagePackages: [],\n },\n } as unknown as DeviceSessionState);\n\n // WHEN\n const result = new BuildAppsInstallPlanTask(apiMock, {\n applications: [\n {\n name: \"Ethereum\",\n constraints: [{ minVersion: \"1.6.0\" }],\n },\n ],\n allowMissingApplication: false,\n }).run();\n\n // THEN\n expect(result).toStrictEqual({\n error: new UnsupportedApplicationDAError(\n \"Application Ethereum not supported for this device\",\n ),\n });\n });\n });\n describe(\"when firmware is out of date\", () => {\n it(\"should throw `UnsupportedFirmwareDAError` when application not found in catalog\", () => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n firmwareUpdateContext: {\n currentFirmware: {} as FinalFirmware,\n availableUpdate: {} as FirmwareUpdate,\n },\n installedApps: [] as unknown as Application[],\n catalog: {\n applications: [] as unknown as Application[],\n languagePackages: [],\n },\n } as unknown as DeviceSessionState);\n\n // WHEN\n const result = new BuildAppsInstallPlanTask(apiMock, {\n applications: [{ name: \"Ethereum\" }],\n allowMissingApplication: false,\n }).run();\n\n // THEN\n expect(result).toStrictEqual({\n error: new UnsupportedFirmwareDAError(\n \"Application Ethereum needs latest firmware\",\n ),\n });\n });\n it(\"should throw `UnsupportedFirmwareDAError` when application version is not supported\", () => {\n // GIVEN\n apiMock.getDeviceSessionState.mockReturnValueOnce({\n sessionStateType: DeviceSessionStateType.ReadyWithoutSecureChannel,\n deviceStatus: DeviceStatus.CONNECTED,\n installedApps: [] as unknown as Application[],\n firmwareUpdateContext: {\n currentFirmware: {} as FinalFirmware,\n availableUpdate: {} as FirmwareUpdate,\n },\n catalog: {\n applications: [\n { versionName: \"Ethereum\", version: \"1.5.0\" },\n ] as Application[],\n languagePackages: [],\n },\n } as unknown as DeviceSessionState);\n\n // WHEN\n const result = new BuildAppsInstallPlanTask(apiMock, {\n applications: [\n {\n name: \"Ethereum\",\n constraints: [{ minVersion: \"1.6.0\" }],\n },\n ],\n allowMissingApplication: false,\n }).run();\n\n // THEN\n expect(result).toStrictEqual({\n error: new UnsupportedFirmwareDAError(\n \"Application Ethereum needs latest firmware\",\n ),\n });\n });\n });\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_DeviceModel", "import_DeviceStatus", "import_makeInternalApi", "import_Errors", "import_DeviceSessionState", "import_BuildAppsInstallPlanTask", "apiMock", "result"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var n=require("purify-ts"),g=require("../../command/model/CommandResult"),c=require("../../device-action/__test-utils__/data"),d=require("../../device-action/__test-utils__/makeInternalApi"),m=require("../../device-action/task/Errors"),s=require("../../model/DmkResult"),o=require("./GetApplicationsMetadataTask");describe("GetApplicationsMetadataTask",()=>{const e=(0,d.makeDeviceActionInternalApiMock)(),h={id:7},A={id:361,version:"1.6.0",perso:"perso_11"},w={mcu:"mcu_version",bootloader:"bl_version",os:"se_version",metadata:"metadata"},k=[{name:"Ethereum",hash:"hash2",hashCode:"hashCode"},{name:"Language",hash:"hash3",hashCode:"0000000000000000000000000000000000000000000000000000000000000000"}],u=[c.ETH_APP_METADATA],p=[c.BTC_APP_METADATA,c.ETH_APP_METADATA],l=["fr","eng","it"],i={deviceVersion:h,firmware:A,firmwareVersion:w,installedApps:k},t={getAppsByHash:vi.fn(),getAppList:vi.fn(),getLanguagePackages:vi.fn()};beforeEach(()=>{vi.clearAllMocks(),e.sendCommand.mockResolvedValue((0,g.CommandResultFactory)({data:void 0})),e.getManagerApiService.mockReturnValue(t),t.getAppsByHash.mockReturnValue((0,n.EitherAsync)(async()=>u)),t.getAppList.mockReturnValue((0,n.EitherAsync)(async()=>p)),t.getLanguagePackages.mockReturnValue((0,n.EitherAsync)(async()=>l))}),it("Success without updates",async()=>{const a=await new o.GetApplicationsMetadataTask(e,i).run();expect(a).toStrictEqual((0,s.DmkResultFactory)({data:{applications:u,applicationsUpdates:[],installedLanguages:[],catalog:{applications:p,languagePackages:l}}}))}),it("Success without languages",async()=>{e.sendCommand.mockResolvedValueOnce((0,g.CommandResultFactory)({data:{id:1,size:15}})).mockResolvedValueOnce((0,g.CommandResultFactory)({data:{id:2,size:17}}));const a=await new o.GetApplicationsMetadataTask(e,i).run();expect(a).toStrictEqual((0,s.DmkResultFactory)({data:{applications:u,applicationsUpdates:[],installedLanguages:[{id:1,size:15},{id:2,size:17}],catalog:{applications:p,languagePackages:l}}}))}),it("Success with an available update",async()=>{const a={...c.BTC_APP_METADATA,version:"1.0.0"};t.getAppsByHash.mockReturnValue((0,n.EitherAsync)(async()=>[a]));const r=await new o.GetApplicationsMetadataTask(e,i).run();expect(r).toStrictEqual((0,s.DmkResultFactory)({data:{applications:[a],applicationsUpdates:[c.BTC_APP_METADATA],installedLanguages:[],catalog:{applications:p,languagePackages:l}}})),expect(t.getAppsByHash).toHaveBeenCalledWith(["hash2"])}),it("Success with app hash not found",async()=>{t.getAppsByHash.mockReturnValue((0,n.EitherAsync)(async()=>[null]));const a=await new o.GetApplicationsMetadataTask(e,i).run();expect(a).toStrictEqual((0,s.DmkResultFactory)({data:{applications:u,applicationsUpdates:[],installedLanguages:[],catalog:{applications:p,languagePackages:l}}}))}),it("should fail when apps hash cannot by retrieved",async()=>{t.getAppsByHash.mockReturnValueOnce((0,n.EitherAsync)(async({throwE:r})=>{r(new Error("error"))}));const a=await new o.GetApplicationsMetadataTask(e,i).run();expect(a).toStrictEqual((0,s.DmkResultFactory)({error:new m.GetApplicationsMetadataTaskError("Cannot get the application catalog")}))}),it("should fail when apps list cannot by retrieved",async()=>{t.getAppList.mockReturnValueOnce((0,n.EitherAsync)(async({throwE:r})=>{r(new Error("error"))}));const a=await new o.GetApplicationsMetadataTask(e,i).run();expect(a).toStrictEqual((0,s.DmkResultFactory)({error:new m.GetApplicationsMetadataTaskError("Cannot get the application catalog")}))}),it("should fail when languages cannot by retrieved",async()=>{t.getLanguagePackages.mockReturnValueOnce((0,n.EitherAsync)(async({throwE:r})=>{r(new Error("error"))}));const a=await new o.GetApplicationsMetadataTask(e,i).run();expect(a).toStrictEqual((0,s.DmkResultFactory)({error:new m.GetApplicationsMetadataTaskError("Cannot get the languages catalog")}))})});
2
- //# sourceMappingURL=GetApplicationsMetadataTask.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/api/device-action/task/GetApplicationsMetadataTask.test.ts"],
4
- "sourcesContent": ["import { EitherAsync } from \"purify-ts\";\n\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport {\n BTC_APP_METADATA,\n ETH_APP_METADATA,\n} from \"@api/device-action/__test-utils__/data\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { GetApplicationsMetadataTaskError } from \"@api/device-action/task/Errors\";\nimport { type FirmwareVersion } from \"@api/device-session/DeviceSessionState\";\nimport { DmkResultFactory } from \"@api/model/DmkResult\";\nimport { type DeviceVersion } from \"@internal/manager-api/model/Device\";\nimport { type FinalFirmware } from \"@internal/manager-api/model/Firmware\";\nimport { type LanguagePackage } from \"@internal/manager-api/model/Language\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\n\nimport { GetApplicationsMetadataTask } from \"./GetApplicationsMetadataTask\";\n\ndescribe(\"GetApplicationsMetadataTask\", () => {\n const apiMock = makeDeviceActionInternalApiMock();\n\n const DEVICE_VERSION = {\n id: 7,\n } as DeviceVersion;\n\n const FIRMWARE = {\n id: 361,\n version: \"1.6.0\",\n perso: \"perso_11\",\n } as FinalFirmware;\n\n const FIRMWARE_VERSION = {\n mcu: \"mcu_version\",\n bootloader: \"bl_version\",\n os: \"se_version\",\n metadata: \"metadata\",\n } as unknown as FirmwareVersion;\n\n const INSTALLED_APPS = [\n { name: \"Ethereum\", hash: \"hash2\", hashCode: \"hashCode\" },\n {\n name: \"Language\",\n hash: \"hash3\",\n hashCode:\n \"0000000000000000000000000000000000000000000000000000000000000000\",\n },\n ];\n\n const APPS = [ETH_APP_METADATA];\n\n const CATALOG = [BTC_APP_METADATA, ETH_APP_METADATA];\n\n const LANGUAGES = [\"fr\", \"eng\", \"it\"] as unknown as LanguagePackage[];\n\n const ARGS = {\n deviceVersion: DEVICE_VERSION,\n firmware: FIRMWARE,\n firmwareVersion: FIRMWARE_VERSION,\n installedApps: INSTALLED_APPS,\n };\n\n const MANAGER_MOCK = {\n getAppsByHash: vi.fn(),\n getAppList: vi.fn(),\n getLanguagePackages: vi.fn(),\n };\n\n beforeEach(() => {\n vi.clearAllMocks();\n\n apiMock.sendCommand.mockResolvedValue(\n CommandResultFactory({ data: undefined }),\n );\n apiMock.getManagerApiService.mockReturnValue(\n MANAGER_MOCK as unknown as ManagerApiService,\n );\n MANAGER_MOCK.getAppsByHash.mockReturnValue(EitherAsync(async () => APPS));\n MANAGER_MOCK.getAppList.mockReturnValue(EitherAsync(async () => CATALOG));\n MANAGER_MOCK.getLanguagePackages.mockReturnValue(\n EitherAsync(async () => LANGUAGES),\n );\n });\n\n it(\"Success without updates\", async () => {\n // WHEN\n const result = await new GetApplicationsMetadataTask(apiMock, ARGS).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n data: {\n applications: APPS,\n applicationsUpdates: [],\n installedLanguages: [],\n catalog: {\n applications: CATALOG,\n languagePackages: LANGUAGES,\n },\n },\n }),\n );\n });\n\n it(\"Success without languages\", async () => {\n // WHEN\n apiMock.sendCommand\n .mockResolvedValueOnce(\n CommandResultFactory({ data: { id: 1, size: 15 } }),\n )\n .mockResolvedValueOnce(\n CommandResultFactory({ data: { id: 2, size: 17 } }),\n );\n const result = await new GetApplicationsMetadataTask(apiMock, ARGS).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n data: {\n applications: APPS,\n applicationsUpdates: [],\n installedLanguages: [\n { id: 1, size: 15 },\n { id: 2, size: 17 },\n ],\n catalog: {\n applications: CATALOG,\n languagePackages: LANGUAGES,\n },\n },\n }),\n );\n });\n\n it(\"Success with an available update\", async () => {\n // GIVEN\n const app = {\n ...BTC_APP_METADATA,\n version: \"1.0.0\",\n };\n MANAGER_MOCK.getAppsByHash.mockReturnValue(EitherAsync(async () => [app]));\n\n // WHEN\n const result = await new GetApplicationsMetadataTask(apiMock, ARGS).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n data: {\n applications: [app],\n applicationsUpdates: [BTC_APP_METADATA],\n installedLanguages: [],\n catalog: {\n applications: CATALOG,\n languagePackages: LANGUAGES,\n },\n },\n }),\n );\n expect(MANAGER_MOCK.getAppsByHash).toHaveBeenCalledWith([\"hash2\"]);\n });\n\n it(\"Success with app hash not found\", async () => {\n // GIVEN\n MANAGER_MOCK.getAppsByHash.mockReturnValue(EitherAsync(async () => [null]));\n\n // WHEN\n const result = await new GetApplicationsMetadataTask(apiMock, ARGS).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n data: {\n applications: APPS,\n applicationsUpdates: [],\n installedLanguages: [],\n catalog: {\n applications: CATALOG,\n languagePackages: LANGUAGES,\n },\n },\n }),\n );\n });\n\n it(\"should fail when apps hash cannot by retrieved\", async () => {\n // GIVEN\n MANAGER_MOCK.getAppsByHash.mockReturnValueOnce(\n EitherAsync(async ({ throwE }) => {\n throwE(new Error(\"error\"));\n }),\n );\n\n // WHEN\n const result = await new GetApplicationsMetadataTask(apiMock, ARGS).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n error: new GetApplicationsMetadataTaskError(\n \"Cannot get the application catalog\",\n ),\n }),\n );\n });\n\n it(\"should fail when apps list cannot by retrieved\", async () => {\n // GIVEN\n MANAGER_MOCK.getAppList.mockReturnValueOnce(\n EitherAsync(async ({ throwE }) => {\n throwE(new Error(\"error\"));\n }),\n );\n\n // WHEN\n const result = await new GetApplicationsMetadataTask(apiMock, ARGS).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n error: new GetApplicationsMetadataTaskError(\n \"Cannot get the application catalog\",\n ),\n }),\n );\n });\n\n it(\"should fail when languages cannot by retrieved\", async () => {\n // GIVEN\n MANAGER_MOCK.getLanguagePackages.mockReturnValueOnce(\n EitherAsync(async ({ throwE }) => {\n throwE(new Error(\"error\"));\n }),\n );\n\n // WHEN\n const result = await new GetApplicationsMetadataTask(apiMock, ARGS).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n error: new GetApplicationsMetadataTaskError(\n \"Cannot get the languages catalog\",\n ),\n }),\n );\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_purify_ts", "import_CommandResult", "import_data", "import_makeInternalApi", "import_Errors", "import_DmkResult", "import_GetApplicationsMetadataTask", "apiMock", "DEVICE_VERSION", "FIRMWARE", "FIRMWARE_VERSION", "INSTALLED_APPS", "APPS", "CATALOG", "LANGUAGES", "ARGS", "MANAGER_MOCK", "result", "app", "throwE"]
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";var n=require("purify-ts"),d=require("../../command/Errors"),o=require("../../command/model/CommandResult"),p=require("../../device-action/__test-utils__/makeInternalApi"),V=require("../../device-action/task/Errors"),c=require("../../model/DmkResult"),m=require("./GetFirmwareMetadataTask");describe("GetFirmwareMetadataTask",()=>{const e=(0,p.makeDeviceActionInternalApiMock)(),a={mcuSephVersion:"mcu_version",mcuBootloaderVersion:"bl_version",seVersion:"se_version"},w=97,u={id:7},i={id:361,version:"1.6.0",perso:"perso_11"},l={id:362,perso:"perso_11",notes:"notes"},v={id:363,version:"1.7.0",perso:"perso_11",mcuVersions:[1]},f=[{id:3,name:"other_version",fromBootloaderVersion:"1.0"},{id:1,name:"mcu_version",fromBootloaderVersion:"1.0"}],t={getDeviceVersion:vi.fn(),getFirmwareVersion:vi.fn(),getLatestFirmwareVersion:vi.fn(),getNextFirmwareVersion:vi.fn(),getMcuList:vi.fn()};beforeEach(()=>{vi.resetAllMocks(),e.getManagerApiService.mockReturnValue(t),t.getDeviceVersion.mockReturnValue((0,n.EitherAsync)(async()=>u)),t.getFirmwareVersion.mockReturnValue((0,n.EitherAsync)(async()=>i)),t.getLatestFirmwareVersion.mockReturnValue((0,n.EitherAsync)(async()=>(0,n.Just)(l))),t.getNextFirmwareVersion.mockReturnValue((0,n.EitherAsync)(async()=>v)),t.getMcuList.mockReturnValue((0,n.EitherAsync)(async()=>f))}),it("success with no firmware update available",async()=>{e.sendCommand.mockResolvedValueOnce((0,o.CommandResultFactory)({data:a})).mockResolvedValueOnce((0,o.CommandResultFactory)({data:w})),t.getLatestFirmwareVersion.mockReturnValueOnce((0,n.EitherAsync)(async()=>n.Nothing));const r=await new m.GetFirmwareMetadataTask(e).run();expect(r).toStrictEqual((0,c.DmkResultFactory)({data:{deviceVersion:u,firmware:i,firmwareVersion:{mcu:"mcu_version",bootloader:"bl_version",os:"se_version",metadata:a},firmwareUpdateContext:{currentFirmware:i,availableUpdate:void 0},customImage:{size:w}}}))}),it("success with no firmware update when latest firmware cannot be fetched",async()=>{e.sendCommand.mockResolvedValueOnce((0,o.CommandResultFactory)({data:a})).mockResolvedValueOnce((0,o.CommandResultFactory)({data:w})),t.getLatestFirmwareVersion.mockReturnValueOnce((0,n.EitherAsync)(async({throwE:s})=>{s(new Error("error"))}));const r=await new m.GetFirmwareMetadataTask(e).run();expect(r).toStrictEqual((0,c.DmkResultFactory)({data:{deviceVersion:u,firmware:i,firmwareVersion:{mcu:"mcu_version",bootloader:"bl_version",os:"se_version",metadata:a},firmwareUpdateContext:{currentFirmware:i,availableUpdate:void 0},customImage:{size:w}}}))}),it("success with a firmware update available",async()=>{e.sendCommand.mockResolvedValueOnce((0,o.CommandResultFactory)({data:a})).mockResolvedValueOnce((0,o.CommandResultFactory)({error:new d.InvalidStatusWordError("error")}));const r=await new m.GetFirmwareMetadataTask(e).run();expect(r).toStrictEqual((0,c.DmkResultFactory)({data:{deviceVersion:u,firmware:i,firmwareVersion:{mcu:"mcu_version",bootloader:"bl_version",os:"se_version",metadata:a},firmwareUpdateContext:{currentFirmware:i,availableUpdate:{osuFirmware:l,finalFirmware:v,mcuUpdateRequired:!1}},customImage:{}}})),expect(t.getDeviceVersion).toHaveBeenCalledWith(a),expect(t.getFirmwareVersion).toHaveBeenCalledWith(a,u),expect(t.getLatestFirmwareVersion).toHaveBeenCalledWith(i,u),expect(t.getNextFirmwareVersion).toHaveBeenCalledWith(l)}),it("success with a firmware update available and MCU update",async()=>{e.sendCommand.mockResolvedValueOnce((0,o.CommandResultFactory)({data:a})).mockResolvedValueOnce((0,o.CommandResultFactory)({error:new d.InvalidStatusWordError("error")}));const r={...v,mcuVersions:[3]};t.getNextFirmwareVersion.mockReturnValue((0,n.EitherAsync)(async()=>r));const s=await new m.GetFirmwareMetadataTask(e).run();expect(s).toStrictEqual((0,c.DmkResultFactory)({data:{deviceVersion:u,firmware:i,firmwareVersion:{mcu:"mcu_version",bootloader:"bl_version",os:"se_version",metadata:a},firmwareUpdateContext:{currentFirmware:i,availableUpdate:{osuFirmware:l,finalFirmware:r,mcuUpdateRequired:!0}},customImage:{}}}))}),it("success with a firmware update available when current MCU is unknown",async()=>{e.sendCommand.mockResolvedValueOnce((0,o.CommandResultFactory)({data:a})).mockResolvedValueOnce((0,o.CommandResultFactory)({error:new d.InvalidStatusWordError("error")})),t.getMcuList.mockReturnValueOnce((0,n.EitherAsync)(async()=>[{id:3,name:"other_version",fromBootloaderVersion:"1.0"}]));const r=await new m.GetFirmwareMetadataTask(e).run();expect(r).toStrictEqual((0,c.DmkResultFactory)({data:{deviceVersion:u,firmware:i,firmwareVersion:{mcu:"mcu_version",bootloader:"bl_version",os:"se_version",metadata:a},firmwareUpdateContext:{currentFirmware:i,availableUpdate:{osuFirmware:l,finalFirmware:v,mcuUpdateRequired:!0}},customImage:{}}}))}),it("success with no firmware update when next firmware cannot be fetched",async()=>{e.sendCommand.mockResolvedValueOnce((0,o.CommandResultFactory)({data:a})).mockResolvedValueOnce((0,o.CommandResultFactory)({error:new d.InvalidStatusWordError("error")})),t.getNextFirmwareVersion.mockReturnValueOnce((0,n.EitherAsync)(async({throwE:s})=>{s(new Error("error"))}));const r=await new m.GetFirmwareMetadataTask(e).run();expect(r).toStrictEqual((0,c.DmkResultFactory)({data:{deviceVersion:u,firmware:i,firmwareVersion:{mcu:"mcu_version",bootloader:"bl_version",os:"se_version",metadata:a},firmwareUpdateContext:{currentFirmware:i,availableUpdate:void 0},customImage:{}}}))}),it("success with no firmware update when MCU list cannot be fetched",async()=>{e.sendCommand.mockResolvedValueOnce((0,o.CommandResultFactory)({data:a})).mockResolvedValueOnce((0,o.CommandResultFactory)({error:new d.InvalidStatusWordError("error")})),t.getMcuList.mockReturnValueOnce((0,n.EitherAsync)(async({throwE:s})=>{s(new Error("error"))}));const r=await new m.GetFirmwareMetadataTask(e).run();expect(r).toStrictEqual((0,c.DmkResultFactory)({data:{deviceVersion:u,firmware:i,firmwareVersion:{mcu:"mcu_version",bootloader:"bl_version",os:"se_version",metadata:a},firmwareUpdateContext:{currentFirmware:i,availableUpdate:void 0},customImage:{}}}))}),it("should fail when OS version cannot be retrieved",async()=>{e.sendCommand.mockResolvedValueOnce((0,o.CommandResultFactory)({error:new d.InvalidStatusWordError("error")}));const r=await new m.GetFirmwareMetadataTask(e).run();expect(r).toStrictEqual((0,c.DmkResultFactory)({error:new d.InvalidStatusWordError("error")}))}),it("should fail if device version cannot be fetched with InvalidGetFirmwareMetadataResponseError",async()=>{e.sendCommand.mockResolvedValueOnce((0,o.CommandResultFactory)({data:a})),t.getDeviceVersion.mockReturnValueOnce((0,n.EitherAsync)(async({throwE:s})=>{s(new Error("error"))}));const r=await new m.GetFirmwareMetadataTask(e).run();expect(r).toStrictEqual((0,c.DmkResultFactory)({error:new V.InvalidGetFirmwareMetadataResponseError}))}),it("should fail if firmware version cannot be fetched with InvalidGetFirmwareMetadataResponseError",async()=>{e.sendCommand.mockResolvedValueOnce((0,o.CommandResultFactory)({data:a})),t.getFirmwareVersion.mockReturnValueOnce((0,n.EitherAsync)(async({throwE:s})=>{s(new Error("error"))}));const r=await new m.GetFirmwareMetadataTask(e).run();expect(r).toStrictEqual((0,c.DmkResultFactory)({error:new V.InvalidGetFirmwareMetadataResponseError}))})});
2
- //# sourceMappingURL=GetFirmwareMetadataTask.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/api/device-action/task/GetFirmwareMetadataTask.test.ts"],
4
- "sourcesContent": ["import { EitherAsync, Just, Nothing } from \"purify-ts\";\n\nimport { InvalidStatusWordError } from \"@api/command/Errors\";\nimport { CommandResultFactory } from \"@api/command/model/CommandResult\";\nimport { type GetOsVersionResponse } from \"@api/command/os/GetOsVersionCommand\";\nimport { makeDeviceActionInternalApiMock } from \"@api/device-action/__test-utils__/makeInternalApi\";\nimport { InvalidGetFirmwareMetadataResponseError } from \"@api/device-action/task/Errors\";\nimport { DmkResultFactory } from \"@api/model/DmkResult\";\nimport {\n type FinalFirmware,\n type McuFirmware,\n type OsuFirmware,\n} from \"@internal/manager-api/model/Firmware\";\nimport { type ManagerApiService } from \"@internal/manager-api/service/ManagerApiService\";\n\nimport { GetFirmwareMetadataTask } from \"./GetFirmwareMetadataTask\";\n\ndescribe(\"GetFirmwareMetadataTask\", () => {\n const apiMock = makeDeviceActionInternalApiMock();\n const OS_VERSION = {\n mcuSephVersion: \"mcu_version\",\n mcuBootloaderVersion: \"bl_version\",\n seVersion: \"se_version\",\n } as GetOsVersionResponse;\n\n const CUSTOM_IMAGE_SIZE = 97;\n\n const DEVICE_VERSION = {\n id: 7,\n };\n\n const FIRMWARE_VERSION = {\n id: 361,\n version: \"1.6.0\",\n perso: \"perso_11\",\n } as FinalFirmware;\n\n const OSU_VERSION = {\n id: 362,\n perso: \"perso_11\",\n notes: \"notes\",\n } as OsuFirmware;\n\n const NEXT_FIRMWARE_VERSION = {\n id: 363,\n version: \"1.7.0\",\n perso: \"perso_11\",\n mcuVersions: [1],\n } as FinalFirmware;\n\n const MCUS = [\n {\n id: 3,\n name: \"other_version\",\n fromBootloaderVersion: \"1.0\",\n },\n {\n id: 1,\n name: \"mcu_version\",\n fromBootloaderVersion: \"1.0\",\n },\n ] as McuFirmware[];\n\n const MANAGER_MOCK = {\n getDeviceVersion: vi.fn(),\n getFirmwareVersion: vi.fn(),\n getLatestFirmwareVersion: vi.fn(),\n getNextFirmwareVersion: vi.fn(),\n getMcuList: vi.fn(),\n };\n\n beforeEach(() => {\n vi.resetAllMocks();\n\n apiMock.getManagerApiService.mockReturnValue(\n MANAGER_MOCK as unknown as ManagerApiService,\n );\n MANAGER_MOCK.getDeviceVersion.mockReturnValue(\n EitherAsync(async () => DEVICE_VERSION),\n );\n MANAGER_MOCK.getFirmwareVersion.mockReturnValue(\n EitherAsync(async () => FIRMWARE_VERSION),\n );\n MANAGER_MOCK.getLatestFirmwareVersion.mockReturnValue(\n EitherAsync(async () => Just(OSU_VERSION)),\n );\n MANAGER_MOCK.getNextFirmwareVersion.mockReturnValue(\n EitherAsync(async () => NEXT_FIRMWARE_VERSION),\n );\n MANAGER_MOCK.getMcuList.mockReturnValue(EitherAsync(async () => MCUS));\n });\n\n it(\"success with no firmware update available\", async () => {\n // GIVEN\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: OS_VERSION }))\n .mockResolvedValueOnce(CommandResultFactory({ data: CUSTOM_IMAGE_SIZE }));\n MANAGER_MOCK.getLatestFirmwareVersion.mockReturnValueOnce(\n EitherAsync(async () => Nothing),\n );\n\n // WHEN\n const result = await new GetFirmwareMetadataTask(apiMock).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n data: {\n deviceVersion: DEVICE_VERSION,\n firmware: FIRMWARE_VERSION,\n firmwareVersion: {\n mcu: \"mcu_version\",\n bootloader: \"bl_version\",\n os: \"se_version\",\n metadata: OS_VERSION,\n },\n firmwareUpdateContext: {\n currentFirmware: FIRMWARE_VERSION,\n availableUpdate: undefined,\n },\n customImage: { size: CUSTOM_IMAGE_SIZE },\n },\n }),\n );\n });\n\n it(\"success with no firmware update when latest firmware cannot be fetched\", async () => {\n // GIVEN\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: OS_VERSION }))\n .mockResolvedValueOnce(CommandResultFactory({ data: CUSTOM_IMAGE_SIZE }));\n MANAGER_MOCK.getLatestFirmwareVersion.mockReturnValueOnce(\n EitherAsync(async ({ throwE }) => {\n throwE(new Error(\"error\"));\n }),\n );\n\n // WHEN\n const result = await new GetFirmwareMetadataTask(apiMock).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n data: {\n deviceVersion: DEVICE_VERSION,\n firmware: FIRMWARE_VERSION,\n firmwareVersion: {\n mcu: \"mcu_version\",\n bootloader: \"bl_version\",\n os: \"se_version\",\n metadata: OS_VERSION,\n },\n firmwareUpdateContext: {\n currentFirmware: FIRMWARE_VERSION,\n availableUpdate: undefined,\n },\n customImage: { size: CUSTOM_IMAGE_SIZE },\n },\n }),\n );\n });\n\n it(\"success with a firmware update available\", async () => {\n // GIVEN\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: OS_VERSION }))\n .mockResolvedValueOnce(\n CommandResultFactory({ error: new InvalidStatusWordError(\"error\") }),\n );\n\n // WHEN\n const result = await new GetFirmwareMetadataTask(apiMock).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n data: {\n deviceVersion: DEVICE_VERSION,\n firmware: FIRMWARE_VERSION,\n firmwareVersion: {\n mcu: \"mcu_version\",\n bootloader: \"bl_version\",\n os: \"se_version\",\n metadata: OS_VERSION,\n },\n firmwareUpdateContext: {\n currentFirmware: FIRMWARE_VERSION,\n availableUpdate: {\n osuFirmware: OSU_VERSION,\n finalFirmware: NEXT_FIRMWARE_VERSION,\n mcuUpdateRequired: false,\n },\n },\n customImage: {},\n },\n }),\n );\n expect(MANAGER_MOCK.getDeviceVersion).toHaveBeenCalledWith(OS_VERSION);\n expect(MANAGER_MOCK.getFirmwareVersion).toHaveBeenCalledWith(\n OS_VERSION,\n DEVICE_VERSION,\n );\n expect(MANAGER_MOCK.getLatestFirmwareVersion).toHaveBeenCalledWith(\n FIRMWARE_VERSION,\n DEVICE_VERSION,\n );\n expect(MANAGER_MOCK.getNextFirmwareVersion).toHaveBeenCalledWith(\n OSU_VERSION,\n );\n });\n\n it(\"success with a firmware update available and MCU update\", async () => {\n // GIVEN\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: OS_VERSION }))\n .mockResolvedValueOnce(\n CommandResultFactory({ error: new InvalidStatusWordError(\"error\") }),\n );\n const nextFirmware = {\n ...NEXT_FIRMWARE_VERSION,\n mcuVersions: [3],\n };\n MANAGER_MOCK.getNextFirmwareVersion.mockReturnValue(\n EitherAsync(async () => nextFirmware),\n );\n\n // WHEN\n const result = await new GetFirmwareMetadataTask(apiMock).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n data: {\n deviceVersion: DEVICE_VERSION,\n firmware: FIRMWARE_VERSION,\n firmwareVersion: {\n mcu: \"mcu_version\",\n bootloader: \"bl_version\",\n os: \"se_version\",\n metadata: OS_VERSION,\n },\n firmwareUpdateContext: {\n currentFirmware: FIRMWARE_VERSION,\n availableUpdate: {\n osuFirmware: OSU_VERSION,\n finalFirmware: nextFirmware,\n mcuUpdateRequired: true,\n },\n },\n customImage: {},\n },\n }),\n );\n });\n\n it(\"success with a firmware update available when current MCU is unknown\", async () => {\n // GIVEN\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: OS_VERSION }))\n .mockResolvedValueOnce(\n CommandResultFactory({ error: new InvalidStatusWordError(\"error\") }),\n );\n MANAGER_MOCK.getMcuList.mockReturnValueOnce(\n EitherAsync(async () => [\n {\n id: 3,\n name: \"other_version\",\n fromBootloaderVersion: \"1.0\",\n },\n ]),\n );\n\n // WHEN\n const result = await new GetFirmwareMetadataTask(apiMock).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n data: {\n deviceVersion: DEVICE_VERSION,\n firmware: FIRMWARE_VERSION,\n firmwareVersion: {\n mcu: \"mcu_version\",\n bootloader: \"bl_version\",\n os: \"se_version\",\n metadata: OS_VERSION,\n },\n firmwareUpdateContext: {\n currentFirmware: FIRMWARE_VERSION,\n availableUpdate: {\n osuFirmware: OSU_VERSION,\n finalFirmware: NEXT_FIRMWARE_VERSION,\n mcuUpdateRequired: true,\n },\n },\n customImage: {},\n },\n }),\n );\n });\n\n it(\"success with no firmware update when next firmware cannot be fetched\", async () => {\n // GIVEN\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: OS_VERSION }))\n .mockResolvedValueOnce(\n CommandResultFactory({ error: new InvalidStatusWordError(\"error\") }),\n );\n MANAGER_MOCK.getNextFirmwareVersion.mockReturnValueOnce(\n EitherAsync(async ({ throwE }) => {\n throwE(new Error(\"error\"));\n }),\n );\n\n // WHEN\n const result = await new GetFirmwareMetadataTask(apiMock).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n data: {\n deviceVersion: DEVICE_VERSION,\n firmware: FIRMWARE_VERSION,\n firmwareVersion: {\n mcu: \"mcu_version\",\n bootloader: \"bl_version\",\n os: \"se_version\",\n metadata: OS_VERSION,\n },\n firmwareUpdateContext: {\n currentFirmware: FIRMWARE_VERSION,\n availableUpdate: undefined,\n },\n customImage: {},\n },\n }),\n );\n });\n\n it(\"success with no firmware update when MCU list cannot be fetched\", async () => {\n // GIVEN\n apiMock.sendCommand\n .mockResolvedValueOnce(CommandResultFactory({ data: OS_VERSION }))\n .mockResolvedValueOnce(\n CommandResultFactory({ error: new InvalidStatusWordError(\"error\") }),\n );\n MANAGER_MOCK.getMcuList.mockReturnValueOnce(\n EitherAsync(async ({ throwE }) => {\n throwE(new Error(\"error\"));\n }),\n );\n\n // WHEN\n const result = await new GetFirmwareMetadataTask(apiMock).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n data: {\n deviceVersion: DEVICE_VERSION,\n firmware: FIRMWARE_VERSION,\n firmwareVersion: {\n mcu: \"mcu_version\",\n bootloader: \"bl_version\",\n os: \"se_version\",\n metadata: OS_VERSION,\n },\n firmwareUpdateContext: {\n currentFirmware: FIRMWARE_VERSION,\n availableUpdate: undefined,\n },\n customImage: {},\n },\n }),\n );\n });\n\n it(\"should fail when OS version cannot be retrieved\", async () => {\n // GIVEN\n apiMock.sendCommand.mockResolvedValueOnce(\n CommandResultFactory({ error: new InvalidStatusWordError(\"error\") }),\n );\n\n // WHEN\n const result = await new GetFirmwareMetadataTask(apiMock).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({ error: new InvalidStatusWordError(\"error\") }),\n );\n });\n\n it(\"should fail if device version cannot be fetched with InvalidGetFirmwareMetadataResponseError\", async () => {\n // GIVEN\n apiMock.sendCommand.mockResolvedValueOnce(\n CommandResultFactory({ data: OS_VERSION }),\n );\n MANAGER_MOCK.getDeviceVersion.mockReturnValueOnce(\n EitherAsync(async ({ throwE }) => {\n throwE(new Error(\"error\"));\n }),\n );\n\n // WHEN\n const result = await new GetFirmwareMetadataTask(apiMock).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n error: new InvalidGetFirmwareMetadataResponseError(),\n }),\n );\n });\n\n it(\"should fail if firmware version cannot be fetched with InvalidGetFirmwareMetadataResponseError\", async () => {\n // GIVEN\n apiMock.sendCommand.mockResolvedValueOnce(\n CommandResultFactory({ data: OS_VERSION }),\n );\n MANAGER_MOCK.getFirmwareVersion.mockReturnValueOnce(\n EitherAsync(async ({ throwE }) => {\n throwE(new Error(\"error\"));\n }),\n );\n\n // WHEN\n const result = await new GetFirmwareMetadataTask(apiMock).run();\n\n // THEN\n expect(result).toStrictEqual(\n DmkResultFactory({\n error: new InvalidGetFirmwareMetadataResponseError(),\n }),\n );\n });\n});\n"],
5
- "mappings": "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",
6
- "names": ["import_purify_ts", "import_Errors", "import_CommandResult", "import_makeInternalApi", "import_DmkResult", "import_GetFirmwareMetadataTask", "apiMock", "OS_VERSION", "CUSTOM_IMAGE_SIZE", "DEVICE_VERSION", "FIRMWARE_VERSION", "OSU_VERSION", "NEXT_FIRMWARE_VERSION", "MCUS", "MANAGER_MOCK", "result", "throwE", "nextFirmware"]
7
- }