@applicaster/zapp-react-native-ui-components 13.0.0-alpha.2040752175 → 13.0.0-alpha.2245033574
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/Components/AppContainer/__tests__/__snapshots__/AppContainer.test.js.snap +1 -1
- package/Components/AudioPlayer/__tests__/__snapshots__/Runtime.test.js.snap +4 -4
- package/Components/AudioPlayer/__tests__/__snapshots__/artWork.test.js.snap +3 -3
- package/Components/AudioPlayer/__tests__/__snapshots__/audioPlayer.test.js.snap +6 -6
- package/Components/AudioPlayer/__tests__/__snapshots__/audioPlayerLayout.test.js.snap +7 -7
- package/Components/AudioPlayer/__tests__/__snapshots__/channel.test.js.snap +3 -3
- package/Components/AudioPlayer/__tests__/__snapshots__/summary.test.js.snap +2 -2
- package/Components/AudioPlayer/__tests__/__snapshots__/title.test.js.snap +2 -2
- package/Components/BaseFocusable/index.ios.ts +1 -1
- package/Components/BaseFocusable/index.tsx +66 -29
- package/Components/Cell/Cell.tsx +14 -9
- package/Components/Cell/CellWithFocusable.tsx +1 -1
- package/Components/Cell/TvOSCellComponent.tsx +3 -8
- package/Components/CellRendererResolver/__tests__/__snapshots__/cellRendererResolver.test.js.snap +20 -20
- package/Components/CellRendererResolver/__tests__/cellRendererResolver.test.js +5 -3
- package/Components/ComponentResolver/__tests__/__snapshots__/componentResolver.test.js.snap +5 -5
- package/Components/ComponentResolver/__tests__/componentResolver.test.js +11 -9
- package/Components/DisplayState/__tests__/__snapshots__/displayState.test.js.snap +2 -2
- package/Components/Focusable/Focusable.tsx +0 -54
- package/Components/Focusable/FocusableTvOS.tsx +1 -1
- package/Components/Focusable/Touchable.tsx +19 -20
- package/Components/FocusableList/index.tsx +0 -1
- package/Components/GeneralContentScreen/utils/__tests__/useCurationAPI.test.js +9 -0
- package/Components/GeneralContentScreen/utils/useCurationAPI.ts +1 -1
- package/Components/Layout/TV/__tests__/ScreenContainer.test.tsx +1 -0
- package/Components/Layout/TV/__tests__/__snapshots__/LayoutContainer.test.tsx.snap +1 -1
- package/Components/Layout/TV/__tests__/__snapshots__/NavBarContainer.test.tsx.snap +3 -3
- package/Components/Layout/TV/__tests__/__snapshots__/ScreenContainer.test.tsx.snap +9 -9
- package/Components/Layout/TV/__tests__/__snapshots__/index.test.tsx.snap +1 -1
- package/Components/Layout/TV/__tests__/index.test.tsx +7 -3
- package/Components/MasterCell/DefaultComponents/BorderContainerView/__tests__/index.test.tsx +66 -0
- package/Components/MasterCell/DefaultComponents/BorderContainerView/index.tsx +4 -1
- package/Components/MasterCell/DefaultComponents/Image/Image.ios.tsx +6 -12
- package/Components/MasterCell/DefaultComponents/ImageBorderContainer/__tests__/index.test.ts +93 -0
- package/Components/MasterCell/DefaultComponents/SecondaryImage/__tests__/__snapshots__/Image.test.tsx.snap +3 -3
- package/Components/MasterCell/DefaultComponents/SecondaryImage/utils.ts +1 -1
- package/Components/MasterCell/DefaultComponents/__tests__/image.test.js +1 -1
- package/Components/MasterCell/SharedUI/CollapsibleTextContainer/__tests__/__snapshots__/index.test.tsx.snap +1 -1
- package/Components/MasterCell/__tests__/__snapshots__/dataAdapter.test.js.snap +180 -180
- package/Components/MasterCell/__tests__/__snapshots__/elementMapper.test.js.snap +7 -7
- package/Components/MasterCell/__tests__/__snapshots__/masterCell.test.js.snap +34 -34
- package/Components/MasterCell/hooks/useAsyncRendering/index.ts +2 -2
- package/Components/MasterCell/utils/index.ts +1 -1
- package/Components/ModalComponent/Header/index.tsx +3 -3
- package/Components/NativeFocusables/{index.js → index.ts} +4 -2
- package/Components/OfflineHandler/__tests__/__snapshots__/index.test.tsx.snap +7 -7
- package/Components/OfflineHandler/__tests__/index.test.tsx +28 -25
- package/Components/PlayerContainer/PlayerContainer.tsx +5 -11
- package/Components/PlayerContainer/PlayerContainerContext.tsx +9 -0
- package/Components/River/RefreshControl.tsx +1 -1
- package/Components/River/__tests__/__snapshots__/componentsMap.test.js.snap +17 -17
- package/Components/River/__tests__/__snapshots__/river.test.js.snap +12 -12
- package/Components/River/__tests__/componentsMap.test.js +61 -13
- package/Components/RouteManager/__tests__/__snapshots__/routeManager.test.js.snap +1 -1
- package/Components/RouteManager/__tests__/__snapshots__/testId.test.js.snap +1 -1
- package/Components/Screen/__tests__/Screen.test.tsx +41 -27
- package/Components/Screen/__tests__/__snapshots__/Screen.test.tsx.snap +4 -4
- package/Components/Screen/index.tsx +1 -0
- package/Components/ScreenResolver/__tests__/__snapshots__/screenResolver.test.js.snap +2 -2
- package/Components/ScreenResolver/__tests__/screenResolver.test.js +31 -27
- package/Components/Tabs/Tab.tsx +7 -6
- package/Components/TextInputTv/__tests__/TextInputTv.test.js +42 -42
- package/Components/TextInputTv/__tests__/__snapshots__/TextInputTv.test.js.snap +7 -0
- package/Components/TextInputTv/index.tsx +4 -4
- package/Components/Touchable/__tests__/__snapshots__/touchable.test.tsx.snap +2 -2
- package/Components/Transitioner/AnimationManager.js +8 -8
- package/Components/Transitioner/Scene.tsx +52 -23
- package/Components/Transitioner/__tests__/__snapshots__/AnimationManager.test.js.snap +26 -26
- package/Components/Transitioner/__tests__/__snapshots__/Scene.test.js.snap +62 -46
- package/Components/Transitioner/__tests__/__snapshots__/config.test.js.snap +20 -20
- package/Components/Transitioner/__tests__/__snapshots__/transitioner.test.js.snap +4 -4
- package/Components/Transitioner/index.js +8 -4
- package/Components/VideoLive/LiveImageManager.ts +27 -1
- package/Components/VideoLive/PlayerLiveImageComponent.tsx +29 -21
- package/Components/VideoLive/__tests__/PlayerLiveImageComponent.test.tsx +63 -8
- package/Components/VideoLive/__tests__/__snapshots__/PlayerLiveImageComponent.test.tsx.snap +5 -10
- package/Components/VideoModal/ModalAnimation/AnimatedScrollModal.tsx +5 -1
- package/Components/VideoModal/ModalAnimation/AnimatedVideoPlayerComponent.tsx +5 -1
- package/Components/VideoModal/ModalAnimation/AnimationComponent.tsx +8 -7
- package/Components/VideoModal/ModalAnimation/ModalAnimationContext.tsx +4 -10
- package/Components/VideoModal/ModalAnimation/index.ts +2 -1
- package/Components/VideoModal/ModalAnimation/useModalAnimationContext.ts +6 -0
- package/Components/VideoModal/ModalAnimation/utils.ts +2 -2
- package/Components/VideoModal/OpaqueLayer.tsx +33 -0
- package/Components/VideoModal/PlayerWrapper.tsx +16 -35
- package/Components/VideoModal/VideoModal.tsx +14 -23
- package/Components/VideoModal/__tests__/PlayerDetails.test.tsx +5 -2
- package/Components/VideoModal/__tests__/PlayerWrapper.test.tsx +13 -10
- package/Components/VideoModal/__tests__/__snapshots__/PlayerDetails.test.tsx.snap +4 -4
- package/Components/VideoModal/__tests__/__snapshots__/PlayerWrapper.test.tsx.snap +66 -156
- package/Components/VideoModal/hooks/__tests__/useDelayedPlayerDetails.test.ts +89 -0
- package/Components/VideoModal/hooks/index.ts +7 -0
- package/Components/VideoModal/hooks/useDelayedPlayerDetails.ts +49 -0
- package/Components/VideoModal/hooks/utils/__tests__/showDetails.test.ts +91 -0
- package/Components/VideoModal/hooks/utils/index.ts +33 -0
- package/Components/VideoModal/utils.ts +3 -5
- package/Components/Viewport/ViewportAware/__tests__/__snapshots__/viewportAware.test.js.snap +2 -2
- package/Components/Viewport/ViewportTracker/__tests__/__snapshots__/viewportTracker.test.js.snap +1 -1
- package/Components/ZappUIComponent/__tests__/__snapshots__/ZappUIComponent.test.js.snap +11 -11
- package/Components/default-cell-renderer/__tests__/__snapshots__/defaultCellRenderer.test.tsx.snap +30 -30
- package/Contexts/ConfigutaionContext/__tests__/__snapshots__/ConfigurationProvider.test.tsx.snap +1 -1
- package/Contexts/ScreenContext/index.tsx +3 -2
- package/Decorators/Analytics/{index.js → index.tsx} +11 -11
- package/Decorators/Navigator/__tests__/__snapshots__/navigator.test.js.snap +2 -2
- package/Decorators/RiverFeedLoader/__tests__/__snapshots__/riverFeedLoader.test.tsx.snap +77 -77
- package/Decorators/RiverFeedLoader/__tests__/riverFeedLoader.test.tsx +34 -39
- package/Decorators/RiverFeedLoader/__tests__/utils.test.ts +0 -9
- package/Decorators/RiverFeedLoader/index.tsx +1 -1
- package/Decorators/RiverFeedLoader/utils/getDatasourceUrl.ts +39 -0
- package/Decorators/RiverFeedLoader/utils/index.ts +29 -0
- package/Decorators/RiverFeedLoader/utils/usePipesContexts.ts +40 -0
- package/Decorators/RiverResolver/__tests__/__snapshots__/riverResolver.test.tsx.snap +5 -5
- package/Decorators/RiverResolver/__tests__/riverResolver.test.tsx +16 -10
- package/Decorators/ZappPipesDataConnector/__tests__/Hero.js +1 -1
- package/Decorators/ZappPipesDataConnector/index.tsx +32 -2
- package/package.json +12 -6
- package/Decorators/RiverFeedLoader/utils.ts +0 -100
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
exports[`componentsMap renders renders components map correctly 1`] = `
|
|
4
4
|
<View
|
|
5
5
|
style={
|
|
6
|
-
|
|
6
|
+
{
|
|
7
7
|
"flex": 1,
|
|
8
8
|
}
|
|
9
9
|
}
|
|
@@ -11,7 +11,7 @@ exports[`componentsMap renders renders components map correctly 1`] = `
|
|
|
11
11
|
<View
|
|
12
12
|
onLayout={[Function]}
|
|
13
13
|
style={
|
|
14
|
-
|
|
14
|
+
{
|
|
15
15
|
"flex": 1,
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -19,7 +19,7 @@ exports[`componentsMap renders renders components map correctly 1`] = `
|
|
|
19
19
|
<RCTScrollView
|
|
20
20
|
ListFooterComponent={[Function]}
|
|
21
21
|
contentContainerStyle={
|
|
22
|
-
|
|
22
|
+
{
|
|
23
23
|
"paddingBottom": undefined,
|
|
24
24
|
"paddingLeft": undefined,
|
|
25
25
|
"paddingRight": undefined,
|
|
@@ -27,22 +27,22 @@ exports[`componentsMap renders renders components map correctly 1`] = `
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
data={
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
[
|
|
31
|
+
{
|
|
32
32
|
"component_type": "hero",
|
|
33
33
|
"id": "A1",
|
|
34
|
-
"styles":
|
|
35
|
-
"cell_styles":
|
|
34
|
+
"styles": {
|
|
35
|
+
"cell_styles": [
|
|
36
36
|
"some",
|
|
37
37
|
"obsolete",
|
|
38
38
|
"ids",
|
|
39
39
|
],
|
|
40
40
|
},
|
|
41
41
|
},
|
|
42
|
-
|
|
42
|
+
{
|
|
43
43
|
"component_type": "grid",
|
|
44
44
|
"id": "A2",
|
|
45
|
-
"styles":
|
|
45
|
+
"styles": {
|
|
46
46
|
"master_cell_id": "uuid-5678-B",
|
|
47
47
|
},
|
|
48
48
|
},
|
|
@@ -66,12 +66,12 @@ exports[`componentsMap renders renders components map correctly 1`] = `
|
|
|
66
66
|
renderItem={[Function]}
|
|
67
67
|
scrollEventThrottle={16}
|
|
68
68
|
scrollIndicatorInsets={
|
|
69
|
-
|
|
69
|
+
{
|
|
70
70
|
"right": 1,
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
stickyHeaderIndices={
|
|
74
|
-
viewabilityConfigCallbackPairs={
|
|
73
|
+
stickyHeaderIndices={[]}
|
|
74
|
+
viewabilityConfigCallbackPairs={[]}
|
|
75
75
|
windowSize={12}
|
|
76
76
|
>
|
|
77
77
|
<View>
|
|
@@ -81,7 +81,7 @@ exports[`componentsMap renders renders components map correctly 1`] = `
|
|
|
81
81
|
>
|
|
82
82
|
<View
|
|
83
83
|
style={
|
|
84
|
-
|
|
84
|
+
{
|
|
85
85
|
"display": "flex",
|
|
86
86
|
}
|
|
87
87
|
}
|
|
@@ -89,7 +89,7 @@ exports[`componentsMap renders renders components map correctly 1`] = `
|
|
|
89
89
|
<View
|
|
90
90
|
onLayout={[Function]}
|
|
91
91
|
style={
|
|
92
|
-
|
|
92
|
+
{
|
|
93
93
|
"flex": 1,
|
|
94
94
|
}
|
|
95
95
|
}
|
|
@@ -104,7 +104,7 @@ exports[`componentsMap renders renders components map correctly 1`] = `
|
|
|
104
104
|
>
|
|
105
105
|
<View
|
|
106
106
|
style={
|
|
107
|
-
|
|
107
|
+
{
|
|
108
108
|
"display": "none",
|
|
109
109
|
}
|
|
110
110
|
}
|
|
@@ -112,7 +112,7 @@ exports[`componentsMap renders renders components map correctly 1`] = `
|
|
|
112
112
|
<View
|
|
113
113
|
onLayout={[Function]}
|
|
114
114
|
style={
|
|
115
|
-
|
|
115
|
+
{
|
|
116
116
|
"flex": 1,
|
|
117
117
|
}
|
|
118
118
|
}
|
|
@@ -127,7 +127,7 @@ exports[`componentsMap renders renders components map correctly 1`] = `
|
|
|
127
127
|
<View
|
|
128
128
|
renderToHardwareTextureAndroid={true}
|
|
129
129
|
style={
|
|
130
|
-
|
|
130
|
+
{
|
|
131
131
|
"alignItems": "center",
|
|
132
132
|
"height": null,
|
|
133
133
|
"justifyContent": "center",
|
|
@@ -6,42 +6,42 @@ exports[`When River has a general_content type <River /> renders correctly 1`] =
|
|
|
6
6
|
>
|
|
7
7
|
<RiverWithData
|
|
8
8
|
appData={
|
|
9
|
-
|
|
9
|
+
{
|
|
10
10
|
"layoutVersion": "v1",
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
dispatch={[Function]}
|
|
14
14
|
rivers={
|
|
15
|
-
|
|
16
|
-
"A1234":
|
|
15
|
+
{
|
|
16
|
+
"A1234": {
|
|
17
17
|
"home": true,
|
|
18
18
|
"id": "A1234",
|
|
19
19
|
"name": "foo",
|
|
20
20
|
"type": "general_content",
|
|
21
|
-
"ui_components":
|
|
22
|
-
|
|
21
|
+
"ui_components": [
|
|
22
|
+
{
|
|
23
23
|
"component_type": "hero",
|
|
24
24
|
},
|
|
25
|
-
|
|
25
|
+
{
|
|
26
26
|
"component_type": "grid",
|
|
27
27
|
},
|
|
28
28
|
],
|
|
29
29
|
},
|
|
30
|
-
"B4567":
|
|
30
|
+
"B4567": {
|
|
31
31
|
"id": "B4567",
|
|
32
32
|
},
|
|
33
|
-
"C0987":
|
|
33
|
+
"C0987": {
|
|
34
34
|
"home": false,
|
|
35
35
|
"id": "C0987",
|
|
36
36
|
"name": "Some-Screen-Plugin",
|
|
37
37
|
"type": "some-screen-plugin",
|
|
38
|
-
"ui_components":
|
|
38
|
+
"ui_components": [],
|
|
39
39
|
},
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
screenId="A1234"
|
|
43
43
|
store={
|
|
44
|
-
|
|
44
|
+
{
|
|
45
45
|
"clearActions": [Function],
|
|
46
46
|
"dispatch": [Function],
|
|
47
47
|
"getActions": [Function],
|
|
@@ -64,13 +64,13 @@ exports[`When River has a general_content type <RiverComponent /> renders correc
|
|
|
64
64
|
exports[`When River has any other type other than general_content <RiverComponent /> renders correctly 1`] = `
|
|
65
65
|
<WithProvider
|
|
66
66
|
screenData={
|
|
67
|
-
|
|
67
|
+
{
|
|
68
68
|
"groupId": undefined,
|
|
69
69
|
"home": false,
|
|
70
70
|
"id": "C0987",
|
|
71
71
|
"name": "Some-Screen-Plugin",
|
|
72
72
|
"type": "some-screen-plugin",
|
|
73
|
-
"ui_components":
|
|
73
|
+
"ui_components": [],
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
screenId="C0987"
|
|
@@ -75,28 +75,70 @@ const riverComponents = [
|
|
|
75
75
|
},
|
|
76
76
|
];
|
|
77
77
|
|
|
78
|
-
const
|
|
78
|
+
const mockScreenData = {
|
|
79
79
|
ui_components: riverComponents,
|
|
80
80
|
rules: { pull_to_refresh_enabled: false },
|
|
81
81
|
id: "A1234",
|
|
82
82
|
};
|
|
83
83
|
|
|
84
|
+
jest.mock("@applicaster/zapp-react-native-redux/AppStore", () => ({
|
|
85
|
+
appStore: {
|
|
86
|
+
get: jest.fn((prop) => mockStore[prop]),
|
|
87
|
+
getState: jest.fn(),
|
|
88
|
+
},
|
|
89
|
+
}));
|
|
90
|
+
|
|
84
91
|
jest.mock("@applicaster/zapp-react-native-utils/localizationUtils", () => ({
|
|
85
92
|
useIsRTL: jest.fn(() => mock_rtl_flag),
|
|
86
93
|
}));
|
|
87
94
|
|
|
88
|
-
jest.mock(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
95
|
+
jest.mock(
|
|
96
|
+
"@applicaster/zapp-react-native-utils/reactHooks/navigation/useNavigation",
|
|
97
|
+
() => ({
|
|
98
|
+
useNavigation: jest.fn(() => ({ currentRoute: "/river/A1234" })),
|
|
99
|
+
})
|
|
100
|
+
);
|
|
94
101
|
|
|
95
|
-
jest.mock(
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
102
|
+
jest.mock(
|
|
103
|
+
"@applicaster/zapp-react-native-utils/reactHooks/navigation/useRoute",
|
|
104
|
+
() => ({
|
|
105
|
+
useRoute: jest.fn(() => ({
|
|
106
|
+
pathname: "/river/A1234",
|
|
107
|
+
screenData: mockScreenData,
|
|
108
|
+
})),
|
|
109
|
+
})
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
jest.mock(
|
|
113
|
+
"@applicaster/zapp-react-native-utils/reactHooks/navigation/useIsScreenActive",
|
|
114
|
+
() => ({
|
|
115
|
+
useIsScreenActive: jest.fn().mockReturnValue(true),
|
|
116
|
+
})
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
jest.mock(
|
|
120
|
+
"@applicaster/zapp-react-native-utils/reactHooks/screen/useCurrentScreenData",
|
|
121
|
+
() => ({
|
|
122
|
+
useCurrentScreenData: jest.fn(() => mockScreenData),
|
|
123
|
+
})
|
|
124
|
+
);
|
|
125
|
+
|
|
126
|
+
jest.mock(
|
|
127
|
+
"@applicaster/zapp-react-native-utils/reactHooks/screen/useScreenData",
|
|
128
|
+
() => ({
|
|
129
|
+
useScreenData: jest.fn(() => mockScreenData),
|
|
130
|
+
})
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
jest.mock(
|
|
134
|
+
"@applicaster/zapp-react-native-utils/reactHooks/screen/useScreenContext",
|
|
135
|
+
() => ({
|
|
136
|
+
...jest.requireActual(
|
|
137
|
+
"@applicaster/zapp-react-native-utils/reactHooks/screen/useScreenContext"
|
|
138
|
+
),
|
|
139
|
+
useScreenContext: jest.fn(() => mockScreenData),
|
|
140
|
+
})
|
|
141
|
+
);
|
|
100
142
|
|
|
101
143
|
const { View } = require("react-native");
|
|
102
144
|
const { ComponentsMap } = require("../ComponentsMap/ComponentsMap");
|
|
@@ -118,7 +160,13 @@ const plugins = [];
|
|
|
118
160
|
const navigation = {};
|
|
119
161
|
|
|
120
162
|
const props = { components, cellStyles, riverComponents, navigation };
|
|
121
|
-
|
|
163
|
+
|
|
164
|
+
const store = mockStore({
|
|
165
|
+
components,
|
|
166
|
+
cellStyles,
|
|
167
|
+
plugins,
|
|
168
|
+
getState: jest.fn(),
|
|
169
|
+
});
|
|
122
170
|
|
|
123
171
|
jest.useFakeTimers();
|
|
124
172
|
|
|
@@ -46,27 +46,37 @@ jest.mock("@applicaster/zapp-react-native-utils/theme", () => ({
|
|
|
46
46
|
})),
|
|
47
47
|
}));
|
|
48
48
|
|
|
49
|
-
const
|
|
49
|
+
const mockNavBar = jest.fn((props) => {
|
|
50
|
+
const View = jest.requireActual("react-native").View;
|
|
51
|
+
|
|
52
|
+
return <View testID="navBar" {...props} />;
|
|
53
|
+
});
|
|
50
54
|
|
|
51
55
|
jest.mock(
|
|
52
56
|
"@applicaster/zapp-react-native-app/App/Layout/layoutHelpers",
|
|
53
57
|
() => ({
|
|
54
|
-
getNavigationPluginModule: () =>
|
|
58
|
+
getNavigationPluginModule: () => mockNavBar,
|
|
55
59
|
})
|
|
56
60
|
);
|
|
57
61
|
|
|
58
|
-
jest.mock(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
62
|
+
jest.mock(
|
|
63
|
+
"@applicaster/zapp-react-native-utils/reactHooks/screen/useCurrentScreenData",
|
|
64
|
+
() => ({
|
|
65
|
+
useCurrentScreenData: jest.fn(() => ({
|
|
66
|
+
id: "testId",
|
|
67
|
+
})),
|
|
68
|
+
})
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
jest.mock(
|
|
72
|
+
"@applicaster/zapp-react-native-utils/reactHooks/screen/useScreenData",
|
|
73
|
+
() => ({
|
|
74
|
+
useScreenData: jest.fn(() => ({
|
|
75
|
+
id: "testId",
|
|
76
|
+
navigations: [{ id: "testId", category: "nav_bar" }],
|
|
77
|
+
})),
|
|
78
|
+
})
|
|
79
|
+
);
|
|
70
80
|
|
|
71
81
|
jest.mock("@applicaster/zapp-react-native-utils/reactHooks/navigation", () => ({
|
|
72
82
|
isNavBarVisible: mockIsNavBarVisible,
|
|
@@ -84,20 +94,24 @@ jest.mock("@applicaster/zapp-react-native-utils/reactHooks/navigation", () => ({
|
|
|
84
94
|
useIsScreenActive: jest.fn().mockReturnValue(true),
|
|
85
95
|
}));
|
|
86
96
|
|
|
87
|
-
jest.mock("@applicaster/zapp-react-native-redux/hooks", () =>
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
97
|
+
jest.mock("@applicaster/zapp-react-native-redux/hooks/usePickFromState", () => {
|
|
98
|
+
const View = jest.requireActual("react-native").View;
|
|
99
|
+
|
|
100
|
+
return {
|
|
101
|
+
usePickFromState: () => ({
|
|
102
|
+
plugins: [
|
|
103
|
+
{
|
|
104
|
+
name: "Offline Plugin",
|
|
105
|
+
identifier: "offline-experience",
|
|
106
|
+
type: "general",
|
|
107
|
+
module: {
|
|
108
|
+
OfflineFallbackScreen: ({ children }) => <View>{children}</View>, // eslint-disable-line
|
|
109
|
+
},
|
|
96
110
|
},
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
})
|
|
111
|
+
],
|
|
112
|
+
}),
|
|
113
|
+
};
|
|
114
|
+
});
|
|
101
115
|
|
|
102
116
|
const {
|
|
103
117
|
allowedOrientationsForScreen,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
exports[`<Screen Component /> when the navbar should be hidden renders correctly 1`] = `
|
|
4
4
|
<View
|
|
5
5
|
style={
|
|
6
|
-
|
|
6
|
+
{
|
|
7
7
|
"backgroundColor": "blue",
|
|
8
8
|
"flex": 1,
|
|
9
9
|
"paddingTop": 0,
|
|
@@ -22,7 +22,7 @@ exports[`<Screen Component /> when the navbar should be hidden renders correctly
|
|
|
22
22
|
<View
|
|
23
23
|
pathname="/river/testId"
|
|
24
24
|
screenData={
|
|
25
|
-
|
|
25
|
+
{
|
|
26
26
|
"id": "testId",
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -35,7 +35,7 @@ exports[`<Screen Component /> when the navbar should be hidden renders correctly
|
|
|
35
35
|
exports[`<Screen Component /> when the navbar should show renders correctly 1`] = `
|
|
36
36
|
<View
|
|
37
37
|
style={
|
|
38
|
-
|
|
38
|
+
{
|
|
39
39
|
"backgroundColor": "blue",
|
|
40
40
|
"flex": 1,
|
|
41
41
|
"paddingTop": 0,
|
|
@@ -54,7 +54,7 @@ exports[`<Screen Component /> when the navbar should show renders correctly 1`]
|
|
|
54
54
|
<View
|
|
55
55
|
pathname="/river/testId"
|
|
56
56
|
screenData={
|
|
57
|
-
|
|
57
|
+
{
|
|
58
58
|
"id": "testId",
|
|
59
59
|
}
|
|
60
60
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`<ScreenResolver /> renders correctly 1`] = `
|
|
4
4
|
<mockConstructor
|
|
5
|
-
screenData={
|
|
5
|
+
screenData={{}}
|
|
6
6
|
screenId="1234"
|
|
7
7
|
screenType="screen_type_1"
|
|
8
8
|
/>
|
|
@@ -11,7 +11,7 @@ exports[`<ScreenResolver /> renders correctly 1`] = `
|
|
|
11
11
|
exports[`<ScreenResolver /> wraps the player with the playerController component when the screenType is playable 1`] = `
|
|
12
12
|
<HandlePlayable
|
|
13
13
|
isModal={false}
|
|
14
|
-
item={
|
|
14
|
+
item={{}}
|
|
15
15
|
mode="FULLSCREEN"
|
|
16
16
|
/>
|
|
17
17
|
`;
|
|
@@ -2,42 +2,39 @@ import React from "react";
|
|
|
2
2
|
import { View } from "react-native";
|
|
3
3
|
import { shallow } from "enzyme";
|
|
4
4
|
import { shallowToJson } from "enzyme-to-json";
|
|
5
|
-
import { connect as realConnect } from "react-redux";
|
|
6
|
-
|
|
7
5
|
const pluginConfiguration = { foo: "bar" };
|
|
8
6
|
|
|
9
7
|
const ScreenType1 = jest.fn(() => <View />);
|
|
10
8
|
const ScreenType2 = jest.fn(() => <View />);
|
|
9
|
+
const PlayerController = jest.fn(() => <View />);
|
|
11
10
|
|
|
12
|
-
const
|
|
11
|
+
const mockScreenType3 = {
|
|
13
12
|
module: jest.fn(() => <View />),
|
|
14
13
|
name: "ScreenType3",
|
|
15
14
|
type: "screen_type_3",
|
|
16
15
|
configuration: pluginConfiguration,
|
|
17
16
|
};
|
|
18
17
|
|
|
19
|
-
const
|
|
18
|
+
const mockScreenType4 = {
|
|
20
19
|
module: jest.fn(() => <View />),
|
|
21
20
|
name: "ScreenType4",
|
|
22
21
|
type: "screen_type_4",
|
|
23
22
|
};
|
|
24
23
|
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
const playerPlugin = {
|
|
24
|
+
const mockPlayerPlugin = {
|
|
28
25
|
module: jest.fn(() => <View />),
|
|
29
26
|
name: "playerPlugin",
|
|
30
27
|
type: "player",
|
|
31
28
|
};
|
|
32
29
|
|
|
33
|
-
const
|
|
30
|
+
const mockScreenPlugin = {
|
|
34
31
|
module: jest.fn(() => <View />),
|
|
35
32
|
type: "general",
|
|
36
33
|
name: "Screen plugin",
|
|
37
34
|
identifier: "screen-plugin",
|
|
38
35
|
};
|
|
39
36
|
|
|
40
|
-
const
|
|
37
|
+
const mockPluginWithConfig = {
|
|
41
38
|
module: jest.fn(() => <View />),
|
|
42
39
|
type: "general",
|
|
43
40
|
name: "Plugin with config",
|
|
@@ -47,15 +44,7 @@ const PluginWithConfig = {
|
|
|
47
44
|
|
|
48
45
|
const components = { ScreenType1, ScreenType2, PlayerController };
|
|
49
46
|
|
|
50
|
-
const
|
|
51
|
-
ScreenType3,
|
|
52
|
-
ScreenType4,
|
|
53
|
-
playerPlugin,
|
|
54
|
-
ScreenPlugin,
|
|
55
|
-
PluginWithConfig,
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
const withAnalytics = {
|
|
47
|
+
const mockWithAnalytics = {
|
|
59
48
|
sendOnClickEvent: jest.fn(),
|
|
60
49
|
sendMenuClickEvent: jest.fn(),
|
|
61
50
|
sendMenuToggleEvent: jest.fn(),
|
|
@@ -66,24 +55,39 @@ const withAnalytics = {
|
|
|
66
55
|
sendScreenEvent: jest.fn(),
|
|
67
56
|
};
|
|
68
57
|
|
|
58
|
+
const mockUsePickFromState = jest.fn(() => {
|
|
59
|
+
return {
|
|
60
|
+
components,
|
|
61
|
+
plugins: {
|
|
62
|
+
ScreenType3: mockScreenType3,
|
|
63
|
+
ScreenType4: mockScreenType4,
|
|
64
|
+
playerPlugin: mockPlayerPlugin,
|
|
65
|
+
ScreenPlugin: mockScreenPlugin,
|
|
66
|
+
PluginWithConfig: mockPluginWithConfig,
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
|
|
69
71
|
jest.mock("@applicaster/zapp-react-native-utils/analyticsUtils", () => ({
|
|
70
|
-
useAnalytics: jest.fn().mockReturnValue(
|
|
72
|
+
useAnalytics: jest.fn().mockReturnValue(mockWithAnalytics),
|
|
71
73
|
}));
|
|
72
74
|
|
|
73
75
|
jest.mock("@applicaster/zapp-react-native-redux/hooks", () => ({
|
|
74
|
-
usePickFromState:
|
|
76
|
+
usePickFromState: mockUsePickFromState,
|
|
75
77
|
}));
|
|
76
78
|
|
|
79
|
+
const mockUseScreenAnalytics = jest.fn();
|
|
80
|
+
|
|
77
81
|
jest.mock(
|
|
78
82
|
"@applicaster/zapp-react-native-utils/analyticsUtils/helpers/hooks",
|
|
79
83
|
() => ({
|
|
80
|
-
useScreenAnalytics:
|
|
84
|
+
useScreenAnalytics: mockUseScreenAnalytics,
|
|
81
85
|
})
|
|
82
86
|
);
|
|
83
87
|
|
|
84
88
|
jest.mock("react-redux", () => ({
|
|
89
|
+
...jest.requireActual("react-redux"),
|
|
85
90
|
useDispatch: jest.fn(() => () => {}),
|
|
86
|
-
connect: realConnect,
|
|
87
91
|
}));
|
|
88
92
|
|
|
89
93
|
jest.mock("@applicaster/zapp-react-native-utils/reactHooks", () => ({
|
|
@@ -118,13 +122,13 @@ describe("<ScreenResolver />", () => {
|
|
|
118
122
|
it("picks screen from plugins if it exists", () => {
|
|
119
123
|
const wrapper = getWrapper("A1234", "screen_type_3", {});
|
|
120
124
|
|
|
121
|
-
expect(wrapper.find(
|
|
125
|
+
expect(wrapper.find(mockScreenType3.module)).toHaveProperty("length", 1);
|
|
122
126
|
});
|
|
123
127
|
|
|
124
128
|
it("picks the screen from its identifier if it exists", () => {
|
|
125
129
|
const wrapper = getWrapper("A1234", "screen-plugin", {});
|
|
126
130
|
|
|
127
|
-
expect(wrapper.find(
|
|
131
|
+
expect(wrapper.find(mockScreenPlugin.module)).toHaveProperty("length", 1);
|
|
128
132
|
});
|
|
129
133
|
|
|
130
134
|
it("picks screen from components if it doesn't exist in plugins", () => {
|
|
@@ -136,7 +140,7 @@ describe("<ScreenResolver />", () => {
|
|
|
136
140
|
it("renders the screen and passes screenId & locationState as props", () => {
|
|
137
141
|
const wrapper = getWrapper("A1234", "screen_type_3", "foo");
|
|
138
142
|
|
|
139
|
-
const screenWrapper = wrapper.find(
|
|
143
|
+
const screenWrapper = wrapper.find(mockScreenType3.module);
|
|
140
144
|
|
|
141
145
|
expect(screenWrapper.prop("screenId")).toEqual("A1234");
|
|
142
146
|
expect(screenWrapper.prop("screenData")).toEqual("foo");
|
|
@@ -151,7 +155,7 @@ describe("<ScreenResolver />", () => {
|
|
|
151
155
|
it("injects the plugin configuration if it exists", () => {
|
|
152
156
|
const wrapper = getWrapper("A1234", "plugin-with-config", {});
|
|
153
157
|
|
|
154
|
-
expect(wrapper.find(
|
|
158
|
+
expect(wrapper.find(mockPluginWithConfig.module).props()).toHaveProperty(
|
|
155
159
|
"configuration",
|
|
156
160
|
expect.objectContaining(pluginConfiguration)
|
|
157
161
|
);
|
|
@@ -160,7 +164,7 @@ describe("<ScreenResolver />", () => {
|
|
|
160
164
|
it("injects the plugin configuration if it exists, even when plugin is resolved by type", () => {
|
|
161
165
|
const wrapper = getWrapper("A1234", "screen_type_3", {});
|
|
162
166
|
|
|
163
|
-
expect(wrapper.find(
|
|
167
|
+
expect(wrapper.find(mockScreenType3.module).props()).toHaveProperty(
|
|
164
168
|
"configuration",
|
|
165
169
|
expect.objectContaining(pluginConfiguration)
|
|
166
170
|
);
|
package/Components/Tabs/Tab.tsx
CHANGED
|
@@ -69,8 +69,8 @@ const getStyles = (configuration, selected, focused) => {
|
|
|
69
69
|
? tab_cell_background_color_selected_active
|
|
70
70
|
: tab_cell_background_color_selected_default
|
|
71
71
|
: focused
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
? tab_cell_background_color_active
|
|
73
|
+
: tab_cell_background_color_default,
|
|
74
74
|
justifyContent: "center",
|
|
75
75
|
alignItems: "center",
|
|
76
76
|
position: "relative",
|
|
@@ -85,8 +85,8 @@ const getStyles = (configuration, selected, focused) => {
|
|
|
85
85
|
? tab_cell_border_color_active_focused
|
|
86
86
|
: tab_cell_border_color_active
|
|
87
87
|
: focused
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
? tab_cell_border_color_default_focused
|
|
89
|
+
: tab_cell_border_color_default,
|
|
90
90
|
},
|
|
91
91
|
label: {
|
|
92
92
|
fontFamily: text_label_font_family,
|
|
@@ -98,8 +98,8 @@ const getStyles = (configuration, selected, focused) => {
|
|
|
98
98
|
? text_label_selected_active_font_color
|
|
99
99
|
: text_label_selected_default_font_color
|
|
100
100
|
: focused
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
? text_label_active_font_color
|
|
102
|
+
: text_label_default_font_color,
|
|
103
103
|
},
|
|
104
104
|
underline: {
|
|
105
105
|
position: "absolute",
|
|
@@ -138,6 +138,7 @@ const Tab = ({ title, selected, handleOnPress }: Props, ref: any) => {
|
|
|
138
138
|
|
|
139
139
|
return (
|
|
140
140
|
<TouchableWithoutFeedback
|
|
141
|
+
testID="tab-touchable"
|
|
141
142
|
onPressIn={handleOnPressIn}
|
|
142
143
|
onPressOut={handleOnPressOut}
|
|
143
144
|
onPress={handleOnPress}
|