Add tests (unsure why Transitioner is failing)
This commit is contained in:
parent
199438959e
commit
9344a0a0b0
|
@ -52,7 +52,7 @@
|
||||||
"react": "16.3.1",
|
"react": "16.3.1",
|
||||||
"react-dom": "16.3.1",
|
"react-dom": "16.3.1",
|
||||||
"react-native": "~0.55.4",
|
"react-native": "~0.55.4",
|
||||||
"react-navigation": "^2.10.0",
|
"react-navigation": "^2.11.2",
|
||||||
"react-test-renderer": "16.3.1"
|
"react-test-renderer": "16.3.1"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"extends": "../../../.eslintrc",
|
||||||
|
"env": {
|
||||||
|
"jest": true
|
||||||
|
},
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
import React from 'react';
|
||||||
|
import renderer from 'react-test-renderer';
|
||||||
|
import StackNavigator from '../createContainedStackNavigator';
|
||||||
|
|
||||||
|
const SubNavigator = StackNavigator({
|
||||||
|
Home: {
|
||||||
|
screen: () => null,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const NavNestedDirect = StackNavigator({
|
||||||
|
Sub: {
|
||||||
|
screen: SubNavigator,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const NavNestedIndirect = StackNavigator({
|
||||||
|
Sub: {
|
||||||
|
// eslint-disable-next-line react/display-name
|
||||||
|
screen: props => <SubNavigator {...props} />,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
/* Prevent React error boundaries from swallowing the errors */
|
||||||
|
NavNestedIndirect.prototype.componentDidCatch = null;
|
||||||
|
SubNavigator.prototype.componentDidCatch = null;
|
||||||
|
|
||||||
|
describe('Nested navigators', () => {
|
||||||
|
it('renders succesfully as direct child', () => {
|
||||||
|
const rendered = renderer.create(<NavNestedDirect />).toJSON();
|
||||||
|
expect(rendered).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('throw when trying to pass navigation prop', () => {
|
||||||
|
const tryRender = () => {
|
||||||
|
renderer.create(<NavNestedIndirect />);
|
||||||
|
};
|
||||||
|
expect(tryRender).toThrowErrorMatchingSnapshot();
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,93 @@
|
||||||
|
import React, { Component } from 'react';
|
||||||
|
import { StyleSheet, View } from 'react-native';
|
||||||
|
import renderer from 'react-test-renderer';
|
||||||
|
|
||||||
|
import StackNavigator from '../createContainedStackNavigator';
|
||||||
|
import { withNavigation } from 'react-navigation';
|
||||||
|
import NavigationTestUtils from 'react-navigation/NavigationTestUtils';
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
header: {
|
||||||
|
opacity: 0.5,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
class HomeScreen extends Component {
|
||||||
|
static navigationOptions = ({ navigation }) => ({
|
||||||
|
title: `Welcome ${
|
||||||
|
navigation.state.params ? navigation.state.params.user : 'anonymous'
|
||||||
|
}`,
|
||||||
|
gesturesEnabled: true,
|
||||||
|
headerStyle: [{ backgroundColor: 'red' }, styles.header],
|
||||||
|
});
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const routeConfig = {
|
||||||
|
Home: {
|
||||||
|
screen: HomeScreen,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
describe('StackNavigator', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
NavigationTestUtils.resetInternalState();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('renders successfully', () => {
|
||||||
|
const MyStackNavigator = StackNavigator(routeConfig);
|
||||||
|
const rendered = renderer.create(<MyStackNavigator />).toJSON();
|
||||||
|
|
||||||
|
expect(rendered).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('applies correct values when headerRight is present', () => {
|
||||||
|
const MyStackNavigator = StackNavigator({
|
||||||
|
Home: {
|
||||||
|
screen: HomeScreen,
|
||||||
|
navigationOptions: {
|
||||||
|
headerRight: <View />,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const rendered = renderer.create(<MyStackNavigator />).toJSON();
|
||||||
|
|
||||||
|
expect(rendered).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('passes navigation to headerRight when wrapped in withNavigation', () => {
|
||||||
|
const spy = jest.fn();
|
||||||
|
|
||||||
|
class TestComponent extends React.Component {
|
||||||
|
render() {
|
||||||
|
return <View>{this.props.onPress(this.props.navigation)}</View>;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const TestComponentWithNavigation = withNavigation(TestComponent);
|
||||||
|
|
||||||
|
class A extends React.Component {
|
||||||
|
static navigationOptions = {
|
||||||
|
headerRight: <TestComponentWithNavigation onPress={spy} />,
|
||||||
|
};
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return <View />;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const Nav = StackNavigator({ A: { screen: A } });
|
||||||
|
|
||||||
|
renderer.create(<Nav />);
|
||||||
|
|
||||||
|
expect(spy).toBeCalledWith(
|
||||||
|
expect.objectContaining({
|
||||||
|
navigate: expect.any(Function),
|
||||||
|
addListener: expect.any(Function),
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,367 @@
|
||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`Nested navigators renders succesfully as direct child 1`] = `
|
||||||
|
<View
|
||||||
|
onLayout={[Function]}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
onMoveShouldSetResponder={[Function]}
|
||||||
|
onMoveShouldSetResponderCapture={[Function]}
|
||||||
|
onResponderEnd={[Function]}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderReject={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderStart={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
|
onStartShouldSetResponderCapture={[Function]}
|
||||||
|
style={
|
||||||
|
Array [
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
"flexDirection": "column-reverse",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "#000",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
pointerEvents="auto"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "#E9E9EF",
|
||||||
|
"bottom": 0,
|
||||||
|
"left": 0,
|
||||||
|
"marginTop": 0,
|
||||||
|
"opacity": 1,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"shadowColor": "black",
|
||||||
|
"shadowOffset": Object {
|
||||||
|
"height": 0,
|
||||||
|
"width": 0,
|
||||||
|
},
|
||||||
|
"shadowOpacity": 0.2,
|
||||||
|
"shadowRadius": 5,
|
||||||
|
"top": 0,
|
||||||
|
"transform": Array [
|
||||||
|
Object {
|
||||||
|
"translateX": 0,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"translateY": 0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
onLayout={[Function]}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
onMoveShouldSetResponder={[Function]}
|
||||||
|
onMoveShouldSetResponderCapture={[Function]}
|
||||||
|
onResponderEnd={[Function]}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderReject={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderStart={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
|
onStartShouldSetResponderCapture={[Function]}
|
||||||
|
style={
|
||||||
|
Array [
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
"flexDirection": "column-reverse",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "#000",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
pointerEvents="auto"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "#E9E9EF",
|
||||||
|
"bottom": 0,
|
||||||
|
"left": 0,
|
||||||
|
"marginTop": 0,
|
||||||
|
"opacity": 1,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"shadowColor": "black",
|
||||||
|
"shadowOffset": Object {
|
||||||
|
"height": 0,
|
||||||
|
"width": 0,
|
||||||
|
},
|
||||||
|
"shadowOpacity": 0.2,
|
||||||
|
"shadowRadius": 5,
|
||||||
|
"top": 0,
|
||||||
|
"transform": Array [
|
||||||
|
Object {
|
||||||
|
"translateX": 0,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"translateY": 0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
<View
|
||||||
|
onLayout={[Function]}
|
||||||
|
pointerEvents="box-none"
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "#F7F7F7",
|
||||||
|
"transform": Array [
|
||||||
|
Object {
|
||||||
|
"translateX": 0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
onLayout={[Function]}
|
||||||
|
pointerEvents="box-none"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "#F7F7F7",
|
||||||
|
"borderBottomColor": "#A7A7AA",
|
||||||
|
"borderBottomWidth": 0.5,
|
||||||
|
"height": 64,
|
||||||
|
"paddingBottom": 0,
|
||||||
|
"paddingLeft": 0,
|
||||||
|
"paddingRight": 0,
|
||||||
|
"paddingTop": 20,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"bottom": 0,
|
||||||
|
"left": 0,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"top": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"bottom": 0,
|
||||||
|
"flexDirection": "row",
|
||||||
|
"left": 0,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"top": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
pointerEvents="box-none"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"alignItems": "center",
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"bottom": 0,
|
||||||
|
"flexDirection": "row",
|
||||||
|
"justifyContent": "center",
|
||||||
|
"left": 0,
|
||||||
|
"opacity": 1,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"top": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<Text
|
||||||
|
accessibilityTraits="header"
|
||||||
|
accessible={true}
|
||||||
|
allowFontScaling={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
ellipsizeMode="tail"
|
||||||
|
numberOfLines={1}
|
||||||
|
onLayout={[Function]}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"color": "rgba(0, 0, 0, .9)",
|
||||||
|
"fontSize": 17,
|
||||||
|
"fontWeight": "700",
|
||||||
|
"marginHorizontal": 16,
|
||||||
|
"textAlign": "center",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
<View
|
||||||
|
onLayout={[Function]}
|
||||||
|
pointerEvents="box-none"
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "#F7F7F7",
|
||||||
|
"transform": Array [
|
||||||
|
Object {
|
||||||
|
"translateX": 0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
onLayout={[Function]}
|
||||||
|
pointerEvents="box-none"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "#F7F7F7",
|
||||||
|
"borderBottomColor": "#A7A7AA",
|
||||||
|
"borderBottomWidth": 0.5,
|
||||||
|
"height": 64,
|
||||||
|
"paddingBottom": 0,
|
||||||
|
"paddingLeft": 0,
|
||||||
|
"paddingRight": 0,
|
||||||
|
"paddingTop": 20,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"bottom": 0,
|
||||||
|
"left": 0,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"top": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"bottom": 0,
|
||||||
|
"flexDirection": "row",
|
||||||
|
"left": 0,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"top": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
pointerEvents="box-none"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"alignItems": "center",
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"bottom": 0,
|
||||||
|
"flexDirection": "row",
|
||||||
|
"justifyContent": "center",
|
||||||
|
"left": 0,
|
||||||
|
"opacity": 1,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"top": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<Text
|
||||||
|
accessibilityTraits="header"
|
||||||
|
accessible={true}
|
||||||
|
allowFontScaling={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
ellipsizeMode="tail"
|
||||||
|
numberOfLines={1}
|
||||||
|
onLayout={[Function]}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"color": "rgba(0, 0, 0, .9)",
|
||||||
|
"fontSize": 17,
|
||||||
|
"fontWeight": "700",
|
||||||
|
"marginHorizontal": 16,
|
||||||
|
"textAlign": "center",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Nested navigators throw when trying to pass navigation prop 1`] = `"No \\"routes\\" found in navigation state. Did you try to pass the navigation prop of a React component to a Navigator child? See https://reactnavigation.org/docs/en/custom-navigators.html#navigator-navigation-prop"`;
|
|
@ -0,0 +1,391 @@
|
||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`StackNavigator applies correct values when headerRight is present 1`] = `
|
||||||
|
<View
|
||||||
|
onLayout={[Function]}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
onMoveShouldSetResponder={[Function]}
|
||||||
|
onMoveShouldSetResponderCapture={[Function]}
|
||||||
|
onResponderEnd={[Function]}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderReject={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderStart={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
|
onStartShouldSetResponderCapture={[Function]}
|
||||||
|
style={
|
||||||
|
Array [
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
"flexDirection": "column-reverse",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "#000",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
pointerEvents="auto"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "#E9E9EF",
|
||||||
|
"bottom": 0,
|
||||||
|
"left": 0,
|
||||||
|
"marginTop": 0,
|
||||||
|
"opacity": 1,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"shadowColor": "black",
|
||||||
|
"shadowOffset": Object {
|
||||||
|
"height": 0,
|
||||||
|
"width": 0,
|
||||||
|
},
|
||||||
|
"shadowOpacity": 0.2,
|
||||||
|
"shadowRadius": 5,
|
||||||
|
"top": 0,
|
||||||
|
"transform": Array [
|
||||||
|
Object {
|
||||||
|
"translateX": 0,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"translateY": 0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
<View
|
||||||
|
onLayout={[Function]}
|
||||||
|
pointerEvents="box-none"
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "red",
|
||||||
|
"transform": Array [
|
||||||
|
Object {
|
||||||
|
"translateX": 0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
onLayout={[Function]}
|
||||||
|
pointerEvents="box-none"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "red",
|
||||||
|
"borderBottomColor": "#A7A7AA",
|
||||||
|
"borderBottomWidth": 0.5,
|
||||||
|
"height": 64,
|
||||||
|
"opacity": 0.5,
|
||||||
|
"paddingBottom": 0,
|
||||||
|
"paddingLeft": 0,
|
||||||
|
"paddingRight": 0,
|
||||||
|
"paddingTop": 20,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"bottom": 0,
|
||||||
|
"left": 0,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"top": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"bottom": 0,
|
||||||
|
"flexDirection": "row",
|
||||||
|
"left": 0,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"top": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
pointerEvents="box-none"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"alignItems": "center",
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"bottom": 0,
|
||||||
|
"flexDirection": "row",
|
||||||
|
"justifyContent": "center",
|
||||||
|
"left": 70,
|
||||||
|
"opacity": 1,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 70,
|
||||||
|
"top": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<Text
|
||||||
|
accessibilityTraits="header"
|
||||||
|
accessible={true}
|
||||||
|
allowFontScaling={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
ellipsizeMode="tail"
|
||||||
|
numberOfLines={1}
|
||||||
|
onLayout={[Function]}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"color": "rgba(0, 0, 0, .9)",
|
||||||
|
"fontSize": 17,
|
||||||
|
"fontWeight": "700",
|
||||||
|
"marginHorizontal": 16,
|
||||||
|
"textAlign": "center",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
Welcome anonymous
|
||||||
|
</Text>
|
||||||
|
</View>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
pointerEvents="box-none"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"alignItems": "center",
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"bottom": 0,
|
||||||
|
"flexDirection": "row",
|
||||||
|
"opacity": 1,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"top": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View />
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`StackNavigator renders successfully 1`] = `
|
||||||
|
<View
|
||||||
|
onLayout={[Function]}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
onMoveShouldSetResponder={[Function]}
|
||||||
|
onMoveShouldSetResponderCapture={[Function]}
|
||||||
|
onResponderEnd={[Function]}
|
||||||
|
onResponderGrant={[Function]}
|
||||||
|
onResponderMove={[Function]}
|
||||||
|
onResponderReject={[Function]}
|
||||||
|
onResponderRelease={[Function]}
|
||||||
|
onResponderStart={[Function]}
|
||||||
|
onResponderTerminate={[Function]}
|
||||||
|
onResponderTerminationRequest={[Function]}
|
||||||
|
onStartShouldSetResponder={[Function]}
|
||||||
|
onStartShouldSetResponderCapture={[Function]}
|
||||||
|
style={
|
||||||
|
Array [
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
"flexDirection": "column-reverse",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "#000",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
pointerEvents="auto"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "#E9E9EF",
|
||||||
|
"bottom": 0,
|
||||||
|
"left": 0,
|
||||||
|
"marginTop": 0,
|
||||||
|
"opacity": 1,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"shadowColor": "black",
|
||||||
|
"shadowOffset": Object {
|
||||||
|
"height": 0,
|
||||||
|
"width": 0,
|
||||||
|
},
|
||||||
|
"shadowOpacity": 0.2,
|
||||||
|
"shadowRadius": 5,
|
||||||
|
"top": 0,
|
||||||
|
"transform": Array [
|
||||||
|
Object {
|
||||||
|
"translateX": 0,
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"translateY": 0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
<View
|
||||||
|
onLayout={[Function]}
|
||||||
|
pointerEvents="box-none"
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "red",
|
||||||
|
"transform": Array [
|
||||||
|
Object {
|
||||||
|
"translateX": 0,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
onLayout={[Function]}
|
||||||
|
pointerEvents="box-none"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"backgroundColor": "red",
|
||||||
|
"borderBottomColor": "#A7A7AA",
|
||||||
|
"borderBottomWidth": 0.5,
|
||||||
|
"height": 64,
|
||||||
|
"opacity": 0.5,
|
||||||
|
"paddingBottom": 0,
|
||||||
|
"paddingLeft": 0,
|
||||||
|
"paddingRight": 0,
|
||||||
|
"paddingTop": 20,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"bottom": 0,
|
||||||
|
"left": 0,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"top": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"flex": 1,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"bottom": 0,
|
||||||
|
"flexDirection": "row",
|
||||||
|
"left": 0,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"top": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<View
|
||||||
|
collapsable={undefined}
|
||||||
|
pointerEvents="box-none"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"alignItems": "center",
|
||||||
|
"backgroundColor": "transparent",
|
||||||
|
"bottom": 0,
|
||||||
|
"flexDirection": "row",
|
||||||
|
"justifyContent": "center",
|
||||||
|
"left": 0,
|
||||||
|
"opacity": 1,
|
||||||
|
"position": "absolute",
|
||||||
|
"right": 0,
|
||||||
|
"top": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<Text
|
||||||
|
accessibilityTraits="header"
|
||||||
|
accessible={true}
|
||||||
|
allowFontScaling={true}
|
||||||
|
collapsable={undefined}
|
||||||
|
ellipsizeMode="tail"
|
||||||
|
numberOfLines={1}
|
||||||
|
onLayout={[Function]}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"color": "rgba(0, 0, 0, .9)",
|
||||||
|
"fontSize": 17,
|
||||||
|
"fontWeight": "700",
|
||||||
|
"marginHorizontal": 16,
|
||||||
|
"textAlign": "center",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
Welcome anonymous
|
||||||
|
</Text>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
`;
|
|
@ -0,0 +1,49 @@
|
||||||
|
/* eslint react/display-name:0 */
|
||||||
|
import React from 'react';
|
||||||
|
import renderer from 'react-test-renderer';
|
||||||
|
import Transitioner from '../Transitioner';
|
||||||
|
|
||||||
|
describe('Transitioner', () => {
|
||||||
|
it('should not trigger onTransitionStart and onTransitionEnd when route params are changed', () => {
|
||||||
|
const onTransitionStartCallback = jest.fn();
|
||||||
|
const onTransitionEndCallback = jest.fn();
|
||||||
|
|
||||||
|
const transitionerProps = {
|
||||||
|
configureTransition: (transitionProps, prevTransitionProps) => ({}),
|
||||||
|
navigation: {
|
||||||
|
state: {
|
||||||
|
index: 0,
|
||||||
|
routes: [
|
||||||
|
{ key: '1', routeName: 'Foo' },
|
||||||
|
{ key: '2', routeName: 'Bar' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
goBack: () => false,
|
||||||
|
dispatch: () => false,
|
||||||
|
setParams: () => false,
|
||||||
|
navigate: () => false,
|
||||||
|
},
|
||||||
|
render: () => <div />,
|
||||||
|
onTransitionStart: onTransitionStartCallback,
|
||||||
|
onTransitionEnd: onTransitionEndCallback,
|
||||||
|
};
|
||||||
|
|
||||||
|
const nextTransitionerProps = {
|
||||||
|
...transitionerProps,
|
||||||
|
navigation: {
|
||||||
|
...transitionerProps.navigation,
|
||||||
|
state: {
|
||||||
|
index: 0,
|
||||||
|
routes: [
|
||||||
|
{ key: '1', routeName: 'Foo', params: { name: 'Zoom' } },
|
||||||
|
{ key: '2', routeName: 'Bar' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
const component = renderer.create(<Transitioner {...transitionerProps} />);
|
||||||
|
component.update(<Transitioner {...nextTransitionerProps} />);
|
||||||
|
expect(onTransitionStartCallback).not.toBeCalled();
|
||||||
|
expect(onTransitionEndCallback).not.toBeCalled();
|
||||||
|
});
|
||||||
|
});
|
|
@ -5087,9 +5087,9 @@ react-navigation-tabs@0.6.0:
|
||||||
react-native-safe-area-view "^0.7.0"
|
react-native-safe-area-view "^0.7.0"
|
||||||
react-native-tab-view "^1.0.0"
|
react-native-tab-view "^1.0.0"
|
||||||
|
|
||||||
react-navigation@^2.10.0:
|
react-navigation@^2.11.2:
|
||||||
version "2.11.0"
|
version "2.11.2"
|
||||||
resolved "https://registry.yarnpkg.com/react-navigation/-/react-navigation-2.11.0.tgz#d3d56d67a199cc07a74326419939cb1ae80d3c1e"
|
resolved "https://registry.yarnpkg.com/react-navigation/-/react-navigation-2.11.2.tgz#cd099f6d7d09efe48ef8463614a3abb113d45c01"
|
||||||
dependencies:
|
dependencies:
|
||||||
clamp "^1.0.1"
|
clamp "^1.0.1"
|
||||||
create-react-context "^0.2.1"
|
create-react-context "^0.2.1"
|
||||||
|
|
Loading…
Reference in New Issue