@applicaster/zapp-react-native-utils 16.0.0-alpha.2663208063 → 16.0.0-alpha.2710214351

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 (138) hide show
  1. package/actionUtils/index.ts +3 -1
  2. package/actionsExecutor/ActionExecutor.ts +10 -1
  3. package/actionsExecutor/ActionExecutorContext.tsx +29 -1
  4. package/actionsExecutor/__tests__/ActionExecutor.test.ts +71 -0
  5. package/actionsExecutor/__tests__/StorageActions.test.ts +98 -0
  6. package/actionsExecutor/__tests__/feedDecorator.test.ts +91 -0
  7. package/actionsExecutor/__tests__/screenToggleFlag.test.ts +90 -0
  8. package/actionsExecutor/actions/__tests__/dismissBottomSheet.test.ts +3 -0
  9. package/actionsExecutor/actions/__tests__/goBack.test.ts +62 -0
  10. package/actionsExecutor/actions/__tests__/goHome.test.ts +19 -0
  11. package/actionsExecutor/actions/__tests__/navigateToScreen.test.ts +267 -0
  12. package/actionsExecutor/actions/__tests__/openBottomSheet.customContent.test.ts +24 -0
  13. package/actionsExecutor/actions/__tests__/openBottomSheet.inlineItems.test.ts +273 -1
  14. package/actionsExecutor/actions/__tests__/presentScreen.test.ts +127 -0
  15. package/actionsExecutor/actions/__tests__/showAlert.test.ts +49 -0
  16. package/actionsExecutor/actions/__tests__/showToast.test.ts +2 -2
  17. package/actionsExecutor/actions/dismissBottomSheet.ts +2 -1
  18. package/actionsExecutor/actions/goBack.ts +60 -0
  19. package/actionsExecutor/actions/goHome.ts +31 -0
  20. package/actionsExecutor/actions/index.ts +8 -0
  21. package/actionsExecutor/actions/navigateToScreen.ts +43 -45
  22. package/actionsExecutor/actions/openBottomSheet.ts +36 -16
  23. package/actionsExecutor/actions/presentScreen.ts +78 -0
  24. package/actionsExecutor/actions/screenToggleFlag.ts +1 -3
  25. package/actionsExecutor/actions/showAlert.ts +51 -0
  26. package/actionsExecutor/actions/showToast.ts +2 -2
  27. package/actionsExecutor/consts.ts +4 -0
  28. package/actionsExecutor/feedDecorator.ts +12 -6
  29. package/appUtils/contextKeysManager/__tests__/getKey/failure.test.ts +1 -22
  30. package/appUtils/contextKeysManager/__tests__/getKey/success/fullSearch.test.ts +1 -25
  31. package/appUtils/contextKeysManager/__tests__/getKey/success/searchInSecure.test.ts +1 -7
  32. package/appUtils/contextKeysManager/__tests__/removeKey/failure.test.ts +0 -25
  33. package/appUtils/contextKeysManager/__tests__/removeKey/success.test.ts +0 -6
  34. package/appUtils/contextKeysManager/__tests__/setKey/failure/failedToSaveInStorage.test.ts +0 -40
  35. package/appUtils/contextKeysManager/__tests__/setKey/{success/saveItemAndReference.test.ts → success.test.ts} +2 -42
  36. package/appUtils/contextKeysManager/index.ts +28 -129
  37. package/appUtils/playerManager/OverlayObserver/OverlaysObserver.ts +4 -11
  38. package/appUtils/playerManager/OverlayObserver/__tests__/getUpcomingQueue.test.ts +67 -0
  39. package/appUtils/playerManager/OverlayObserver/__tests__/utils.test.ts +9 -2
  40. package/appUtils/playerManager/OverlayObserver/getUpcomingQueue.android.tv.ts +4 -1
  41. package/appUtils/playerManager/OverlayObserver/getUpcomingQueue.ios.tv.ts +4 -1
  42. package/appUtils/playerManager/OverlayObserver/getUpcomingQueue.ts +21 -2
  43. package/appUtils/playerManager/OverlayObserver/getUpcomingQueue.web.ts +4 -1
  44. package/appUtils/playerManager/OverlayObserver/utils.ts +9 -7
  45. package/appUtils/playerManager/__tests__/playerDiagnostics.test.ts +62 -0
  46. package/appUtils/playerManager/__tests__/playerNative.test.ts +114 -0
  47. package/appUtils/playerManager/__tests__/playerNativeCommand.test.ts +62 -0
  48. package/appUtils/playerManager/__tests__/playerToolbox.test.ts +281 -0
  49. package/appUtils/playerManager/__tests__/usePlayerControllerSetup.test.tsx +62 -0
  50. package/appUtils/playerManager/const.ts +13 -0
  51. package/appUtils/playerManager/index.ts +7 -0
  52. package/appUtils/playerManager/player.ts +25 -0
  53. package/appUtils/playerManager/playerNative.ts +27 -3
  54. package/appUtils/playerManager/playerNativeCommand.ts +3 -6
  55. package/appUtils/playerManager/playerToolbox.ts +196 -0
  56. package/appUtils/playerManager/usePlayerControllerSetup.tsx +6 -0
  57. package/arrayUtils/__tests__/reorderByIds.test.ts +13 -0
  58. package/arrayUtils/index.ts +26 -43
  59. package/cellUtils/__tests__/getButtonsEnabled.test.ts +28 -0
  60. package/cellUtils/__tests__/getCellNavigationEnabled.test.ts +36 -0
  61. package/cellUtils/__tests__/getIsCellNavigationEnabled.test.ts +35 -0
  62. package/cellUtils/__tests__/isCellNavigationEnabled.test.ts +21 -0
  63. package/cellUtils/index.ts +70 -3
  64. package/configurationUtils/__tests__/manifestKeyParser.test.ts +21 -0
  65. package/configurationUtils/__tests__/modalBlocksParser.test.ts +297 -1
  66. package/configurationUtils/manifestKeyParser.ts +12 -1
  67. package/configurationUtils/modalBlocksParser.ts +78 -4
  68. package/entryActions/__tests__/buildEntryActions.test.ts +235 -0
  69. package/entryActions/aliasPresentation.ts +108 -0
  70. package/entryActions/buildEntryActions.ts +167 -0
  71. package/entryActions/index.ts +15 -0
  72. package/entryActions/types.ts +39 -0
  73. package/focusManager/FocusManager.ts +26 -0
  74. package/focusManager/__tests__/FocusManager.test.ts +9 -0
  75. package/localizationUtils/index.ts +12 -6
  76. package/logger/__tests__/xrayToolbox.test.ts +69 -0
  77. package/logger/xrayToolbox.ts +67 -0
  78. package/manifestUtils/_internals/index.js +8 -3
  79. package/manifestUtils/defaultManifestConfigurations/generalContent.js +6 -0
  80. package/manifestUtils/defaultManifestConfigurations/player.js +30 -1
  81. package/manifestUtils/keys.js +7 -2
  82. package/manifestUtils/mobileAction/container/__tests__/mobileActionButtonsContainer.test.js +21 -0
  83. package/manifestUtils/mobileAction/groups/__tests__/buildMobileActionButtonGroups.test.js +1 -1
  84. package/manifestUtils/mobileAction/groups/defaults.js +2 -1
  85. package/modalState/ModalOrchestrator.ts +23 -9
  86. package/modalState/RemoteEditableCollection.ts +9 -1
  87. package/modalState/__tests__/ModalOrchestrator.phase3.test.ts +39 -0
  88. package/modalState/__tests__/RemoteEditableCollection.test.ts +90 -1
  89. package/modalState/__tests__/index.test.ts +30 -1
  90. package/modalState/__tests__/useModalStoreState.test.ts +142 -0
  91. package/modalState/index.ts +8 -1
  92. package/modalState/store.ts +9 -2
  93. package/modalState/types.ts +42 -2
  94. package/modalState/useBottomSheetContent.ts +24 -17
  95. package/navigationUtils/xrayNavigator.ts +12 -0
  96. package/package.json +3 -2
  97. package/playerUtils/__tests__/resolvePlayerActions.test.ts +138 -0
  98. package/playerUtils/index.ts +17 -1
  99. package/playerUtils/resolvePlayerActions.ts +71 -0
  100. package/pluginUtils/__tests__/pluginUtils.test.js +32 -0
  101. package/pluginUtils/index.ts +29 -0
  102. package/quickBrickAssets/__tests__/index.test.ts +18 -0
  103. package/quickBrickAssets/index.ts +35 -0
  104. package/reactHooks/__tests__/getPluginConfiguration.test.ts +82 -0
  105. package/reactHooks/actions/index.ts +74 -3
  106. package/reactHooks/cell-click/__tests__/index.test.js +64 -0
  107. package/reactHooks/cell-click/index.ts +21 -14
  108. package/reactHooks/connection/index.tsx +8 -5
  109. package/reactHooks/feed/__tests__/feedInvalidation.test.tsx +338 -0
  110. package/reactHooks/feed/__tests__/useBatchLoading.test.tsx +8 -2
  111. package/reactHooks/feed/__tests__/useMarkPipesDataStale.test.tsx +243 -0
  112. package/reactHooks/feed/useFeedLoader.tsx +28 -1
  113. package/reactHooks/feed/useLoadPipesDataDispatch.ts +12 -11
  114. package/reactHooks/feed/useMarkPipesDataStale.ts +68 -23
  115. package/reactHooks/navigation/__tests__/index.test.tsx +176 -1
  116. package/reactHooks/navigation/__tests__/usePresentScreen.test.ts +154 -0
  117. package/reactHooks/navigation/index.ts +2 -0
  118. package/reactHooks/navigation/usePresentScreen.ts +157 -0
  119. package/reactHooks/navigation/useRoute.ts +22 -5
  120. package/reactHooks/usePluginConfiguration.ts +84 -46
  121. package/riverComponetsMeasurementProvider/index.tsx +3 -1
  122. package/uiActionsRegistrator/__tests__/resolveActionIdentifiers.test.ts +93 -0
  123. package/uiActionsRegistrator/__tests__/subscribe.test.ts +133 -0
  124. package/uiActionsRegistrator/__tests__/usableActionItems.test.ts +52 -0
  125. package/uiActionsRegistrator/index.ts +25 -203
  126. package/uiActionsRegistrator/registry.ts +351 -0
  127. package/uiActionsRegistrator/resolveActionIdentifiers.ts +100 -0
  128. package/uiActionsRegistrator/usableActionItems.ts +66 -0
  129. package/appUtils/contextKeysManager/__tests__/getKey/success/byReference.test.ts +0 -56
  130. package/appUtils/contextKeysManager/__tests__/getKeyByReference/failure.test.ts +0 -265
  131. package/appUtils/contextKeysManager/__tests__/getKeyByReference/success.test.ts +0 -303
  132. package/appUtils/contextKeysManager/__tests__/removeReferenceForKey/failure.test.ts +0 -82
  133. package/appUtils/contextKeysManager/__tests__/removeReferenceForKey/success.test.ts +0 -41
  134. package/appUtils/contextKeysManager/__tests__/setKey/success/saveItemButNotReference.test.ts +0 -208
  135. package/appUtils/contextKeysManager/__tests__/setReferenceForKey/failure.test.ts +0 -93
  136. package/appUtils/contextKeysManager/__tests__/setReferenceForKey/success.test.ts +0 -45
  137. package/playerUtils/__tests__/getPlayerActionButtons.test.ts +0 -54
  138. package/playerUtils/getPlayerActionButtons.ts +0 -17
