mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-04-29 04:45:19 +08:00
34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import * as React from 'react';
|
|
import { View, Text, Button } from 'react-native';
|
|
import { render, fireEvent } from '@testing-library/react-native';
|
|
import { NavigationContainer, ParamListBase } from '@react-navigation/native';
|
|
import { createBottomTabNavigator, BottomTabScreenProps } from '../index';
|
|
|
|
it('renders a bottom tab navigator with screens', async () => {
|
|
const Test = ({ route, navigation }: BottomTabScreenProps<ParamListBase>) => (
|
|
<View>
|
|
<Text>Screen {route.name}</Text>
|
|
<Button onPress={() => navigation.navigate('A')} title="Go to A" />
|
|
<Button onPress={() => navigation.navigate('B')} title="Go to B" />
|
|
</View>
|
|
);
|
|
|
|
const Tab = createBottomTabNavigator();
|
|
|
|
const { findByText, queryByText } = render(
|
|
<NavigationContainer>
|
|
<Tab.Navigator>
|
|
<Tab.Screen name="A" component={Test} />
|
|
<Tab.Screen name="B" component={Test} />
|
|
</Tab.Navigator>
|
|
</NavigationContainer>
|
|
);
|
|
|
|
expect(queryByText('Screen A')).not.toBeNull();
|
|
expect(queryByText('Screen B')).toBeNull();
|
|
|
|
fireEvent.press(await findByText('Go to B'));
|
|
|
|
expect(queryByText('Screen B')).not.toBeNull();
|
|
});
|