Skip to content

Commit f4d006a

Browse files
rshestfacebook-github-bot
authored andcommitted
Optional prop for RNTesterApp to provide custom test lists (#41537)
Summary: Pull Request resolved: #41537 # Changelog: [Internal] - This allows to optionally provide a custom list of component/api test clauses into `RNTesterApp`. Reviewed By: christophpurrer Differential Revision: D51429407 fbshipit-source-id: 3ee35f13f6156fd055f6e0cbc788b7cf01c22b36
1 parent ba43dd2 commit f4d006a

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

packages/rn-tester/js/RNTesterAppShared.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
* @flow
99
*/
1010

11+
import type {RNTesterModuleInfo} from './types/RNTesterTypes';
12+
1113
import RNTesterModuleContainer from './components/RNTesterModuleContainer';
1214
import RNTesterModuleList from './components/RNTesterModuleList';
1315
import RNTesterNavBar, {navBarHeight} from './components/RNTesterNavbar';
@@ -28,7 +30,14 @@ import {BackHandler, StyleSheet, View, useColorScheme} from 'react-native';
2830

2931
// RNTester App currently uses in memory storage for storing navigation state
3032

31-
const RNTesterApp = (): React.Node => {
33+
const RNTesterApp = ({
34+
testList,
35+
}: {
36+
testList?: {
37+
components?: Array<RNTesterModuleInfo>,
38+
apis?: Array<RNTesterModuleInfo>,
39+
},
40+
}): React.Node => {
3241
const [state, dispatch] = React.useReducer(
3342
RNTesterNavigationReducer,
3443
initialNavigationState,
@@ -44,8 +53,8 @@ const RNTesterApp = (): React.Node => {
4453
} = state;
4554

4655
const examplesList = React.useMemo(
47-
() => getExamplesListWithRecentlyUsed({recentlyUsed}),
48-
[recentlyUsed],
56+
() => getExamplesListWithRecentlyUsed({recentlyUsed, testList}),
57+
[recentlyUsed, testList],
4958
);
5059

5160
const handleBackPress = React.useCallback(() => {

packages/rn-tester/js/utils/testerStateUtils.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,21 @@ const filterEmptySections = (examplesList: ExamplesList): any => {
4848

4949
export const getExamplesListWithRecentlyUsed = ({
5050
recentlyUsed,
51+
testList,
5152
}: {
5253
recentlyUsed: ComponentList,
54+
testList?: {
55+
components?: Array<RNTesterModuleInfo>,
56+
apis?: Array<RNTesterModuleInfo>,
57+
},
5358
}): ExamplesList | null => {
5459
// Return early if state has not been initialized from storage
5560
if (!recentlyUsed) {
5661
return null;
5762
}
5863

59-
const components = RNTesterList.Components.map(
64+
const componentList = testList?.components ?? RNTesterList.Components;
65+
const components = componentList.map(
6066
(componentExample): RNTesterModuleInfo => ({
6167
...componentExample,
6268
exampleType: Screens.COMPONENTS,
@@ -69,7 +75,8 @@ export const getExamplesListWithRecentlyUsed = ({
6975
)
7076
.filter(Boolean);
7177

72-
const apis = RNTesterList.APIs.map((apiExample): RNTesterModuleInfo => ({
78+
const apisList = testList?.apis ?? RNTesterList.APIs;
79+
const apis = apisList.map((apiExample): RNTesterModuleInfo => ({
7380
...apiExample,
7481
exampleType: Screens.APIS,
7582
}));

0 commit comments

Comments
 (0)