@applicaster/zapp-react-native-ui-components 13.0.0-alpha.8490438700 → 13.0.0-alpha.8541129242

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 (94) hide show
  1. package/Components/AnimatedInOut/index.tsx +5 -3
  2. package/Components/AppContainer/__tests__/AppContainer.test.js +4 -6
  3. package/Components/AudioPlayer/__tests__/Runtime.test.js +5 -8
  4. package/Components/AudioPlayer/__tests__/__snapshots__/audioPlayer.test.js.snap +54 -111
  5. package/Components/AudioPlayer/__tests__/__snapshots__/audioPlayerLayout.test.js.snap +36 -20
  6. package/Components/AudioPlayer/__tests__/artWork.test.js +3 -5
  7. package/Components/AudioPlayer/__tests__/audioPlayer.test.js +3 -5
  8. package/Components/AudioPlayer/__tests__/audioPlayerLayout.test.js +7 -8
  9. package/Components/AudioPlayer/__tests__/channel.test.js +3 -5
  10. package/Components/AudioPlayer/__tests__/summary.test.js +3 -5
  11. package/Components/AudioPlayer/__tests__/title.test.js +3 -5
  12. package/Components/BaseFocusable/index.tsx +1 -2
  13. package/Components/Cell/Cell.tsx +1 -0
  14. package/Components/Cell/CellWithFocusable.tsx +43 -58
  15. package/Components/Cell/TvOSCellComponent.tsx +20 -22
  16. package/Components/Cell/__tests__/CellWIthFocusable.test.js +13 -6
  17. package/Components/Cell/index.js +3 -1
  18. package/Components/CellRendererResolver/__tests__/cellRendererResolver.test.js +46 -48
  19. package/Components/ComponentResolver/__tests__/__snapshots__/componentResolver.test.js.snap +1 -42
  20. package/Components/ComponentResolver/__tests__/componentResolver.test.js +16 -22
  21. package/Components/ContentScreen/__tests__/contentScreen.test.js +3 -3
  22. package/Components/ErrorScreen/index.tsx +6 -6
  23. package/Components/Focusable/Focusable.tsx +1 -0
  24. package/Components/Focusable/FocusableTvOS.tsx +5 -1
  25. package/Components/Focusable/index.android.tsx +10 -3
  26. package/Components/FocusableGroup/FocusableTvOS.tsx +34 -83
  27. package/Components/FocusableGroup/index.tsx +1 -3
  28. package/Components/FocusableList/index.tsx +26 -9
  29. package/Components/FocusableScrollView/index.tsx +43 -13
  30. package/Components/Layout/TV/NavBarContainer.tsx +19 -23
  31. package/Components/Layout/TV/__tests__/__snapshots__/NavBarContainer.test.tsx.snap +3 -2
  32. package/Components/Layout/TV/__tests__/__snapshots__/ScreenContainer.test.tsx.snap +3 -2
  33. package/Components/MasterCell/DefaultComponents/ActionButton.tsx +2 -3
  34. package/Components/MasterCell/DefaultComponents/LiveImage/index.tsx +2 -2
  35. package/Components/MasterCell/SharedUI/ProgressBar/hooks/useFillInPercent.ts +2 -8
  36. package/Components/MasterCell/__tests__/__snapshots__/elementMapper.test.js.snap +4 -12
  37. package/Components/MasterCell/__tests__/__snapshots__/masterCell.test.js.snap +0 -229
  38. package/Components/MasterCell/__tests__/elementMapper.test.js +18 -5
  39. package/Components/MasterCell/__tests__/masterCell.test.js +26 -26
  40. package/Components/MasterCell/hooks/useAsyncRendering/MasterCellAsyncRenderManager.ts +2 -2
  41. package/Components/ModalComponent/Button/index.tsx +6 -6
  42. package/Components/OfflineHandler/NotificationView/NotificationView.lg.tsx +2 -2
  43. package/Components/OfflineHandler/NotificationView/NotificationView.samsung.tsx +2 -2
  44. package/Components/OfflineHandler/NotificationView/__tests__/index.test.tsx +0 -5
  45. package/Components/PlayerContainer/PlayerContainer.tsx +8 -8
  46. package/Components/PlayerContainer/ProgramInfo/index.tsx +2 -2
  47. package/Components/PlayerImageBackground/index.tsx +23 -3
  48. package/Components/River/ComponentsMap/ComponentsMap.tsx +0 -1
  49. package/Components/River/TV/index.tsx +6 -1
  50. package/Components/River/__tests__/__snapshots__/componentsMap.test.js.snap +37 -85
  51. package/Components/River/__tests__/__snapshots__/river.test.js.snap +20 -82
  52. package/Components/River/__tests__/river.test.js +75 -40
  53. package/Components/RouteManager/__tests__/__snapshots__/routeManager.test.js.snap +11 -4
  54. package/Components/RouteManager/__tests__/routeManager.test.js +29 -14
  55. package/Components/RouteManager/__tests__/testId.test.js +8 -6
  56. package/Components/Screen/index.tsx +4 -4
  57. package/Components/ScreenResolver/__tests__/screenResolver.test.js +91 -70
  58. package/Components/Tabs/Tab.tsx +5 -3
  59. package/Components/TextInputTv/index.tsx +2 -1
  60. package/Components/Transitioner/Scene.tsx +1 -1
  61. package/Components/Transitioner/Transitioner.tsx +3 -3
  62. package/Components/Transitioner/__tests__/Scene.test.js +25 -14
  63. package/Components/Transitioner/__tests__/__snapshots__/Scene.test.js.snap +12 -68
  64. package/Components/Transitioner/__tests__/__snapshots__/transitioner.test.js.snap +2 -2
  65. package/Components/Transitioner/__tests__/transitioner.test.js +13 -4
  66. package/Components/VideoLive/PlayerLiveImageComponent.tsx +3 -3
  67. package/Components/VideoLive/animationUtils.ts +7 -4
  68. package/Components/VideoModal/ModalAnimation/AnimatedScrollModal.tsx +11 -11
  69. package/Components/VideoModal/ModalAnimation/AnimationComponent.tsx +7 -7
  70. package/Components/VideoModal/ModalAnimation/ModalAnimationContext.tsx +2 -3
  71. package/Components/VideoModal/PlayerDetails.tsx +9 -6
  72. package/Components/VideoModal/PlayerWrapper.tsx +2 -2
  73. package/Components/Viewport/ViewportAware/__tests__/__snapshots__/viewportAware.test.js.snap +24 -36
  74. package/Components/Viewport/ViewportAware/__tests__/viewportAware.test.js +12 -18
  75. package/Components/Viewport/__tests__/utils.test.js +5 -4
  76. package/Components/ZappUIComponent/Placeholder.tsx +3 -1
  77. package/Components/ZappUIComponent/__tests__/{ZappUIComponent.test.js → ZappUIComponent.test.tsx} +26 -10
  78. package/Components/ZappUIComponent/index.tsx +3 -16
  79. package/Components/default-cell-renderer/__tests__/defaultCellRenderer.test.tsx +20 -17
  80. package/Components/default-cell-renderer/viewTrees/tv/DefaultCell/__tests__/DefaultCell.test.tsx +15 -11
  81. package/Contexts/ComponentsMapOffsetContext/index.tsx +49 -0
  82. package/Decorators/Navigator/__tests__/navigator.test.js +16 -16
  83. package/Decorators/Navigator/index.tsx +1 -1
  84. package/Decorators/RiverResolver/__tests__/riverResolver.test.tsx +18 -24
  85. package/Decorators/RiverResolver/index.tsx +1 -1
  86. package/Decorators/ZappPipesDataConnector/__tests__/zappPipesDataConnector.test.js +29 -22
  87. package/package.json +7 -7
  88. package/Components/CellRendererResolver/__tests__/__snapshots__/cellRendererResolver.test.js.snap +0 -53
  89. package/Components/RouteManager/__tests__/__snapshots__/testId.test.js.snap +0 -17
  90. package/Components/ScreenResolver/__tests__/__snapshots__/screenResolver.test.js.snap +0 -17
  91. package/Components/ZappUIComponent/__tests__/__snapshots__/ZappUIComponent.test.js.snap +0 -91
  92. package/Components/default-cell-renderer/__tests__/__snapshots__/defaultCellRenderer.test.tsx.snap +0 -338
  93. package/Decorators/Navigator/__tests__/__snapshots__/navigator.test.js.snap +0 -18
  94. package/Decorators/RiverResolver/__tests__/__snapshots__/riverResolver.test.tsx.snap +0 -28
