@ledgerhq/live-common 27.2.0 → 27.3.0-nightly.0

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 (219) hide show
  1. package/lib/bot/index.d.ts.map +1 -1
  2. package/lib/bot/index.js +8 -3
  3. package/lib/bot/index.js.map +1 -1
  4. package/lib/bot/specs.d.ts +9 -0
  5. package/lib/bot/specs.d.ts.map +1 -1
  6. package/lib/bot/specs.js +49 -1
  7. package/lib/bot/specs.js.map +1 -1
  8. package/lib/currencies/support.d.ts.map +1 -1
  9. package/lib/currencies/support.js +2 -1
  10. package/lib/currencies/support.js.map +1 -1
  11. package/lib/derivation.d.ts.map +1 -1
  12. package/lib/derivation.js +2 -4
  13. package/lib/derivation.js.map +1 -1
  14. package/lib/env.js +1 -1
  15. package/lib/exchange/swap/getExchangeRates.d.ts.map +1 -1
  16. package/lib/exchange/swap/getExchangeRates.js +1 -1
  17. package/lib/exchange/swap/getExchangeRates.js.map +1 -1
  18. package/lib/exchange/swap/getProviders.d.ts.map +1 -1
  19. package/lib/exchange/swap/getProviders.js +45 -5
  20. package/lib/exchange/swap/getProviders.js.map +1 -1
  21. package/lib/exchange/swap/getProviders.test.d.ts +2 -0
  22. package/lib/exchange/swap/getProviders.test.d.ts.map +1 -0
  23. package/lib/exchange/swap/getProviders.test.js +519 -0
  24. package/lib/exchange/swap/getProviders.test.js.map +1 -0
  25. package/lib/exchange/swap/hooks/useProviderRates.d.ts +1 -0
  26. package/lib/exchange/swap/hooks/useProviderRates.d.ts.map +1 -1
  27. package/lib/exchange/swap/hooks/useProviderRates.js +19 -4
  28. package/lib/exchange/swap/hooks/useProviderRates.js.map +1 -1
  29. package/lib/exchange/swap/hooks/useProviderRates.test.js +42 -0
  30. package/lib/exchange/swap/hooks/useProviderRates.test.js.map +1 -1
  31. package/lib/exchange/swap/hooks/useSwapTransaction.d.ts +1 -0
  32. package/lib/exchange/swap/hooks/useSwapTransaction.d.ts.map +1 -1
  33. package/lib/exchange/swap/hooks/useSwapTransaction.js +2 -1
  34. package/lib/exchange/swap/hooks/useSwapTransaction.js.map +1 -1
  35. package/lib/exchange/swap/index.d.ts +2 -1
  36. package/lib/exchange/swap/index.d.ts.map +1 -1
  37. package/lib/exchange/swap/index.js +11 -1
  38. package/lib/exchange/swap/index.js.map +1 -1
  39. package/lib/exchange/swap/index.test.js +22 -0
  40. package/lib/exchange/swap/index.test.js.map +1 -1
  41. package/lib/exchange/swap/mock.js +1 -1
  42. package/lib/exchange/swap/mock.js.map +1 -1
  43. package/lib/exchange/swap/types.d.ts +14 -0
  44. package/lib/exchange/swap/types.d.ts.map +1 -1
  45. package/lib/exchange/swap/utils/index.d.ts +1 -0
  46. package/lib/exchange/swap/utils/index.d.ts.map +1 -1
  47. package/lib/exchange/swap/utils/index.js +6 -1
  48. package/lib/exchange/swap/utils/index.js.map +1 -1
  49. package/lib/exchange/swap/utils/index.test.js +12 -0
  50. package/lib/exchange/swap/utils/index.test.js.map +1 -1
  51. package/lib/families/algorand/speculos-deviceActions.d.ts.map +1 -1
  52. package/lib/families/algorand/speculos-deviceActions.js +2 -29
  53. package/lib/families/algorand/speculos-deviceActions.js.map +1 -1
  54. package/lib/families/bitcoin/specs.d.ts.map +1 -1
  55. package/lib/families/bitcoin/specs.js +0 -1
  56. package/lib/families/bitcoin/specs.js.map +1 -1
  57. package/lib/families/bitcoin/speculos-deviceActions.d.ts.map +1 -1
  58. package/lib/families/bitcoin/speculos-deviceActions.js +2 -22
  59. package/lib/families/bitcoin/speculos-deviceActions.js.map +1 -1
  60. package/lib/families/cardano/specs.d.ts.map +1 -1
  61. package/lib/families/cardano/specs.js +4 -3
  62. package/lib/families/cardano/specs.js.map +1 -1
  63. package/lib/families/cardano/speculos-deviceActions.d.ts.map +1 -1
  64. package/lib/families/cardano/speculos-deviceActions.js +2 -10
  65. package/lib/families/cardano/speculos-deviceActions.js.map +1 -1
  66. package/lib/families/celo/speculos-deviceActions.d.ts.map +1 -1
  67. package/lib/families/celo/speculos-deviceActions.js +3 -10
  68. package/lib/families/celo/speculos-deviceActions.js.map +1 -1
  69. package/lib/families/elrond/speculos-deviceActions.d.ts.map +1 -1
  70. package/lib/families/elrond/speculos-deviceActions.js +3 -8
  71. package/lib/families/elrond/speculos-deviceActions.js.map +1 -1
  72. package/lib/families/ethereum/speculos-deviceActions.d.ts.map +1 -1
  73. package/lib/families/ethereum/speculos-deviceActions.js +10 -33
  74. package/lib/families/ethereum/speculos-deviceActions.js.map +1 -1
  75. package/lib/families/evm/specs.d.ts.map +1 -1
  76. package/lib/families/evm/specs.js +9 -5
  77. package/lib/families/evm/specs.js.map +1 -1
  78. package/lib/families/evm/speculos-deviceActions.d.ts.map +1 -1
  79. package/lib/families/evm/speculos-deviceActions.js +5 -25
  80. package/lib/families/evm/speculos-deviceActions.js.map +1 -1
  81. package/lib/families/filecoin/speculos-deviceActions.d.ts.map +1 -1
  82. package/lib/families/filecoin/speculos-deviceActions.js +6 -7
  83. package/lib/families/filecoin/speculos-deviceActions.js.map +1 -1
  84. package/lib/families/polkadot/speculos-deviceActions.d.ts.map +1 -1
  85. package/lib/families/polkadot/speculos-deviceActions.js +3 -10
  86. package/lib/families/polkadot/speculos-deviceActions.js.map +1 -1
  87. package/lib/families/ripple/speculos-deviceActions.d.ts.map +1 -1
  88. package/lib/families/ripple/speculos-deviceActions.js +2 -22
  89. package/lib/families/ripple/speculos-deviceActions.js.map +1 -1
  90. package/lib/families/solana/speculos-deviceActions.d.ts.map +1 -1
  91. package/lib/families/solana/speculos-deviceActions.js +5 -7
  92. package/lib/families/solana/speculos-deviceActions.js.map +1 -1
  93. package/lib/families/stellar/speculos-deviceActions.d.ts.map +1 -1
  94. package/lib/families/stellar/speculos-deviceActions.js +4 -8
  95. package/lib/families/stellar/speculos-deviceActions.js.map +1 -1
  96. package/lib/families/tezos/speculos-deviceActions.d.ts.map +1 -1
  97. package/lib/families/tezos/speculos-deviceActions.js +6 -11
  98. package/lib/families/tezos/speculos-deviceActions.js.map +1 -1
  99. package/lib/families/tron/speculos-deviceActions.d.ts.map +1 -1
  100. package/lib/families/tron/speculos-deviceActions.js +2 -14
  101. package/lib/families/tron/speculos-deviceActions.js.map +1 -1
  102. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  103. package/lib/featureFlags/defaultFeatures.js +3 -0
  104. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  105. package/lib/hw/extractOnboardingState.d.ts +5 -1
  106. package/lib/hw/extractOnboardingState.d.ts.map +1 -1
  107. package/lib/hw/extractOnboardingState.js +17 -9
  108. package/lib/hw/extractOnboardingState.js.map +1 -1
  109. package/lib/hw/extractOnboardingState.test.js +21 -11
  110. package/lib/hw/extractOnboardingState.test.js.map +1 -1
  111. package/lib/postOnboarding/PostOnboardingProvider.d.ts +20 -0
  112. package/lib/postOnboarding/PostOnboardingProvider.d.ts.map +1 -0
  113. package/lib/postOnboarding/PostOnboardingProvider.js +33 -0
  114. package/lib/postOnboarding/PostOnboardingProvider.js.map +1 -0
  115. package/lib/postOnboarding/actions.d.ts +20 -0
  116. package/lib/postOnboarding/actions.d.ts.map +1 -0
  117. package/lib/postOnboarding/actions.js +37 -0
  118. package/lib/postOnboarding/actions.js.map +1 -0
  119. package/lib/postOnboarding/hooks/index.d.ts +6 -0
  120. package/lib/postOnboarding/hooks/index.d.ts.map +1 -0
  121. package/lib/postOnboarding/hooks/index.js +22 -0
  122. package/lib/postOnboarding/hooks/index.js.map +1 -0
  123. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.d.ts +8 -0
  124. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.d.ts.map +1 -0
  125. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.js +16 -0
  126. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.js.map +1 -0
  127. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.d.ts +2 -0
  128. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.d.ts.map +1 -0
  129. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.js +75 -0
  130. package/lib/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.js.map +1 -0
  131. package/lib/postOnboarding/hooks/usePostOnboardingContext.d.ts +3 -0
  132. package/lib/postOnboarding/hooks/usePostOnboardingContext.d.ts.map +1 -0
  133. package/lib/postOnboarding/hooks/usePostOnboardingContext.js +10 -0
  134. package/lib/postOnboarding/hooks/usePostOnboardingContext.js.map +1 -0
  135. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.d.ts +8 -0
  136. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.d.ts.map +1 -0
  137. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.js +20 -0
  138. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.js.map +1 -0
  139. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.d.ts +2 -0
  140. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.d.ts.map +1 -0
  141. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.js +64 -0
  142. package/lib/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.js.map +1 -0
  143. package/lib/postOnboarding/hooks/usePostOnboardingHubState.d.ts +12 -0
  144. package/lib/postOnboarding/hooks/usePostOnboardingHubState.d.ts.map +1 -0
  145. package/lib/postOnboarding/hooks/usePostOnboardingHubState.js +65 -0
  146. package/lib/postOnboarding/hooks/usePostOnboardingHubState.js.map +1 -0
  147. package/lib/postOnboarding/hooks/usePostOnboardingHubState.test.d.ts +2 -0
  148. package/lib/postOnboarding/hooks/usePostOnboardingHubState.test.d.ts.map +1 -0
  149. package/lib/postOnboarding/hooks/usePostOnboardingHubState.test.js +129 -0
  150. package/lib/postOnboarding/hooks/usePostOnboardingHubState.test.js.map +1 -0
  151. package/lib/postOnboarding/hooks/useStartPostOnboardingCallback.d.ts +13 -0
  152. package/lib/postOnboarding/hooks/useStartPostOnboardingCallback.d.ts.map +1 -0
  153. package/lib/postOnboarding/hooks/useStartPostOnboardingCallback.js +34 -0
  154. package/lib/postOnboarding/hooks/useStartPostOnboardingCallback.js.map +1 -0
  155. package/lib/postOnboarding/mock.d.ts +8 -0
  156. package/lib/postOnboarding/mock.d.ts.map +1 -0
  157. package/lib/postOnboarding/mock.js +46 -0
  158. package/lib/postOnboarding/mock.js.map +1 -0
  159. package/lib/postOnboarding/reducer.d.ts +22 -0
  160. package/lib/postOnboarding/reducer.d.ts.map +1 -0
  161. package/lib/postOnboarding/reducer.js +71 -0
  162. package/lib/postOnboarding/reducer.js.map +1 -0
  163. package/lib/postOnboarding/reducer.test.d.ts +2 -0
  164. package/lib/postOnboarding/reducer.test.d.ts.map +1 -0
  165. package/lib/postOnboarding/reducer.test.js +251 -0
  166. package/lib/postOnboarding/reducer.test.js.map +1 -0
  167. package/package.json +8 -4
  168. package/src/bot/index.ts +11 -12
  169. package/src/bot/specs.ts +45 -0
  170. package/src/currencies/__snapshots__/sortByMarketcap.test.ts.snap +1 -35
  171. package/src/currencies/support.ts +2 -1
  172. package/src/derivation.ts +2 -4
  173. package/src/env.ts +1 -1
  174. package/src/exchange/swap/getExchangeRates.ts +7 -3
  175. package/src/exchange/swap/getProviders.test.ts +450 -0
  176. package/src/exchange/swap/getProviders.ts +31 -8
  177. package/src/exchange/swap/hooks/useProviderRates.test.ts +43 -0
  178. package/src/exchange/swap/hooks/useProviderRates.ts +22 -3
  179. package/src/exchange/swap/hooks/useSwapTransaction.ts +3 -1
  180. package/src/exchange/swap/index.test.ts +36 -1
  181. package/src/exchange/swap/index.ts +15 -0
  182. package/src/exchange/swap/mock.ts +2 -2
  183. package/src/exchange/swap/types.ts +11 -0
  184. package/src/exchange/swap/utils/index.test.ts +19 -0
  185. package/src/exchange/swap/utils/index.ts +5 -0
  186. package/src/families/algorand/speculos-deviceActions.ts +4 -35
  187. package/src/families/bitcoin/specs.ts +0 -1
  188. package/src/families/bitcoin/speculos-deviceActions.ts +3 -26
  189. package/src/families/cardano/specs.ts +4 -3
  190. package/src/families/cardano/speculos-deviceActions.ts +3 -14
  191. package/src/families/celo/speculos-deviceActions.ts +6 -14
  192. package/src/families/elrond/speculos-deviceActions.ts +4 -9
  193. package/src/families/ethereum/speculos-deviceActions.ts +16 -46
  194. package/src/families/evm/specs.ts +12 -8
  195. package/src/families/evm/speculos-deviceActions.ts +7 -35
  196. package/src/families/filecoin/speculos-deviceActions.ts +7 -8
  197. package/src/families/polkadot/speculos-deviceActions.ts +5 -16
  198. package/src/families/ripple/speculos-deviceActions.ts +3 -28
  199. package/src/families/solana/speculos-deviceActions.ts +6 -8
  200. package/src/families/stellar/speculos-deviceActions.ts +5 -11
  201. package/src/families/tezos/speculos-deviceActions.ts +9 -16
  202. package/src/families/tron/speculos-deviceActions.ts +4 -12
  203. package/src/featureFlags/defaultFeatures.ts +3 -0
  204. package/src/hw/extractOnboardingState.test.ts +29 -12
  205. package/src/hw/extractOnboardingState.ts +17 -9
  206. package/src/postOnboarding/PostOnboardingProvider.tsx +49 -0
  207. package/src/postOnboarding/actions.ts +40 -0
  208. package/src/postOnboarding/hooks/index.ts +5 -0
  209. package/src/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.test.ts +82 -0
  210. package/src/postOnboarding/hooks/useAllPostOnboardingActionsCompleted.ts +12 -0
  211. package/src/postOnboarding/hooks/usePostOnboardingContext.ts +9 -0
  212. package/src/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.test.ts +83 -0
  213. package/src/postOnboarding/hooks/usePostOnboardingEntryPointVisibleOnWallet.ts +22 -0
  214. package/src/postOnboarding/hooks/usePostOnboardingHubState.test.ts +184 -0
  215. package/src/postOnboarding/hooks/usePostOnboardingHubState.ts +56 -0
  216. package/src/postOnboarding/hooks/useStartPostOnboardingCallback.ts +38 -0
  217. package/src/postOnboarding/mock.ts +53 -0
  218. package/src/postOnboarding/reducer.test.ts +247 -0
  219. package/src/postOnboarding/reducer.ts +105 -0
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ var _a, _b;
3
+ exports.__esModule = true;
4
+ var featureFlags_1 = require("../../featureFlags");
5
+ var reducer_1 = require("../reducer");
6
+ var usePostOnboardingContext_1 = require("./usePostOnboardingContext");
7
+ var mock_1 = require("../mock");
8
+ var react_hooks_1 = require("@testing-library/react-hooks");
9
+ var types_devices_1 = require("@ledgerhq/types-devices");
10
+ var types_live_1 = require("@ledgerhq/types-live");
11
+ var usePostOnboardingHubState_1 = require("./usePostOnboardingHubState");
12
+ jest.mock("react-redux", function () { return ({
13
+ useSelector: function (val) { return val(); }
14
+ }); });
15
+ jest.mock("../../featureFlags");
16
+ jest.mock("./usePostOnboardingContext");
17
+ jest.mock("../reducer");
18
+ var mockedUseFeatureFlags = jest.mocked(featureFlags_1.useFeatureFlags);
19
+ var mockedGetFeatureWithMockFeatureEnabled = function (enabled) { return ({
20
+ getFeature: function (id) {
21
+ if (id === mock_1.mockedFeatureIdToTest)
22
+ return { enabled: enabled };
23
+ return { enabled: true };
24
+ },
25
+ overrideFeature: function () { },
26
+ resetFeature: function () { }
27
+ }); };
28
+ var mockedUsePostOnboardingContext = jest.mocked(usePostOnboardingContext_1.usePostOnboardingContext);
29
+ var mockedHubStateSelector = jest.mocked(reducer_1.hubStateSelector);
30
+ var defaultHubState = {
31
+ deviceModelId: types_devices_1.DeviceModelId.nanoX,
32
+ actionsToComplete: [],
33
+ actionsCompleted: {},
34
+ lastActionCompleted: null
35
+ };
36
+ var stateAllCompleted = {
37
+ deviceModelId: types_devices_1.DeviceModelId.nanoX,
38
+ actionsToComplete: [
39
+ types_live_1.PostOnboardingActionId.claimMock,
40
+ types_live_1.PostOnboardingActionId.personalizeMock,
41
+ types_live_1.PostOnboardingActionId.migrateAssetsMock,
42
+ ],
43
+ actionsCompleted: (_a = {},
44
+ _a[types_live_1.PostOnboardingActionId.claimMock] = true,
45
+ _a[types_live_1.PostOnboardingActionId.personalizeMock] = true,
46
+ _a[types_live_1.PostOnboardingActionId.migrateAssetsMock] = true,
47
+ _a),
48
+ lastActionCompleted: types_live_1.PostOnboardingActionId.personalizeMock
49
+ };
50
+ var stateAllNotCompleted = {
51
+ deviceModelId: types_devices_1.DeviceModelId.nanoX,
52
+ actionsToComplete: [
53
+ types_live_1.PostOnboardingActionId.claimMock,
54
+ types_live_1.PostOnboardingActionId.personalizeMock,
55
+ types_live_1.PostOnboardingActionId.migrateAssetsMock,
56
+ ],
57
+ actionsCompleted: (_b = {},
58
+ _b[types_live_1.PostOnboardingActionId.claimMock] = false,
59
+ _b[types_live_1.PostOnboardingActionId.personalizeMock] = false,
60
+ _b[types_live_1.PostOnboardingActionId.migrateAssetsMock] = false,
61
+ _b),
62
+ lastActionCompleted: null
63
+ };
64
+ describe("usePostOnboardingHubState", function () {
65
+ beforeEach(function () {
66
+ mockedUseFeatureFlags.mockReturnValue(mockedGetFeatureWithMockFeatureEnabled(true));
67
+ mockedUsePostOnboardingContext.mockReturnValue({
68
+ getPostOnboardingActionsForDevice: function () { return []; },
69
+ navigateToPostOnboardingHub: function () { },
70
+ getPostOnboardingAction: mock_1.getPostOnboardingAction
71
+ });
72
+ });
73
+ it("should return an empty state if the context isn't properly set (`getPostOnboardingAction` missing)", function () {
74
+ var state = stateAllCompleted;
75
+ mockedHubStateSelector.mockReturnValue(state);
76
+ mockedUsePostOnboardingContext.mockReturnValue({
77
+ getPostOnboardingActionsForDevice: function () { return []; },
78
+ navigateToPostOnboardingHub: function () { },
79
+ getPostOnboardingAction: undefined
80
+ });
81
+ var result = (0, react_hooks_1.renderHook)(function () { return (0, usePostOnboardingHubState_1.usePostOnboardingHubState)(); }).result;
82
+ expect(result.current).toEqual({
83
+ deviceModelId: state.deviceModelId,
84
+ lastActionCompleted: null,
85
+ actionsState: []
86
+ });
87
+ });
88
+ it("should return an empty state if the store is in an empty state", function () {
89
+ var state = defaultHubState;
90
+ mockedHubStateSelector.mockReturnValue(state);
91
+ var result = (0, react_hooks_1.renderHook)(function () { return (0, usePostOnboardingHubState_1.usePostOnboardingHubState)(); }).result;
92
+ expect(result.current).toEqual({
93
+ deviceModelId: state.deviceModelId,
94
+ lastActionCompleted: null,
95
+ actionsState: []
96
+ });
97
+ });
98
+ it("should not return actions that have a disabled feature flag ", function () {
99
+ var state = stateAllCompleted;
100
+ mockedHubStateSelector.mockReturnValue(state);
101
+ mockedUseFeatureFlags.mockReturnValue(mockedGetFeatureWithMockFeatureEnabled(false));
102
+ var _a = (0, react_hooks_1.renderHook)(function () { return (0, usePostOnboardingHubState_1.usePostOnboardingHubState)(); }).result.current, actionsState = _a.actionsState, lastActionCompleted = _a.lastActionCompleted;
103
+ expect(actionsState.find(function (action) { return action.featureFlagId === mock_1.mockedFeatureIdToTest; })).toBe(undefined);
104
+ expect(lastActionCompleted).toBe(null);
105
+ });
106
+ it("should return actions that have a feature flag enabled", function () {
107
+ var state = stateAllCompleted;
108
+ mockedHubStateSelector.mockReturnValue(state);
109
+ mockedUseFeatureFlags.mockReturnValue(mockedGetFeatureWithMockFeatureEnabled(true));
110
+ var _a = (0, react_hooks_1.renderHook)(function () { return (0, usePostOnboardingHubState_1.usePostOnboardingHubState)(); }).result.current, actionsState = _a.actionsState, lastActionCompleted = _a.lastActionCompleted;
111
+ expect(actionsState.find(function (action) { return action.featureFlagId === mock_1.mockedFeatureIdToTest; })).toBeTruthy();
112
+ expect(lastActionCompleted).toBeTruthy();
113
+ });
114
+ it("should return actions in their correct state (all actions completed)", function () {
115
+ var state = stateAllCompleted;
116
+ mockedHubStateSelector.mockReturnValue(state);
117
+ mockedUseFeatureFlags.mockReturnValue(mockedGetFeatureWithMockFeatureEnabled(true));
118
+ var actionsState = (0, react_hooks_1.renderHook)(function () { return (0, usePostOnboardingHubState_1.usePostOnboardingHubState)(); }).result.current.actionsState;
119
+ expect(actionsState.every(function (action) { return action.completed; })).toBe(true);
120
+ });
121
+ it("should return actions in their correct state (no actions completed)", function () {
122
+ var state = stateAllNotCompleted;
123
+ mockedHubStateSelector.mockReturnValue(state);
124
+ mockedUseFeatureFlags.mockReturnValue(mockedGetFeatureWithMockFeatureEnabled(true));
125
+ var actionsState = (0, react_hooks_1.renderHook)(function () { return (0, usePostOnboardingHubState_1.usePostOnboardingHubState)(); }).result.current.actionsState;
126
+ expect(actionsState.every(function (action) { return action.completed; })).toBe(false);
127
+ });
128
+ });
129
+ //# sourceMappingURL=usePostOnboardingHubState.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePostOnboardingHubState.test.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/usePostOnboardingHubState.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { DeviceModelId } from "@ledgerhq/types-devices";
2
+ /**
3
+ * Use this to initialize AND navigate to the post onboarding hub for a given
4
+ * device model.
5
+ *
6
+ * @param deviceModelId
7
+ * @returns a function that can be called to initialize the post
8
+ * onboarding for the given device model and navigate to the post onboarding
9
+ * hub.
10
+ * TODO: unit test this
11
+ */
12
+ export declare function useStartPostOnboardingCallback(deviceModelId: DeviceModelId, mock?: boolean): () => void;
13
+ //# sourceMappingURL=useStartPostOnboardingCallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStartPostOnboardingCallback.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/useStartPostOnboardingCallback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAKxD;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,aAAa,EAC5B,IAAI,UAAQ,GACX,MAAM,IAAI,CAkBZ"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.useStartPostOnboardingCallback = void 0;
4
+ var react_redux_1 = require("react-redux");
5
+ var usePostOnboardingContext_1 = require("./usePostOnboardingContext");
6
+ var react_1 = require("react");
7
+ var actions_1 = require("../actions");
8
+ /**
9
+ * Use this to initialize AND navigate to the post onboarding hub for a given
10
+ * device model.
11
+ *
12
+ * @param deviceModelId
13
+ * @returns a function that can be called to initialize the post
14
+ * onboarding for the given device model and navigate to the post onboarding
15
+ * hub.
16
+ * TODO: unit test this
17
+ */
18
+ function useStartPostOnboardingCallback(deviceModelId, mock) {
19
+ if (mock === void 0) { mock = false; }
20
+ var dispatch = (0, react_redux_1.useDispatch)();
21
+ var _a = (0, usePostOnboardingContext_1.usePostOnboardingContext)(), getPostOnboardingActionsForDevice = _a.getPostOnboardingActionsForDevice, navigateToPostOnboardingHub = _a.navigateToPostOnboardingHub;
22
+ var actions = (0, react_1.useMemo)(function () { return getPostOnboardingActionsForDevice(deviceModelId, mock); }, [deviceModelId, mock, getPostOnboardingActionsForDevice]);
23
+ return (0, react_1.useCallback)(function () {
24
+ dispatch((0, actions_1.initPostOnboarding)({
25
+ deviceModelId: deviceModelId,
26
+ actionsIds: actions.map(function (action) { return action.id; })
27
+ }));
28
+ if (actions.length === 0)
29
+ return;
30
+ navigateToPostOnboardingHub();
31
+ }, [actions, deviceModelId, dispatch, navigateToPostOnboardingHub]);
32
+ }
33
+ exports.useStartPostOnboardingCallback = useStartPostOnboardingCallback;
34
+ //# sourceMappingURL=useStartPostOnboardingCallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStartPostOnboardingCallback.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/useStartPostOnboardingCallback.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAE1C,uEAAsE;AACtE,+BAA6C;AAC7C,sCAAgD;AAEhD;;;;;;;;;GASG;AACH,SAAgB,8BAA8B,CAC5C,aAA4B,EAC5B,IAAY;IAAZ,qBAAA,EAAA,YAAY;IAEZ,IAAM,QAAQ,GAAG,IAAA,yBAAW,GAAE,CAAC;IACzB,IAAA,KACJ,IAAA,mDAAwB,GAAE,EADpB,iCAAiC,uCAAA,EAAE,2BAA2B,iCAC1C,CAAC;IAC7B,IAAM,OAAO,GAAG,IAAA,eAAO,EACrB,cAAM,OAAA,iCAAiC,CAAC,aAAa,EAAE,IAAI,CAAC,EAAtD,CAAsD,EAC5D,CAAC,aAAa,EAAE,IAAI,EAAE,iCAAiC,CAAC,CACzD,CAAC;IACF,OAAO,IAAA,mBAAW,EAAC;QACjB,QAAQ,CACN,IAAA,4BAAkB,EAAC;YACjB,aAAa,eAAA;YACb,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,EAAE,EAAT,CAAS,CAAC;SAC/C,CAAC,CACH,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,2BAA2B,EAAE,CAAC;IAChC,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,2BAA2B,CAAC,CAAC,CAAC;AACtE,CAAC;AArBD,wEAqBC"}
@@ -0,0 +1,8 @@
1
+ /** mocks for unit tests */
2
+ import { FeatureId, PostOnboardingAction, PostOnboardingActionId } from "@ledgerhq/types-live";
3
+ export declare const mockedFeatureIdToTest: FeatureId;
4
+ export declare const claimTestMock: PostOnboardingAction;
5
+ export declare const personalizeTestMock: PostOnboardingAction;
6
+ export declare const migrateAssetsTestMock: PostOnboardingAction;
7
+ export declare function getPostOnboardingAction(id: PostOnboardingActionId): PostOnboardingAction;
8
+ //# sourceMappingURL=mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../src/postOnboarding/mock.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAI9B,eAAO,MAAM,qBAAqB,EAAE,SAAyB,CAAC;AAE9D,eAAO,MAAM,aAAa,EAAE,oBAS3B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,oBASjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,oBAQnC,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,sBAAsB,GACzB,oBAAoB,CAMtB"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /** mocks for unit tests */
3
+ exports.__esModule = true;
4
+ exports.getPostOnboardingAction = exports.migrateAssetsTestMock = exports.personalizeTestMock = exports.claimTestMock = exports.mockedFeatureIdToTest = void 0;
5
+ var types_live_1 = require("@ledgerhq/types-live");
6
+ var MockIcon = function () { return null; };
7
+ exports.mockedFeatureIdToTest = "mockFeature";
8
+ exports.claimTestMock = {
9
+ id: types_live_1.PostOnboardingActionId.claimMock,
10
+ Icon: MockIcon,
11
+ title: "Claim my NFT",
12
+ description: "A special NFT for you.",
13
+ tagLabel: "Free",
14
+ actionCompletedPopupLabel: "NFT claimed",
15
+ actionCompletedHubTitle: "Kickstart your Web3 journey.",
16
+ navigationParams: []
17
+ };
18
+ exports.personalizeTestMock = {
19
+ id: types_live_1.PostOnboardingActionId.personalizeMock,
20
+ Icon: MockIcon,
21
+ featureFlagId: exports.mockedFeatureIdToTest,
22
+ title: "Personalize my device",
23
+ description: "By customizing the screen.",
24
+ actionCompletedPopupLabel: "Device personalized",
25
+ actionCompletedHubTitle: "That screen is looking neat.",
26
+ navigationParams: []
27
+ };
28
+ exports.migrateAssetsTestMock = {
29
+ id: types_live_1.PostOnboardingActionId.migrateAssetsMock,
30
+ Icon: MockIcon,
31
+ title: "Transfer assets to my Ledger",
32
+ description: "Easily secure assets from coinbase or another exchange.",
33
+ actionCompletedPopupLabel: "Assets transfered",
34
+ actionCompletedHubTitle: "Something about being a crypto pro.",
35
+ navigationParams: []
36
+ };
37
+ function getPostOnboardingAction(id) {
38
+ var _a;
39
+ return (_a = {},
40
+ _a[types_live_1.PostOnboardingActionId.claimMock] = exports.claimTestMock,
41
+ _a[types_live_1.PostOnboardingActionId.personalizeMock] = exports.personalizeTestMock,
42
+ _a[types_live_1.PostOnboardingActionId.migrateAssetsMock] = exports.migrateAssetsTestMock,
43
+ _a)[id];
44
+ }
45
+ exports.getPostOnboardingAction = getPostOnboardingAction;
46
+ //# sourceMappingURL=mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock.js","sourceRoot":"","sources":["../../src/postOnboarding/mock.ts"],"names":[],"mappings":";AAAA,2BAA2B;;;AAE3B,mDAI8B;AAE9B,IAAM,QAAQ,GAAG,cAAY,OAAA,IAAI,EAAJ,CAAI,CAAC;AAErB,QAAA,qBAAqB,GAAc,aAAa,CAAC;AAEjD,QAAA,aAAa,GAAyB;IACjD,EAAE,EAAE,mCAAsB,CAAC,SAAS;IACpC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,wBAAwB;IACrC,QAAQ,EAAE,MAAM;IAChB,yBAAyB,EAAE,aAAa;IACxC,uBAAuB,EAAE,8BAA8B;IACvD,gBAAgB,EAAE,EAAE;CACrB,CAAC;AAEW,QAAA,mBAAmB,GAAyB;IACvD,EAAE,EAAE,mCAAsB,CAAC,eAAe;IAC1C,IAAI,EAAE,QAAQ;IACd,aAAa,EAAE,6BAAqB;IACpC,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EAAE,4BAA4B;IACzC,yBAAyB,EAAE,qBAAqB;IAChD,uBAAuB,EAAE,8BAA8B;IACvD,gBAAgB,EAAE,EAAE;CACrB,CAAC;AAEW,QAAA,qBAAqB,GAAyB;IACzD,EAAE,EAAE,mCAAsB,CAAC,iBAAiB;IAC5C,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,8BAA8B;IACrC,WAAW,EAAE,yDAAyD;IACtE,yBAAyB,EAAE,mBAAmB;IAC9C,uBAAuB,EAAE,qCAAqC;IAC9D,gBAAgB,EAAE,EAAE;CACrB,CAAC;AAEF,SAAgB,uBAAuB,CACrC,EAA0B;;IAE1B,OAAO;QACL,GAAC,mCAAsB,CAAC,SAAS,IAAG,qBAAa;QACjD,GAAC,mCAAsB,CAAC,eAAe,IAAG,2BAAmB;QAC7D,GAAC,mCAAsB,CAAC,iBAAiB,IAAG,6BAAqB;YACjE,EAAE,CAAC,CAAC;AACR,CAAC;AARD,0DAQC"}
@@ -0,0 +1,22 @@
1
+ import { PostOnboardingState } from "@ledgerhq/types-live";
2
+ export declare const initialState: PostOnboardingState;
3
+ declare const _default: any;
4
+ export default _default;
5
+ export declare const postOnboardingSelector: ({ postOnboarding, }: {
6
+ postOnboarding: PostOnboardingState;
7
+ }) => PostOnboardingState;
8
+ export declare const hubStateSelector: ({ postOnboarding, }: {
9
+ postOnboarding: PostOnboardingState;
10
+ }) => {
11
+ deviceModelId: PostOnboardingState["deviceModelId"];
12
+ actionsToComplete: PostOnboardingState["actionsToComplete"];
13
+ actionsCompleted: PostOnboardingState["actionsCompleted"];
14
+ lastActionCompleted: PostOnboardingState["lastActionCompleted"];
15
+ };
16
+ export declare const postOnboardingDeviceModelIdSelector: ({ postOnboarding, }: {
17
+ postOnboarding: PostOnboardingState;
18
+ }) => PostOnboardingState["deviceModelId"];
19
+ export declare const walletPostOnboardingEntryPointDismissedSelector: ({ postOnboarding, }: {
20
+ postOnboarding: PostOnboardingState;
21
+ }) => PostOnboardingState["walletEntryPointDismissed"];
22
+ //# sourceMappingURL=reducer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../src/postOnboarding/reducer.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAG9B,eAAO,MAAM,YAAY,EAAE,mBAM1B,CAAC;;AAgDF,wBAAqD;AAErD,eAAO,MAAM,sBAAsB;oBAGjB,mBAAmB;MACjC,mBAAqC,CAAC;AAE1C,eAAO,MAAM,gBAAgB;oBAGX,mBAAmB;;mBAEpB,mBAAmB,CAAC,eAAe,CAAC;uBAChC,mBAAmB,CAAC,mBAAmB,CAAC;sBACzC,mBAAmB,CAAC,kBAAkB,CAAC;yBACpC,mBAAmB,CAAC,qBAAqB,CAAC;CAchE,CAAC;AAEF,eAAO,MAAM,mCAAmC;oBAG9B,mBAAmB;MACjC,mBAAmB,CAAC,eAAe,CAAiC,CAAC;AAEzE,eAAO,MAAM,+CAA+C;oBAG1C,mBAAmB;MACjC,mBAAmB,CAAC,2BAA2B,CACT,CAAC"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ exports.__esModule = true;
14
+ exports.walletPostOnboardingEntryPointDismissedSelector = exports.postOnboardingDeviceModelIdSelector = exports.hubStateSelector = exports.postOnboardingSelector = exports.initialState = void 0;
15
+ var redux_actions_1 = require("redux-actions");
16
+ exports.initialState = {
17
+ deviceModelId: null,
18
+ walletEntryPointDismissed: false,
19
+ actionsToComplete: [],
20
+ actionsCompleted: {},
21
+ lastActionCompleted: null
22
+ };
23
+ var handlers = {
24
+ POST_ONBOARDING_IMPORT_STATE: function (_, action) { return action.newState; },
25
+ POST_ONBOARDING_INIT: function (_, action) {
26
+ var deviceModelId = action.deviceModelId, actionsIds = action.actionsIds;
27
+ return {
28
+ deviceModelId: deviceModelId,
29
+ walletEntryPointDismissed: false,
30
+ actionsToComplete: actionsIds,
31
+ actionsCompleted: Object.fromEntries(actionsIds.map(function (id) { return [id, false]; })),
32
+ lastActionCompleted: null
33
+ };
34
+ },
35
+ POST_ONBOARDING_SET_ACTION_COMPLETED: function (state, action) {
36
+ var _a;
37
+ var actionId = action.actionId;
38
+ var actionsCompleted = __assign(__assign({}, state.actionsCompleted), (_a = {}, _a[actionId] = true, _a));
39
+ return __assign(__assign({}, state), { actionsCompleted: actionsCompleted, lastActionCompleted: actionId });
40
+ },
41
+ POST_ONBOARDING_CLEAR_LAST_ACTION_COMPLETED: function (state) { return (__assign(__assign({}, state), { lastActionCompleted: null })); },
42
+ POST_ONBOARDING_HIDE_WALLET_ENTRY_POINT: function (state) { return (__assign(__assign({}, state), { walletEntryPointDismissed: true })); }
43
+ };
44
+ exports["default"] = (0, redux_actions_1.handleActions)(handlers, exports.initialState);
45
+ var postOnboardingSelector = function (_a) {
46
+ var postOnboarding = _a.postOnboarding;
47
+ return postOnboarding;
48
+ };
49
+ exports.postOnboardingSelector = postOnboardingSelector;
50
+ var hubStateSelector = function (_a) {
51
+ var postOnboarding = _a.postOnboarding;
52
+ var deviceModelId = postOnboarding.deviceModelId, actionsToComplete = postOnboarding.actionsToComplete, actionsCompleted = postOnboarding.actionsCompleted, lastActionCompleted = postOnboarding.lastActionCompleted;
53
+ return {
54
+ deviceModelId: deviceModelId,
55
+ actionsToComplete: actionsToComplete,
56
+ actionsCompleted: actionsCompleted,
57
+ lastActionCompleted: lastActionCompleted
58
+ };
59
+ };
60
+ exports.hubStateSelector = hubStateSelector;
61
+ var postOnboardingDeviceModelIdSelector = function (_a) {
62
+ var postOnboarding = _a.postOnboarding;
63
+ return postOnboarding.deviceModelId;
64
+ };
65
+ exports.postOnboardingDeviceModelIdSelector = postOnboardingDeviceModelIdSelector;
66
+ var walletPostOnboardingEntryPointDismissedSelector = function (_a) {
67
+ var postOnboarding = _a.postOnboarding;
68
+ return postOnboarding.walletEntryPointDismissed;
69
+ };
70
+ exports.walletPostOnboardingEntryPointDismissedSelector = walletPostOnboardingEntryPointDismissedSelector;
71
+ //# sourceMappingURL=reducer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../src/postOnboarding/reducer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAKA,+CAA8C;AAEjC,QAAA,YAAY,GAAwB;IAC/C,aAAa,EAAE,IAAI;IACnB,yBAAyB,EAAE,KAAK;IAChC,iBAAiB,EAAE,EAAE;IACrB,gBAAgB,EAAE,EAAE;IACpB,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEF,IAAM,QAAQ,GAGV;IACF,4BAA4B,EAAE,UAC5B,CAAC,EACD,MAAyC,IACjB,OAAA,MAAM,CAAC,QAA+B,EAAtC,CAAsC;IAChE,oBAAoB,EAAE,UACpB,CAAC,EACD,MAGC;QAEO,IAAA,aAAa,GAAiB,MAAM,cAAvB,EAAE,UAAU,GAAK,MAAM,WAAX,CAAY;QAC7C,OAAO;YACL,aAAa,eAAA;YACb,yBAAyB,EAAE,KAAK;YAChC,iBAAiB,EAAE,UAAU;YAC7B,gBAAgB,EAAE,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,UAAC,EAAE,IAAK,OAAA,CAAC,EAAE,EAAE,KAAK,CAAC,EAAX,CAAW,CAAC,CAAC;YACzE,mBAAmB,EAAE,IAAI;SAC1B,CAAC;IACJ,CAAC;IACD,oCAAoC,EAAE,UACpC,KAAK,EACL,MAA4C;;QAEpC,IAAA,QAAQ,GAAK,MAAM,SAAX,CAAY;QAC5B,IAAM,gBAAgB,yBAAQ,KAAK,CAAC,gBAAgB,gBAAG,QAAQ,IAAG,IAAI,MAAE,CAAC;QACzE,6BACK,KAAK,KACR,gBAAgB,kBAAA,EAChB,mBAAmB,EAAE,QAAQ,IAC7B;IACJ,CAAC;IACD,2CAA2C,EAAE,UAAC,KAAK,IAAK,OAAA,uBACnD,KAAK,KACR,mBAAmB,EAAE,IAAI,IACzB,EAHsD,CAGtD;IACF,uCAAuC,EAAE,UAAC,KAAK,IAAK,OAAA,uBAC/C,KAAK,KACR,yBAAyB,EAAE,IAAI,IAC/B,EAHkD,CAGlD;CACH,CAAC;AAEF,qBAAe,IAAA,6BAAa,EAAC,QAAQ,EAAE,oBAAY,CAAC,CAAC;AAE9C,IAAM,sBAAsB,GAAG,UAAC,EAItC;QAHC,cAAc,oBAAA;IAGW,OAAA,cAAc;AAAd,CAAc,CAAC;AAJ7B,QAAA,sBAAsB,0BAIO;AAEnC,IAAM,gBAAgB,GAAG,UAAC,EAIhC;QAHC,cAAc,oBAAA;IAUZ,IAAA,aAAa,GAIX,cAAc,cAJH,EACb,iBAAiB,GAGf,cAAc,kBAHC,EACjB,gBAAgB,GAEd,cAAc,iBAFA,EAChB,mBAAmB,GACjB,cAAc,oBADG,CACF;IACnB,OAAO;QACL,aAAa,eAAA;QACb,iBAAiB,mBAAA;QACjB,gBAAgB,kBAAA;QAChB,mBAAmB,qBAAA;KACpB,CAAC;AACJ,CAAC,CAAC;AAtBW,QAAA,gBAAgB,oBAsB3B;AAEK,IAAM,mCAAmC,GAAG,UAAC,EAInD;QAHC,cAAc,oBAAA;IAG4B,OAAA,cAAc,CAAC,aAAa;AAA5B,CAA4B,CAAC;AAJ5D,QAAA,mCAAmC,uCAIyB;AAElE,IAAM,+CAA+C,GAAG,UAAC,EAI/D;QAHC,cAAc,oBAAA;IAId,OAAA,cAAc,CAAC,yBAAyB;AAAxC,CAAwC,CAAC;AAL9B,QAAA,+CAA+C,mDAKjB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reducer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.test.d.ts","sourceRoot":"","sources":["../../src/postOnboarding/reducer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,251 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __read = (this && this.__read) || function (o, n) {
26
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
27
+ if (!m) return o;
28
+ var i = m.call(o), r, ar = [], e;
29
+ try {
30
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
31
+ }
32
+ catch (error) { e = { error: error }; }
33
+ finally {
34
+ try {
35
+ if (r && !r.done && (m = i["return"])) m.call(i);
36
+ }
37
+ finally { if (e) throw e.error; }
38
+ }
39
+ return ar;
40
+ };
41
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
42
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
43
+ if (ar || !(i in from)) {
44
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
45
+ ar[i] = from[i];
46
+ }
47
+ }
48
+ return to.concat(ar || Array.prototype.slice.call(from));
49
+ };
50
+ var _a, _b, _c, _d, _e, _f, _g;
51
+ exports.__esModule = true;
52
+ var types_devices_1 = require("@ledgerhq/types-devices");
53
+ var types_live_1 = require("@ledgerhq/types-live");
54
+ var reducer_1 = __importStar(require("./reducer"));
55
+ var actions_1 = require("./actions");
56
+ var initializationParamsA = [
57
+ {
58
+ deviceModelId: types_devices_1.DeviceModelId.nanoX,
59
+ actionsIds: [
60
+ types_live_1.PostOnboardingActionId.claimMock,
61
+ types_live_1.PostOnboardingActionId.migrateAssetsMock,
62
+ types_live_1.PostOnboardingActionId.personalizeMock,
63
+ ]
64
+ },
65
+ ];
66
+ // initialState -> importPostOnboardingState(...initializationParamsA)
67
+ var stateA0 = {
68
+ deviceModelId: types_devices_1.DeviceModelId.nanoX,
69
+ walletEntryPointDismissed: false,
70
+ actionsToComplete: [
71
+ types_live_1.PostOnboardingActionId.claimMock,
72
+ types_live_1.PostOnboardingActionId.migrateAssetsMock,
73
+ types_live_1.PostOnboardingActionId.personalizeMock,
74
+ ],
75
+ actionsCompleted: (_a = {},
76
+ _a[types_live_1.PostOnboardingActionId.claimMock] = false,
77
+ _a[types_live_1.PostOnboardingActionId.migrateAssetsMock] = false,
78
+ _a[types_live_1.PostOnboardingActionId.personalizeMock] = false,
79
+ _a),
80
+ lastActionCompleted: null
81
+ };
82
+ // stateA0 -> setPostOnboardingActionCompleted(claimMock)
83
+ var stateA1 = {
84
+ deviceModelId: types_devices_1.DeviceModelId.nanoX,
85
+ walletEntryPointDismissed: false,
86
+ actionsToComplete: [
87
+ types_live_1.PostOnboardingActionId.claimMock,
88
+ types_live_1.PostOnboardingActionId.migrateAssetsMock,
89
+ types_live_1.PostOnboardingActionId.personalizeMock,
90
+ ],
91
+ actionsCompleted: (_b = {},
92
+ _b[types_live_1.PostOnboardingActionId.claimMock] = true,
93
+ _b[types_live_1.PostOnboardingActionId.migrateAssetsMock] = false,
94
+ _b[types_live_1.PostOnboardingActionId.personalizeMock] = false,
95
+ _b),
96
+ lastActionCompleted: types_live_1.PostOnboardingActionId.claimMock
97
+ };
98
+ // stateA1 -> clearPostOnboardingLastActionCompleted()
99
+ var stateA2 = {
100
+ deviceModelId: types_devices_1.DeviceModelId.nanoX,
101
+ walletEntryPointDismissed: false,
102
+ actionsToComplete: [
103
+ types_live_1.PostOnboardingActionId.claimMock,
104
+ types_live_1.PostOnboardingActionId.migrateAssetsMock,
105
+ types_live_1.PostOnboardingActionId.personalizeMock,
106
+ ],
107
+ actionsCompleted: (_c = {},
108
+ _c[types_live_1.PostOnboardingActionId.claimMock] = true,
109
+ _c[types_live_1.PostOnboardingActionId.migrateAssetsMock] = false,
110
+ _c[types_live_1.PostOnboardingActionId.personalizeMock] = false,
111
+ _c),
112
+ lastActionCompleted: null
113
+ };
114
+ // stateA2 -> setPostOnboardingActionCompleted(personalizeMock)
115
+ var stateA3 = {
116
+ deviceModelId: types_devices_1.DeviceModelId.nanoX,
117
+ walletEntryPointDismissed: false,
118
+ actionsToComplete: [
119
+ types_live_1.PostOnboardingActionId.claimMock,
120
+ types_live_1.PostOnboardingActionId.migrateAssetsMock,
121
+ types_live_1.PostOnboardingActionId.personalizeMock,
122
+ ],
123
+ actionsCompleted: (_d = {},
124
+ _d[types_live_1.PostOnboardingActionId.claimMock] = true,
125
+ _d[types_live_1.PostOnboardingActionId.migrateAssetsMock] = false,
126
+ _d[types_live_1.PostOnboardingActionId.personalizeMock] = true,
127
+ _d),
128
+ lastActionCompleted: types_live_1.PostOnboardingActionId.personalizeMock
129
+ };
130
+ // stateA3 -> hidePostOnboardingWalletEntryPoint()
131
+ var stateA4 = {
132
+ deviceModelId: types_devices_1.DeviceModelId.nanoX,
133
+ walletEntryPointDismissed: true,
134
+ actionsToComplete: [
135
+ types_live_1.PostOnboardingActionId.claimMock,
136
+ types_live_1.PostOnboardingActionId.migrateAssetsMock,
137
+ types_live_1.PostOnboardingActionId.personalizeMock,
138
+ ],
139
+ actionsCompleted: (_e = {},
140
+ _e[types_live_1.PostOnboardingActionId.claimMock] = true,
141
+ _e[types_live_1.PostOnboardingActionId.migrateAssetsMock] = false,
142
+ _e[types_live_1.PostOnboardingActionId.personalizeMock] = true,
143
+ _e),
144
+ lastActionCompleted: types_live_1.PostOnboardingActionId.personalizeMock
145
+ };
146
+ var initializationParamsB = [
147
+ {
148
+ deviceModelId: types_devices_1.DeviceModelId.nanoS,
149
+ actionsIds: [types_live_1.PostOnboardingActionId.claimMock]
150
+ },
151
+ ];
152
+ // initialState -> importPostOnboardingState(...initializationParamsB)
153
+ var stateB0 = {
154
+ deviceModelId: types_devices_1.DeviceModelId.nanoS,
155
+ walletEntryPointDismissed: false,
156
+ actionsToComplete: [types_live_1.PostOnboardingActionId.claimMock],
157
+ actionsCompleted: (_f = {}, _f[types_live_1.PostOnboardingActionId.claimMock] = false, _f),
158
+ lastActionCompleted: null
159
+ };
160
+ // stateB0 -> setPostOnboardingActionCompleted(claimMock)
161
+ var stateB1 = {
162
+ deviceModelId: types_devices_1.DeviceModelId.nanoS,
163
+ walletEntryPointDismissed: false,
164
+ actionsToComplete: [types_live_1.PostOnboardingActionId.claimMock],
165
+ actionsCompleted: (_g = {}, _g[types_live_1.PostOnboardingActionId.claimMock] = true, _g),
166
+ lastActionCompleted: types_live_1.PostOnboardingActionId.claimMock
167
+ };
168
+ var initializationParamsC = [
169
+ {
170
+ deviceModelId: types_devices_1.DeviceModelId.nanoSP,
171
+ actionsIds: []
172
+ },
173
+ ];
174
+ // initialState -> importPostOnboardingState(...initializationParamsC)
175
+ var stateC0 = {
176
+ deviceModelId: types_devices_1.DeviceModelId.nanoSP,
177
+ walletEntryPointDismissed: false,
178
+ actionsToComplete: [],
179
+ actionsCompleted: {},
180
+ lastActionCompleted: null
181
+ };
182
+ describe("postOnboarding reducer (& action creators)", function () {
183
+ var state;
184
+ beforeEach(function () {
185
+ // reset state to initial state;
186
+ state = (0, reducer_1["default"])(undefined, {});
187
+ });
188
+ it("should initialize the state properly", function () {
189
+ expect(state).toEqual(reducer_1.initialState);
190
+ });
191
+ it("should handle importPostOnboardingState", function () {
192
+ state = (0, reducer_1["default"])(state, (0, actions_1.importPostOnboardingState)({ newState: stateA0 }));
193
+ expect(state).toEqual(stateA0);
194
+ state = (0, reducer_1["default"])(state, (0, actions_1.importPostOnboardingState)({ newState: stateA1 }));
195
+ expect(state).toEqual(stateA1);
196
+ });
197
+ it("it should handle initPostOnboarding", function () {
198
+ state = (0, reducer_1["default"])(state, actions_1.initPostOnboarding.apply(void 0, __spreadArray([], __read(initializationParamsA), false)));
199
+ expect(state).toEqual(stateA0);
200
+ });
201
+ it("it should handle setPostOnboardingActionCompleted", function () {
202
+ state = stateA0;
203
+ state = (0, reducer_1["default"])(state, (0, actions_1.setPostOnboardingActionCompleted)({
204
+ actionId: types_live_1.PostOnboardingActionId.claimMock
205
+ }));
206
+ expect(state).toEqual(stateA1);
207
+ });
208
+ it("it should handle clearPostOnboardingLastActionCompleted", function () {
209
+ state = stateA1;
210
+ state = (0, reducer_1["default"])(state, (0, actions_1.clearPostOnboardingLastActionCompleted)());
211
+ expect(state).toEqual(stateA2);
212
+ });
213
+ it("it should handle hidePostOnboardingWalletEntryPoint", function () {
214
+ state = stateA3;
215
+ state = (0, reducer_1["default"])(state, (0, actions_1.hidePostOnboardingWalletEntryPoint)());
216
+ expect(state).toEqual(stateA4);
217
+ });
218
+ it("it should handle successive actions properly", function () {
219
+ // initializing state with new device & set of actions
220
+ state = (0, reducer_1["default"])(state, actions_1.initPostOnboarding.apply(void 0, __spreadArray([], __read(initializationParamsA), false)));
221
+ expect(state).toEqual(stateA0);
222
+ // setting completed for claimMock
223
+ state = (0, reducer_1["default"])(state, (0, actions_1.setPostOnboardingActionCompleted)({
224
+ actionId: types_live_1.PostOnboardingActionId.claimMock
225
+ }));
226
+ expect(state).toEqual(stateA1);
227
+ // clearing last completed action
228
+ state = (0, reducer_1["default"])(state, (0, actions_1.clearPostOnboardingLastActionCompleted)());
229
+ expect(state).toEqual(stateA2);
230
+ // setting completed for personalizeMock
231
+ state = (0, reducer_1["default"])(state, (0, actions_1.setPostOnboardingActionCompleted)({
232
+ actionId: types_live_1.PostOnboardingActionId.personalizeMock
233
+ }));
234
+ expect(state).toEqual(stateA3);
235
+ // hiding wallet entrypoint
236
+ state = (0, reducer_1["default"])(state, (0, actions_1.hidePostOnboardingWalletEntryPoint)());
237
+ expect(state).toEqual(stateA4);
238
+ // initializing state with new device & set of actions
239
+ state = (0, reducer_1["default"])(state, actions_1.initPostOnboarding.apply(void 0, __spreadArray([], __read(initializationParamsB), false)));
240
+ expect(state).toEqual(stateB0);
241
+ // setting completed for claimMock
242
+ state = (0, reducer_1["default"])(state, (0, actions_1.setPostOnboardingActionCompleted)({
243
+ actionId: types_live_1.PostOnboardingActionId.claimMock
244
+ }));
245
+ expect(state).toEqual(stateB1);
246
+ // initializing state with new device & set of actions
247
+ state = (0, reducer_1["default"])(state, actions_1.initPostOnboarding.apply(void 0, __spreadArray([], __read(initializationParamsC), false)));
248
+ expect(state).toEqual(stateC0);
249
+ });
250
+ });
251
+ //# sourceMappingURL=reducer.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.test.js","sourceRoot":"","sources":["../../src/postOnboarding/reducer.test.ts"],"names":[],"mappings":"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"}