@@ -1,82 +0,0 @@
1
- import { ContextKeysManager, REFERENCE_NAMESPACE } from "../..";
2
- import { buildNamespaceKey } from "../../utils";
3
-
4
- describe("Context Keys Manager - removeReferenceForKey", () => {
5
- it("returns false if reference-storage throw error while removing", async () => {
6
- // setup
7
- const key = "key";
8
- const namespace = "namespace";
9
- const error = Error("oops");
10
-
11
- const mockedLogger = {
12
- warn: jest.fn(),
13
- };
14
-
15
- const mockedReferenceStorage = {
16
- getItem: jest.fn(),
17
- setItem: jest.fn(),
18
- removeItem: jest.fn().mockRejectedValueOnce(error),
19
- };
20
-
21
- const contextManager = new ContextKeysManager({
22
- logger: mockedLogger,
23
- referenceStorage: mockedReferenceStorage,
24
- });
25
-
26
- // run
27
- const result = await contextManager.removeReferenceForKey(key, namespace);
28
-
29
- // verify
30
- expect(result).toBe(false);
31
-
32
- expect(mockedLogger.warn).toHaveBeenCalledWith({
33
- message: error.message,
34
- data: { key, namespace },
35
- });
36
-
37
- expect(mockedReferenceStorage.getItem).not.toHaveBeenCalled();
38
- expect(mockedReferenceStorage.setItem).not.toHaveBeenCalled();
39
-
40
- expect(mockedReferenceStorage.removeItem).toHaveBeenCalledWith(
41
- buildNamespaceKey(key, namespace),
42
- REFERENCE_NAMESPACE
43
- );
44
- });
45
-
46
- it("returns true if reference-storage return non true as result", async () => {
47
- // setup
48
- const key = "key";
49
- const namespace = "namespace";
50
-
51
- const mockedLogger = {
52
- warn: jest.fn(),
53
- };
54
-
55
- const mockedReferenceStorage = {
56
- getItem: jest.fn(),
57
- setItem: jest.fn(),
58
- removeItem: jest.fn().mockResolvedValueOnce(undefined),
59
- };
60
-
61
- const contextManager = new ContextKeysManager({
62
- logger: mockedLogger,
63
- referenceStorage: mockedReferenceStorage,
64
- });
65
-
66
- // run
67
- const result = await contextManager.removeReferenceForKey(key, namespace);
68
-
69
- // verify
70
- expect(result).toBe(true);
71
-
72
- expect(mockedLogger.warn).not.toHaveBeenCalled();
73
-
74
- expect(mockedReferenceStorage.getItem).not.toHaveBeenCalled();
75
- expect(mockedReferenceStorage.setItem).not.toHaveBeenCalled();
76
-
77
- expect(mockedReferenceStorage.removeItem).toHaveBeenCalledWith(
78
- buildNamespaceKey(key, namespace),
79
- REFERENCE_NAMESPACE
80
- );
81
- });
82
- });
@@ -1,41 +0,0 @@
1
- import { ContextKeysManager, REFERENCE_NAMESPACE } from "../..";
2
- import { buildNamespaceKey } from "../../utils";
3
-
4
- describe("Context Keys Manager - removeReferenceForKey", () => {
5
- it("returns true if remove was succeed", async () => {
6
- // setup
7
- const key = "key";
8
- const namespace = "namespace";
9
-
10
- const mockedLogger = {
11
- warn: jest.fn(),
12
- };
13
-
14
- const mockedReferenceStorage = {
15
- getItem: jest.fn(),
16
- setItem: jest.fn(),
17
- removeItem: jest.fn().mockResolvedValueOnce(true),
18
- };
19
-
20
- const contextManager = new ContextKeysManager({
21
- logger: mockedLogger,
22
- referenceStorage: mockedReferenceStorage,
23
- });
24
-
25
- // run
26
- const result = await contextManager.removeReferenceForKey(key, namespace);
27
-
28
- // verify
29
- expect(result).toBe(true);
30
-
31
- expect(mockedLogger.warn).not.toHaveBeenCalled();
32
-
33
- expect(mockedReferenceStorage.getItem).not.toHaveBeenCalled();
34
- expect(mockedReferenceStorage.setItem).not.toHaveBeenCalled();
35
-
36
- expect(mockedReferenceStorage.removeItem).toHaveBeenCalledWith(
37
- buildNamespaceKey(key, namespace),
38
- REFERENCE_NAMESPACE
39
- );
40
- });
41
- });
@@ -1,208 +0,0 @@
1
- import { ContextKeysManager } from "../../..";
2
- import { StorageLevel } from "../../../consts";
3
-
4
- describe("Context Keys Manager - setKey", () => {
5
- it("returns true if saved item but not reference with storage-level=default", async () => {
6
- // setup
7
- const key = "namespace.key";
8
- const value = "value";
9
- const storageLevel = StorageLevel.default;
10
-
11
- const mockedLogger = {
12
- warn: jest.fn(),
13
- };
14
-
15
- const mockedSessionStorage = {
16
- getItem: jest.fn(),
17
- setItem: jest.fn().mockResolvedValueOnce(true),
18
- removeItem: jest.fn(),
19
- };
20
-
21
- const mockedLocalStorage = {
22
- getItem: jest.fn(),
23
- setItem: jest.fn(),
24
- removeItem: jest.fn(),
25
- };
26
-
27
- const mockedSecureStorage = {
28
- getItem: jest.fn(),
29
- setItem: jest.fn(),
30
- removeItem: jest.fn(),
31
- };
32
-
33
- const contextManager = new ContextKeysManager({
34
- logger: mockedLogger,
35
- sessionStorage: mockedSessionStorage,
36
- localStorage: mockedLocalStorage,
37
- secureStorage: mockedSecureStorage,
38
- });
39
-
40
- const setReferenceForKey = jest
41
- .spyOn(contextManager, "setReferenceForKey")
42
- .mockResolvedValueOnce(false);
43
-
44
- // run
45
- const result = await contextManager.setKey({ key, value, storageLevel });
46
-
47
- // verify
48
- expect(result).toBe(true);
49
-
50
- expect(mockedLogger.warn).not.toHaveBeenCalled();
51
-
52
- expect(mockedSessionStorage.getItem).not.toHaveBeenCalled();
53
-
54
- expect(mockedSessionStorage.setItem).toHaveBeenCalledWith(
55
- "key",
56
- value,
57
- "namespace"
58
- );
59
-
60
- expect(mockedLocalStorage.getItem).not.toHaveBeenCalled();
61
- expect(mockedLocalStorage.setItem).not.toHaveBeenCalled();
62
-
63
- expect(mockedSecureStorage.getItem).not.toHaveBeenCalled();
64
- expect(mockedSecureStorage.setItem).not.toHaveBeenCalled();
65
-
66
- expect(setReferenceForKey).toHaveBeenCalledWith(
67
- "key",
68
- "namespace",
69
- StorageLevel.default
70
- );
71
- });
72
-
73
- it("returns true if saved item but not reference with storage-level=persisted", async () => {
74
- // setup
75
- const key = "namespace.key";
76
- const value = "value";
77
- const storageLevel = StorageLevel.persisted;
78
-
79
- const mockedLogger = {
80
- warn: jest.fn(),
81
- };
82
-
83
- const mockedSessionStorage = {
84
- getItem: jest.fn(),
85
- setItem: jest.fn(),
86
- removeItem: jest.fn(),
87
- };
88
-
89
- const mockedLocalStorage = {
90
- getItem: jest.fn(),
91
- setItem: jest.fn().mockResolvedValueOnce(true),
92
- removeItem: jest.fn(),
93
- };
94
-
95
- const mockedSecureStorage = {
96
- getItem: jest.fn(),
97
- setItem: jest.fn(),
98
- removeItem: jest.fn(),
99
- };
100
-
101
- const contextManager = new ContextKeysManager({
102
- logger: mockedLogger,
103
- sessionStorage: mockedSessionStorage,
104
- localStorage: mockedLocalStorage,
105
- secureStorage: mockedSecureStorage,
106
- });
107
-
108
- const setReferenceForKey = jest
109
- .spyOn(contextManager, "setReferenceForKey")
110
- .mockResolvedValueOnce(false);
111
-
112
- // run
113
- const result = await contextManager.setKey({ key, value, storageLevel });
114
-
115
- // verify
116
- expect(result).toBe(true);
117
-
118
- expect(mockedLogger.warn).not.toHaveBeenCalled();
119
-
120
- expect(mockedSessionStorage.getItem).not.toHaveBeenCalled();
121
- expect(mockedSessionStorage.setItem).not.toHaveBeenCalled();
122
-
123
- expect(mockedLocalStorage.getItem).not.toHaveBeenCalled();
124
-
125
- expect(mockedLocalStorage.setItem).toHaveBeenCalledWith(
126
- "key",
127
- value,
128
- "namespace"
129
- );
130
-
131
- expect(mockedSecureStorage.getItem).not.toHaveBeenCalled();
132
- expect(mockedSecureStorage.setItem).not.toHaveBeenCalled();
133
-
134
- expect(setReferenceForKey).toHaveBeenCalledWith(
135
- "key",
136
- "namespace",
137
- StorageLevel.persisted
138
- );
139
- });
140
-
141
- it("returns true if saved item but not reference with storage-level=secure", async () => {
142
- // setup
143
- const key = "namespace.key";
144
- const value = "value";
145
- const storageLevel = StorageLevel.secure;
146
-
147
- const mockedLogger = {
148
- warn: jest.fn(),
149
- };
150
-
151
- const mockedSessionStorage = {
152
- getItem: jest.fn(),
153
- setItem: jest.fn(),
154
- removeItem: jest.fn(),
155
- };
156
-
157
- const mockedLocalStorage = {
158
- getItem: jest.fn(),
159
- setItem: jest.fn(),
160
- removeItem: jest.fn(),
161
- };
162
-
163
- const mockedSecureStorage = {
164
- getItem: jest.fn(),
165
- setItem: jest.fn().mockResolvedValueOnce(true),
166
- removeItem: jest.fn(),
167
- };
168
-
169
- const contextManager = new ContextKeysManager({
170
- logger: mockedLogger,
171
- sessionStorage: mockedSessionStorage,
172
- localStorage: mockedLocalStorage,
173
- secureStorage: mockedSecureStorage,
174
- });
175
-
176
- const setReferenceForKey = jest
177
- .spyOn(contextManager, "setReferenceForKey")
178
- .mockResolvedValueOnce(false);
179
-
180
- // run
181
- const result = await contextManager.setKey({ key, value, storageLevel });
182
-
183
- // verify
184
- expect(result).toBe(true);
185
-
186
- expect(mockedLogger.warn).not.toHaveBeenCalled();
187
-
188
- expect(mockedSessionStorage.getItem).not.toHaveBeenCalled();
189
- expect(mockedSessionStorage.setItem).not.toHaveBeenCalled();
190
-
191
- expect(mockedLocalStorage.getItem).not.toHaveBeenCalled();
192
- expect(mockedLocalStorage.setItem).not.toHaveBeenCalled();
193
-
194
- expect(mockedSecureStorage.getItem).not.toHaveBeenCalled();
195
-
196
- expect(mockedSecureStorage.setItem).toHaveBeenCalledWith(
197
- "key",
198
- value,
199
- "namespace"
200
- );
201
-
202
- expect(setReferenceForKey).toHaveBeenCalledWith(
203
- "key",
204
- "namespace",
205
- StorageLevel.secure
206
- );
207
- });
208
- });
@@ -1,93 +0,0 @@
1
- import { ContextKeysManager, REFERENCE_NAMESPACE } from "../..";
2
- import { buildNamespaceKey } from "../../utils";
3
- import { StorageLevel } from "../../consts";
4
-
5
- describe("Context Keys Manager - setReferenceForKey", () => {
6
- it("returns false if save failed", async () => {
7
- // setup
8
- const key = "key";
9
- const namespace = "namespace";
10
- const storageLevel = StorageLevel.default;
11
- const error = Error("oops");
12
-
13
- const mockedLogger = {
14
- warn: jest.fn(),
15
- };
16
-
17
- const mockedReferenceStorage = {
18
- getItem: jest.fn(),
19
- setItem: jest.fn().mockRejectedValueOnce(error),
20
- removeItem: jest.fn(),
21
- };
22
-
23
- const contextManager = new ContextKeysManager({
24
- logger: mockedLogger,
25
- referenceStorage: mockedReferenceStorage,
26
- });
27
-
28
- // run
29
- const result = await contextManager.setReferenceForKey(
30
- key,
31
- namespace,
32
- storageLevel
33
- );
34
-
35
- // verify
36
- expect(result).toBe(false);
37
-
38
- expect(mockedLogger.warn).toHaveBeenCalledWith({
39
- message: error.message,
40
- data: { key, namespace, storageLevel },
41
- });
42
-
43
- expect(mockedReferenceStorage.setItem).toHaveBeenCalledWith(
44
- buildNamespaceKey(key, namespace),
45
- storageLevel,
46
- REFERENCE_NAMESPACE
47
- );
48
- });
49
-
50
- it("returns false if save success but result is not true", async () => {
51
- // setup
52
- const key = "key";
53
- const namespace = "namespace";
54
- const storageLevel = StorageLevel.default;
55
-
56
- const mockedLogger = {
57
- warn: jest.fn(),
58
- };
59
-
60
- const mockedReferenceStorage = {
61
- getItem: jest.fn(),
62
- setItem: jest.fn().mockResolvedValueOnce(undefined),
63
- removeItem: jest.fn(),
64
- };
65
-
66
- const contextManager = new ContextKeysManager({
67
- logger: mockedLogger,
68
- referenceStorage: mockedReferenceStorage,
69
- });
70
-
71
- // run
72
- const result = await contextManager.setReferenceForKey(
73
- key,
74
- namespace,
75
- storageLevel
76
- );
77
-
78
- // verify
79
- expect(result).toBe(false);
80
-
81
- expect(mockedLogger.warn).toHaveBeenCalledWith({
82
- message:
83
- "While saving reference - reference storage return non expected value: true",
84
- data: { key, namespace, storageLevel },
85
- });
86
-
87
- expect(mockedReferenceStorage.setItem).toHaveBeenCalledWith(
88
- buildNamespaceKey(key, namespace),
89
- storageLevel,
90
- REFERENCE_NAMESPACE
91
- );
92
- });
93
- });
@@ -1,45 +0,0 @@
1
- import { ContextKeysManager, REFERENCE_NAMESPACE } from "../..";
2
- import { buildNamespaceKey } from "../../utils";
3
- import { StorageLevel } from "../../consts";
4
-
5
- describe("Context Keys Manager - setReferenceForKey", () => {
6
- it("returns true if save success", async () => {
7
- // setup
8
- const key = "key";
9
- const namespace = "namespace";
10
- const value = StorageLevel.default;
11
-
12
- const mockedLogger = {
13
- warn: jest.fn(),
14
- };
15
-
16
- const mockedReferenceStorage = {
17
- getItem: jest.fn(),
18
- setItem: jest.fn().mockResolvedValueOnce(true),
19
- removeItem: jest.fn(),
20
- };
21
-
22
- const contextManager = new ContextKeysManager({
23
- logger: mockedLogger,
24
- referenceStorage: mockedReferenceStorage,
25
- });
26
-
27
- // run
28
- const result = await contextManager.setReferenceForKey(
29
- key,
30
- namespace,
31
- value
32
- );
33
-
34
- // verify
35
- expect(result).toBe(true);
36
-
37
- expect(mockedLogger.warn).not.toHaveBeenCalled();
38
-
39
- expect(mockedReferenceStorage.setItem).toHaveBeenCalledWith(
40
- buildNamespaceKey(key, namespace),
41
- value,
42
- REFERENCE_NAMESPACE
43
- );
44
- });
45
- });
@@ -1,54 +0,0 @@
1
- import { getPlayerActionButtons } from "../getPlayerActionButtons";
2
- import { selectActionButtons } from "../../conf/player/selectors";
3
-
4
- jest.mock("../../conf/player/selectors", () => ({
5
- selectActionButtons: jest.fn(),
6
- }));
7
-
8
- describe("getPlayerActionButtons", () => {
9
- afterEach(() => {
10
- jest.clearAllMocks();
11
- });
12
-
13
- it("returns an empty array if selectActionButtons returns undefined", () => {
14
- (selectActionButtons as jest.Mock).mockReturnValue(undefined);
15
- const result = getPlayerActionButtons({});
16
- expect(result).toEqual([]);
17
- });
18
-
19
- it("returns an empty array if selectActionButtons returns null", () => {
20
- (selectActionButtons as jest.Mock).mockReturnValue(null);
21
- const result = getPlayerActionButtons({});
22
- expect(result).toEqual([]);
23
- });
24
-
25
- it("returns an empty array if selectActionButtons returns empty string", () => {
26
- (selectActionButtons as jest.Mock).mockReturnValue("");
27
- const result = getPlayerActionButtons({});
28
- expect(result).toEqual([]);
29
- });
30
-
31
- it("returns the first two trimmed action buttons", () => {
32
- (selectActionButtons as jest.Mock).mockReturnValue(" play , pause , stop ");
33
- const result = getPlayerActionButtons({});
34
- expect(result).toEqual(["play", "pause"]);
35
- });
36
-
37
- it("returns only one button if only one is present", () => {
38
- (selectActionButtons as jest.Mock).mockReturnValue(" play ");
39
- const result = getPlayerActionButtons({});
40
- expect(result).toEqual(["play"]);
41
- });
42
-
43
- it("trims whitespace from button names", () => {
44
- (selectActionButtons as jest.Mock).mockReturnValue(" play , pause ");
45
- const result = getPlayerActionButtons({});
46
- expect(result).toEqual(["play", "pause"]);
47
- });
48
-
49
- it("returns an empty array if selectActionButtons returns only commas", () => {
50
- (selectActionButtons as jest.Mock).mockReturnValue(" , , ");
51
- const result = getPlayerActionButtons({});
52
- expect(result).toEqual(["", ""]);
53
- });
54
- });
@@ -1,17 +0,0 @@
1
- import { map, take, trim } from "../utils";
2
- import { selectActionButtons } from "../conf/player/selectors";
3
-
4
- /**
5
- * Returns the first two action buttons from the configuration.
6
- * @param {Object} configuration - The player configuration object.
7
- * @returns {Array} An array containing the first two action buttons.
8
- */
9
- export const getPlayerActionButtons = (configuration: any) => {
10
- const buttonsString = selectActionButtons(configuration);
11
-
12
- if (!buttonsString) {
13
- return [];
14
- }
15
-
16
- return take(2, map(buttonsString.split(","), trim));
17
- };