@@ -22,126 +22,78 @@ exports[`componentsMap renders renders components map correctly 1`] = `
22
22
  flatListHeight={null}
23
23
  loadingState={
24
24
  BehaviorSubject {
25
- "_isScalar": false,
26
25
  "_value": {
27
26
  "done": false,
28
27
  "index": -1,
29
28
  "waitForAllComponents": false,
30
29
  },
31
30
  "closed": false,
31
+ "currentObservers": null,
32
32
  "hasError": false,
33
33
  "isStopped": false,
34
34
  "observers": [
35
- Subscriber {
36
- "_parentOrParents": null,
37
- "_subscriptions": [
38
- SubjectSubscription {
39
- "_parentOrParents": [Circular],
40
- "_subscriptions": null,
35
+ SafeSubscriber {
36
+ "_finalizers": [
37
+ Subscription {
38
+ "_finalizers": null,
39
+ "_parentage": [Circular],
41
40
  "closed": false,
42
- "subject": [Circular],
43
- "subscriber": [Circular],
41
+ "initialTeardown": [Function],
44
42
  },
45
43
  ],
44
+ "_parentage": null,
46
45
  "closed": false,
47
- "destination": SafeSubscriber {
48
- "_complete": undefined,
49
- "_context": [Circular],
50
- "_error": undefined,
51
- "_next": [Function],
52
- "_parentOrParents": null,
53
- "_parentSubscriber": [Circular],
54
- "_subscriptions": null,
55
- "closed": false,
56
- "destination": {
57
- "closed": true,
58
- "complete": [Function],
59
- "error": [Function],
46
+ "destination": ConsumerObserver {
47
+ "partialObserver": {
48
+ "complete": undefined,
49
+ "error": undefined,
60
50
  "next": [Function],
61
51
  },
62
- "isStopped": false,
63
- "syncErrorThrowable": false,
64
- "syncErrorThrown": false,
65
- "syncErrorValue": null,
66
52
  },
53
+ "initialTeardown": undefined,
67
54
  "isStopped": false,
68
- "syncErrorThrowable": true,
69
- "syncErrorThrown": false,
70
- "syncErrorValue": null,
71
55
  },
72
- Subscriber {
73
- "_parentOrParents": null,
74
- "_subscriptions": [
75
- SubjectSubscription {
76
- "_parentOrParents": [Circular],
77
- "_subscriptions": null,
56
+ SafeSubscriber {
57
+ "_finalizers": [
58
+ Subscription {
59
+ "_finalizers": null,
60
+ "_parentage": [Circular],
78
61
  "closed": false,
79
- "subject": [Circular],
80
- "subscriber": [Circular],
62
+ "initialTeardown": [Function],
81
63
  },
82
64
  ],
65
+ "_parentage": null,
83
66
  "closed": false,
84
- "destination": SafeSubscriber {
85
- "_complete": undefined,
86
- "_context": [Circular],
87
- "_error": undefined,
88
- "_next": [Function],
89
- "_parentOrParents": null,
90
- "_parentSubscriber": [Circular],
91
- "_subscriptions": null,
92
- "closed": false,
93
- "destination": {
94
- "closed": true,
95
- "complete": [Function],
96
- "error": [Function],
67
+ "destination": ConsumerObserver {
68
+ "partialObserver": {
69
+ "complete": undefined,
70
+ "error": undefined,
97
71
  "next": [Function],
98
72
  },
99
- "isStopped": false,
100
- "syncErrorThrowable": false,
101
- "syncErrorThrown": false,
102
- "syncErrorValue": null,
103
73
  },
74
+ "initialTeardown": undefined,
104
75
  "isStopped": false,
105
- "syncErrorThrowable": true,
106
- "syncErrorThrown": false,
107
- "syncErrorValue": null,
108
76
  },
109
- Subscriber {
110
- "_parentOrParents": null,
111
- "_subscriptions": [
112
- SubjectSubscription {
113
- "_parentOrParents": [Circular],
114
- "_subscriptions": null,
77
+ SafeSubscriber {
78
+ "_finalizers": [
79
+ Subscription {
80
+ "_finalizers": null,
81
+ "_parentage": [Circular],
115
82
  "closed": false,
116
- "subject": [Circular],
117
- "subscriber": [Circular],
83
+ "initialTeardown": [Function],
118
84
  },
119
85
  ],
86
+ "_parentage": null,
120
87
  "closed": false,
121
- "destination": SafeSubscriber {
122
- "_complete": undefined,
123
- "_context": [Circular],
124
- "_error": undefined,
125
- "_next": [Function],
126
- "_parentOrParents": null,
127
- "_parentSubscriber": [Circular],
128
- "_subscriptions": null,
129
- "closed": false,
130
- "destination": {
131
- "closed": true,
132
- "complete": [Function],
133
- "error": [Function],
88
+ "destination": ConsumerObserver {
89
+ "partialObserver": {
90
+ "complete": undefined,
91
+ "error": undefined,
134
92
  "next": [Function],
135
93
  },
136
- "isStopped": false,
137
- "syncErrorThrowable": false,
138
- "syncErrorThrown": false,
139
- "syncErrorValue": null,
140
94
  },
95
+ "initialTeardown": undefined,
141
96
  "isStopped": false,
142
- "syncErrorThrowable": true,
143
- "syncErrorThrown": false,
144
- "syncErrorValue": null,
145
97
  },
146
98
  ],
147
99
  "thrownError": null,
@@ -1,89 +1,27 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`When River has a general_content type <River /> renders correctly 1`] = `
4
- <ContextProvider
5
- value={null}
6
- >
7
- <RiverWithData
8
- appData={
9
- {
10
- "layoutVersion": "v1",
11
- }
12
- }
13
- dispatch={[Function]}
14
- rivers={
15
- {
16
- "A1234": {
17
- "home": true,
18
- "id": "A1234",
19
- "name": "foo",
20
- "type": "general_content",
21
- "ui_components": [
22
- {
23
- "component_type": "hero",
24
- },
25
- {
26
- "component_type": "grid",
27
- },
28
- ],
29
- },
30
- "B4567": {
31
- "id": "B4567",
32
- },
33
- "C0987": {
34
- "home": false,
35
- "id": "C0987",
36
- "name": "Some-Screen-Plugin",
37
- "type": "some-screen-plugin",
38
- "ui_components": [],
39
- },
40
- }
41
- }
42
- screenId="A1234"
43
- store={
44
- {
45
- "clearActions": [Function],
46
- "dispatch": [Function],
47
- "getActions": [Function],
48
- "getState": [Function],
49
- "replaceReducer": [Function],
50
- "subscribe": [Function],
51
- }
52
- }
53
- />
54
- </ContextProvider>
55
- `;
56
-
57
- exports[`When River has a general_content type <RiverComponent /> renders correctly 1`] = `
58
- <GeneralContentScreen
59
- groupId="ZF-C4"
60
- screenId="A1234"
61
- />
62
- `;
63
-
64
- exports[`When River has any other type other than general_content <RiverComponent /> renders correctly 1`] = `
65
- <WithProvider
66
- screenData={
3
+ exports[`When River has a general_content type renders River component correctly 1`] = `
4
+ <View
5
+ onLayout={[Function]}
6
+ style={
67
7
  {
68
- "groupId": undefined,
69
- "home": false,
70
- "id": "C0987",
71
- "name": "Some-Screen-Plugin",
72
- "type": "some-screen-plugin",
73
- "ui_components": [],
8
+ "flex": 1,
74
9
  }
75
10
  }
76
- screenId="C0987"
77
- screenType="some-screen-plugin"
78
- />
79
- `;
80
-
81
- exports[`When River has feed url <RiverComponent /> renders correctly 1`] = `
82
- <Connect(FeedLoaderComponent)
83
- feedUrl="https://some-feed-url.net"
84
- refreshCallback={[Function]}
85
- refreshing={false}
11
+ testID="on-layout-view"
86
12
  >
87
- <Component />
88
- </Connect(FeedLoaderComponent)>
13
+ <View
14
+ style={
15
+ {
16
+ "display": "none",
17
+ "flex": 1,
18
+ }
19
+ }
20
+ >
21
+ <View
22
+ screenId="A1234"
23
+ testID="general-content-screen"
24
+ />
25
+ </View>
26
+ </View>
89
27
  `;
@@ -1,13 +1,50 @@
1
1
  import React from "react";
2
- import { shallow } from "enzyme";
3
- import { shallowToJson } from "enzyme-to-json";
2
+ import { render, screen } from "@testing-library/react-native";
4
3
  import configureStore from "redux-mock-store";
4
+ import { renderWithProviders } from "@applicaster/zapp-react-native-utils/testUtils";
5
+ import { Provider } from "react-redux";
5
6
 
6
- import { GeneralContentScreen } from "../../GeneralContentScreen";
7
- import { FeedLoader } from "../../FeedLoader";
8
- import { River } from "../index";
9
- import { RiverComponent } from "../River";
7
+ import { River } from "../";
10
8
  import { ScreenResolver } from "../../ScreenResolver";
9
+ import { RiverComponent } from "../River";
10
+
11
+ jest.mock(
12
+ "@applicaster/zapp-react-native-utils/reactHooks/navigation/useIsScreenActive",
13
+ () => ({
14
+ useIsScreenActive: jest.fn(() => true),
15
+ })
16
+ );
17
+
18
+ jest.mock(
19
+ "@applicaster/zapp-react-native-ui-components/Components/GeneralContentScreen",
20
+ () => {
21
+ const { View } = jest.requireActual("react-native");
22
+
23
+ return {
24
+ GeneralContentScreen: (props) => (
25
+ <View testID="general-content-screen" {...props} />
26
+ ),
27
+ };
28
+ }
29
+ );
30
+
31
+ jest.mock(
32
+ "@applicaster/zapp-react-native-utils/analyticsUtils/helpers/hooks",
33
+ () => ({
34
+ useScreenAnalytics: jest.fn(),
35
+ })
36
+ );
37
+
38
+ jest.mock(
39
+ "@applicaster/zapp-react-native-utils/reactHooks/navigation/useNavigation",
40
+ () => ({
41
+ useNavigation: jest.fn(() => ({
42
+ videoModalState: {
43
+ mode: "test",
44
+ },
45
+ })),
46
+ })
47
+ );
11
48
 
12
49
  const river = {
13
50
  home: true,
@@ -55,24 +92,24 @@ const appData = { layoutVersion: "v1" };
55
92
  const store = configureStore()({ rivers, appData });
56
93
 
57
94
  describe("When River has a general_content type", () => {
58
- const wrapper = shallow(<RiverComponent {...riverProps} />);
59
-
60
- describe("<RiverComponent />", () => {
61
- it("renders correctly", () => {
62
- expect(shallowToJson(wrapper)).toMatchSnapshot();
63
- });
64
-
65
- it("it returns a GeneralContentScreen", () => {
66
- expect(wrapper.find(GeneralContentScreen).length).toBe(1);
67
- });
95
+ it("renders GeneralContentScreen correctly", () => {
96
+ const { getByTestId } = render(
97
+ <Provider store={store}>
98
+ <RiverComponent {...riverProps} />
99
+ </Provider>
100
+ );
101
+
102
+ expect(getByTestId("general-content-screen")).toBeTruthy();
68
103
  });
69
104
 
70
- describe("<River />", () => {
71
- const wrapper = shallow(<River screenId="A1234" store={store} />);
105
+ it("renders River component correctly", () => {
106
+ const wrapper = render(
107
+ <Provider store={store}>
108
+ <River screenId="A1234" />
109
+ </Provider>
110
+ );
72
111
 
73
- it("renders correctly", () => {
74
- expect(shallowToJson(wrapper)).toMatchSnapshot();
75
- });
112
+ expect(wrapper.toJSON()).toMatchSnapshot();
76
113
  });
77
114
  });
78
115
 
@@ -83,16 +120,10 @@ describe("When River has any other type other than general_content", () => {
83
120
  appData,
84
121
  };
85
122
 
86
- const wrapper = shallow(<RiverComponent {...riverPropsWithScreenPlugin} />);
87
-
88
- describe("<RiverComponent />", () => {
89
- it("renders correctly", () => {
90
- expect(shallowToJson(wrapper)).toMatchSnapshot();
91
- });
123
+ it("renders ScreenResolver correctly", () => {
124
+ renderWithProviders(<RiverComponent {...riverPropsWithScreenPlugin} />);
92
125
 
93
- it("it returns a ScreenResolver", () => {
94
- expect(wrapper.find(ScreenResolver).length).toBe(1);
95
- });
126
+ expect(screen.UNSAFE_getByType(ScreenResolver)).toBeDefined();
96
127
  });
97
128
  });
98
129
 
@@ -104,15 +135,19 @@ describe("When River has feed url", () => {
104
135
  appData: { layoutVersion: "v1" },
105
136
  };
106
137
 
107
- const wrapper = shallow(<RiverComponent {...riverPropsWithFeedUrl} />);
108
-
109
- describe("<RiverComponent />", () => {
110
- it("renders correctly", () => {
111
- expect(shallowToJson(wrapper)).toMatchSnapshot();
112
- });
113
-
114
- it("it returns a FeedLoader if it's a v1 layout", () => {
115
- expect(wrapper.find(FeedLoader).length).toBe(1);
116
- });
138
+ it("renders FeedLoader when layout is v1", () => {
139
+ const wrapper = renderWithProviders(
140
+ <RiverComponent {...riverPropsWithFeedUrl} />,
141
+ {
142
+ zappPipes: {
143
+ "https://some-feed-url.net": {
144
+ loading: false,
145
+ data: { entry: [] },
146
+ },
147
+ },
148
+ }
149
+ );
150
+
151
+ expect(wrapper.getByTestId("general-content-screen")).toBeDefined();
117
152
  });
118
153
  });
@@ -1,10 +1,16 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`<RouteManager /> renders correctly 1`] = `
4
- <TestId
5
- screenId="A1234"
4
+ <View
5
+ accessibilityLabel="A1234"
6
+ style={
7
+ {
8
+ "flex": 1,
9
+ }
10
+ }
11
+ testID="A1234"
6
12
  >
7
- <WithProvider
13
+ <View
8
14
  pathname="/river/A1234"
9
15
  screenData={
10
16
  {
@@ -13,6 +19,7 @@ exports[`<RouteManager /> renders correctly 1`] = `
13
19
  }
14
20
  screenId="A1234"
15
21
  screenType="river"
22
+ testID="screen-resolver"
16
23
  />
17
- </TestId>
24
+ </View>
18
25
  `;
@@ -1,31 +1,46 @@
1
1
  import React from "react";
2
- import { shallow } from "enzyme";
3
- import { shallowToJson } from "enzyme-to-json";
2
+ import { render } from "@testing-library/react-native";
4
3
 
5
- const pathname = "/river/A1234";
6
- const screenData = { id: "A1234" };
4
+ import { RouteManager } from "../";
5
+
6
+ const mockPathname = "/river/A1234";
7
+ const mockScreenData = { id: "A1234" };
7
8
 
8
9
  jest.mock("@applicaster/zapp-react-native-utils/reactHooks/navigation", () => ({
9
- useRoute: jest.fn(() => ({ pathname: pathname, screenData: screenData })),
10
+ useRoute: jest.fn(() => ({
11
+ pathname: mockPathname,
12
+ screenData: mockScreenData,
13
+ })),
10
14
  }));
11
15
 
12
- const {
13
- ScreenResolver,
14
- } = require("@applicaster/zapp-react-native-ui-components/Components/ScreenResolver");
16
+ jest.mock(
17
+ "@applicaster/zapp-react-native-ui-components/Components/ScreenResolver",
18
+ () => {
19
+ const { View } = jest.requireActual("react-native");
15
20
 
16
- const { RouteManager } = require("../index");
21
+ return {
22
+ ScreenResolver: (props) => <View testID="screen-resolver" {...props} />,
23
+ };
24
+ }
25
+ );
17
26
 
18
27
  describe("<RouteManager />", () => {
19
- const wrapper = shallow(
20
- <RouteManager pathname={pathname} screenData={screenData} />
21
- );
28
+ let wrapper;
29
+
30
+ beforeEach(() => {
31
+ jest.clearAllMocks();
32
+
33
+ wrapper = render(
34
+ <RouteManager pathname={mockPathname} screenData={mockScreenData} />
35
+ );
36
+ });
22
37
 
23
38
  it("renders correctly", () => {
24
- expect(shallowToJson(wrapper)).toMatchSnapshot();
39
+ expect(wrapper.toJSON()).toMatchSnapshot();
25
40
  });
26
41
 
27
42
  it("passes the correct props to ScreenResolver", () => {
28
- expect(wrapper.find(ScreenResolver).props()).toEqual({
43
+ expect(wrapper.getByTestId("screen-resolver").props).toMatchObject({
29
44
  pathname: "/river/A1234",
30
45
  screenType: "river",
31
46
  screenId: "A1234",
@@ -2,8 +2,8 @@
2
2
  /* eslint-disable react/prop-types */
3
3
  import React from "react";
4
4
  import { View, Text } from "react-native";
5
- import { shallow } from "enzyme";
6
- import { shallowToJson } from "enzyme-to-json";
5
+
6
+ import { render } from "@testing-library/react-native";
7
7
 
8
8
  import { TestId } from "../TestId";
9
9
 
@@ -17,14 +17,16 @@ const screenId = "A1234";
17
17
 
18
18
  describe("TestId", () => {
19
19
  it("renders correctly and assigns the testID to a wrapping view", () => {
20
- const wrapper = shallow(
20
+ const wrapper = render(
21
21
  <TestId screenId={screenId}>
22
22
  <TestComponent name="dev test" />
23
23
  </TestId>
24
24
  );
25
25
 
26
- expect(shallowToJson(wrapper)).toMatchSnapshot();
27
- expect(wrapper.find(View).prop("testID")).toEqual(screenId);
28
- expect(wrapper.find(View).prop("accessibilityLabel")).toEqual(screenId);
26
+ expect(wrapper.getByTestId(screenId)).toBeTruthy();
27
+
28
+ expect(wrapper.getByTestId(screenId).props.accessibilityLabel).toEqual(
29
+ screenId
30
+ );
29
31
  });
30
32
  });
@@ -6,16 +6,16 @@ import { usePickFromState } from "@applicaster/zapp-react-native-redux/hooks";
6
6
  import { useTheme } from "@applicaster/zapp-react-native-utils/theme";
7
7
  import { getComponentModule } from "@applicaster/zapp-react-native-utils/pluginUtils";
8
8
  import {
9
- shouldNavBarDisplayMenu,
10
9
  getNavBarProps,
11
10
  getScreenId,
11
+ shouldNavBarDisplayMenu,
12
12
  } from "@applicaster/zapp-react-native-utils/navigationUtils";
13
13
  import {
14
- useRoute,
15
14
  useCurrentScreenData,
16
15
  useNavbarState,
17
- useScreenData,
18
16
  useNavigation,
17
+ useRoute,
18
+ useScreenData,
19
19
  } from "@applicaster/zapp-react-native-utils/reactHooks";
20
20
  import { getNavigationPluginModule } from "@applicaster/zapp-react-native-app/App/Layout/layoutHelpers";
21
21
 
@@ -98,7 +98,7 @@ export function Screen(_props: Props) {
98
98
  <View style={style}>
99
99
  {isReady ? (
100
100
  <>
101
- {navBarProps && <NavBar {...navBarProps} hasMenu={hasMenu} />}
101
+ {navBarProps ? <NavBar {...navBarProps} hasMenu={hasMenu} /> : null}
102
102
 
103
103
  <OfflineFallbackScreen>
104
104
  {/* @TODO RouteManager doesn't use props, can they be removed ? */}