@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.
- package/actionUtils/index.ts +3 -1
- package/actionsExecutor/ActionExecutor.ts +10 -1
- package/actionsExecutor/ActionExecutorContext.tsx +29 -1
- package/actionsExecutor/__tests__/ActionExecutor.test.ts +71 -0
- package/actionsExecutor/__tests__/StorageActions.test.ts +98 -0
- package/actionsExecutor/__tests__/feedDecorator.test.ts +91 -0
- package/actionsExecutor/__tests__/screenToggleFlag.test.ts +90 -0
- package/actionsExecutor/actions/__tests__/dismissBottomSheet.test.ts +3 -0
- package/actionsExecutor/actions/__tests__/goBack.test.ts +62 -0
- package/actionsExecutor/actions/__tests__/goHome.test.ts +19 -0
- package/actionsExecutor/actions/__tests__/navigateToScreen.test.ts +267 -0
- package/actionsExecutor/actions/__tests__/openBottomSheet.customContent.test.ts +24 -0
- package/actionsExecutor/actions/__tests__/openBottomSheet.inlineItems.test.ts +273 -1
- package/actionsExecutor/actions/__tests__/presentScreen.test.ts +127 -0
- package/actionsExecutor/actions/__tests__/showAlert.test.ts +49 -0
- package/actionsExecutor/actions/__tests__/showToast.test.ts +2 -2
- package/actionsExecutor/actions/dismissBottomSheet.ts +2 -1
- package/actionsExecutor/actions/goBack.ts +60 -0
- package/actionsExecutor/actions/goHome.ts +31 -0
- package/actionsExecutor/actions/index.ts +8 -0
- package/actionsExecutor/actions/navigateToScreen.ts +43 -45
- package/actionsExecutor/actions/openBottomSheet.ts +36 -16
- package/actionsExecutor/actions/presentScreen.ts +78 -0
- package/actionsExecutor/actions/screenToggleFlag.ts +1 -3
- package/actionsExecutor/actions/showAlert.ts +51 -0
- package/actionsExecutor/actions/showToast.ts +2 -2
- package/actionsExecutor/consts.ts +4 -0
- package/actionsExecutor/feedDecorator.ts +12 -6
- package/appUtils/contextKeysManager/__tests__/getKey/failure.test.ts +1 -22
- package/appUtils/contextKeysManager/__tests__/getKey/success/fullSearch.test.ts +1 -25
- package/appUtils/contextKeysManager/__tests__/getKey/success/searchInSecure.test.ts +1 -7
- package/appUtils/contextKeysManager/__tests__/removeKey/failure.test.ts +0 -25
- package/appUtils/contextKeysManager/__tests__/removeKey/success.test.ts +0 -6
- package/appUtils/contextKeysManager/__tests__/setKey/failure/failedToSaveInStorage.test.ts +0 -40
- package/appUtils/contextKeysManager/__tests__/setKey/{success/saveItemAndReference.test.ts → success.test.ts} +2 -42
- package/appUtils/contextKeysManager/index.ts +28 -129
- package/appUtils/playerManager/OverlayObserver/OverlaysObserver.ts +4 -11
- package/appUtils/playerManager/OverlayObserver/__tests__/getUpcomingQueue.test.ts +67 -0
- package/appUtils/playerManager/OverlayObserver/__tests__/utils.test.ts +9 -2
- package/appUtils/playerManager/OverlayObserver/getUpcomingQueue.android.tv.ts +4 -1
- package/appUtils/playerManager/OverlayObserver/getUpcomingQueue.ios.tv.ts +4 -1
- package/appUtils/playerManager/OverlayObserver/getUpcomingQueue.ts +21 -2
- package/appUtils/playerManager/OverlayObserver/getUpcomingQueue.web.ts +4 -1
- package/appUtils/playerManager/OverlayObserver/utils.ts +9 -7
- package/appUtils/playerManager/__tests__/playerDiagnostics.test.ts +62 -0
- package/appUtils/playerManager/__tests__/playerNative.test.ts +114 -0
- package/appUtils/playerManager/__tests__/playerNativeCommand.test.ts +62 -0
- package/appUtils/playerManager/__tests__/playerToolbox.test.ts +281 -0
- package/appUtils/playerManager/__tests__/usePlayerControllerSetup.test.tsx +62 -0
- package/appUtils/playerManager/const.ts +13 -0
- package/appUtils/playerManager/index.ts +7 -0
- package/appUtils/playerManager/player.ts +25 -0
- package/appUtils/playerManager/playerNative.ts +27 -3
- package/appUtils/playerManager/playerNativeCommand.ts +3 -6
- package/appUtils/playerManager/playerToolbox.ts +196 -0
- package/appUtils/playerManager/usePlayerControllerSetup.tsx +6 -0
- package/arrayUtils/__tests__/reorderByIds.test.ts +13 -0
- package/arrayUtils/index.ts +26 -43
- package/cellUtils/__tests__/getButtonsEnabled.test.ts +28 -0
- package/cellUtils/__tests__/getCellNavigationEnabled.test.ts +36 -0
- package/cellUtils/__tests__/getIsCellNavigationEnabled.test.ts +35 -0
- package/cellUtils/__tests__/isCellNavigationEnabled.test.ts +21 -0
- package/cellUtils/index.ts +70 -3
- package/configurationUtils/__tests__/manifestKeyParser.test.ts +21 -0
- package/configurationUtils/__tests__/modalBlocksParser.test.ts +297 -1
- package/configurationUtils/manifestKeyParser.ts +12 -1
- package/configurationUtils/modalBlocksParser.ts +78 -4
- package/entryActions/__tests__/buildEntryActions.test.ts +235 -0
- package/entryActions/aliasPresentation.ts +108 -0
- package/entryActions/buildEntryActions.ts +167 -0
- package/entryActions/index.ts +15 -0
- package/entryActions/types.ts +39 -0
- package/focusManager/FocusManager.ts +26 -0
- package/focusManager/__tests__/FocusManager.test.ts +9 -0
- package/localizationUtils/index.ts +12 -6
- package/logger/__tests__/xrayToolbox.test.ts +69 -0
- package/logger/xrayToolbox.ts +67 -0
- package/manifestUtils/_internals/index.js +8 -3
- package/manifestUtils/defaultManifestConfigurations/generalContent.js +6 -0
- package/manifestUtils/defaultManifestConfigurations/player.js +30 -1
- package/manifestUtils/keys.js +7 -2
- package/manifestUtils/mobileAction/container/__tests__/mobileActionButtonsContainer.test.js +21 -0
- package/manifestUtils/mobileAction/groups/__tests__/buildMobileActionButtonGroups.test.js +1 -1
- package/manifestUtils/mobileAction/groups/defaults.js +2 -1
- package/modalState/ModalOrchestrator.ts +23 -9
- package/modalState/RemoteEditableCollection.ts +9 -1
- package/modalState/__tests__/ModalOrchestrator.phase3.test.ts +39 -0
- package/modalState/__tests__/RemoteEditableCollection.test.ts +90 -1
- package/modalState/__tests__/index.test.ts +30 -1
- package/modalState/__tests__/useModalStoreState.test.ts +142 -0
- package/modalState/index.ts +8 -1
- package/modalState/store.ts +9 -2
- package/modalState/types.ts +42 -2
- package/modalState/useBottomSheetContent.ts +24 -17
- package/navigationUtils/xrayNavigator.ts +12 -0
- package/package.json +3 -2
- package/playerUtils/__tests__/resolvePlayerActions.test.ts +138 -0
- package/playerUtils/index.ts +17 -1
- package/playerUtils/resolvePlayerActions.ts +71 -0
- package/pluginUtils/__tests__/pluginUtils.test.js +32 -0
- package/pluginUtils/index.ts +29 -0
- package/quickBrickAssets/__tests__/index.test.ts +18 -0
- package/quickBrickAssets/index.ts +35 -0
- package/reactHooks/__tests__/getPluginConfiguration.test.ts +82 -0
- package/reactHooks/actions/index.ts +74 -3
- package/reactHooks/cell-click/__tests__/index.test.js +64 -0
- package/reactHooks/cell-click/index.ts +21 -14
- package/reactHooks/connection/index.tsx +8 -5
- package/reactHooks/feed/__tests__/feedInvalidation.test.tsx +338 -0
- package/reactHooks/feed/__tests__/useBatchLoading.test.tsx +8 -2
- package/reactHooks/feed/__tests__/useMarkPipesDataStale.test.tsx +243 -0
- package/reactHooks/feed/useFeedLoader.tsx +28 -1
- package/reactHooks/feed/useLoadPipesDataDispatch.ts +12 -11
- package/reactHooks/feed/useMarkPipesDataStale.ts +68 -23
- package/reactHooks/navigation/__tests__/index.test.tsx +176 -1
- package/reactHooks/navigation/__tests__/usePresentScreen.test.ts +154 -0
- package/reactHooks/navigation/index.ts +2 -0
- package/reactHooks/navigation/usePresentScreen.ts +157 -0
- package/reactHooks/navigation/useRoute.ts +22 -5
- package/reactHooks/usePluginConfiguration.ts +84 -46
- package/riverComponetsMeasurementProvider/index.tsx +3 -1
- package/uiActionsRegistrator/__tests__/resolveActionIdentifiers.test.ts +93 -0
- package/uiActionsRegistrator/__tests__/subscribe.test.ts +133 -0
- package/uiActionsRegistrator/__tests__/usableActionItems.test.ts +52 -0
- package/uiActionsRegistrator/index.ts +25 -203
- package/uiActionsRegistrator/registry.ts +351 -0
- package/uiActionsRegistrator/resolveActionIdentifiers.ts +100 -0
- package/uiActionsRegistrator/usableActionItems.ts +66 -0
- package/appUtils/contextKeysManager/__tests__/getKey/success/byReference.test.ts +0 -56
- package/appUtils/contextKeysManager/__tests__/getKeyByReference/failure.test.ts +0 -265
- package/appUtils/contextKeysManager/__tests__/getKeyByReference/success.test.ts +0 -303
- package/appUtils/contextKeysManager/__tests__/removeReferenceForKey/failure.test.ts +0 -82
- package/appUtils/contextKeysManager/__tests__/removeReferenceForKey/success.test.ts +0 -41
- package/appUtils/contextKeysManager/__tests__/setKey/success/saveItemButNotReference.test.ts +0 -208
- package/appUtils/contextKeysManager/__tests__/setReferenceForKey/failure.test.ts +0 -93
- package/appUtils/contextKeysManager/__tests__/setReferenceForKey/success.test.ts +0 -45
- package/playerUtils/__tests__/getPlayerActionButtons.test.ts +0 -54
- 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
|
-
});
|
package/appUtils/contextKeysManager/__tests__/setKey/success/saveItemButNotReference.test.ts
DELETED
|
@@ -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
|
-
};
|