From f7843bfdae8e173cd6446a619a9c8a66c3016f85 Mon Sep 17 00:00:00 2001 From: Vojtech Novak Date: Thu, 3 May 2018 05:02:03 +0200 Subject: [PATCH] add a test so that #2856 can be closed (#4102) * add test for 2856 * rename variables --- .../src/views/__tests__/Transitioner-test.js | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 packages/react-navigation/src/views/__tests__/Transitioner-test.js diff --git a/packages/react-navigation/src/views/__tests__/Transitioner-test.js b/packages/react-navigation/src/views/__tests__/Transitioner-test.js new file mode 100644 index 00000000..bd011b1f --- /dev/null +++ b/packages/react-navigation/src/views/__tests__/Transitioner-test.js @@ -0,0 +1,49 @@ +/* eslint react/display-name:0 */ +import * as 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: () =>
, + 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(); + component.update(); + expect(onTransitionStartCallback).not.toBeCalled(); + expect(onTransitionEndCallback).not.toBeCalled(); + }); +});