@react-navigation/core 3.5.0-alpha.6 → 3.5.1
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.
- package/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js +1 -1
- package/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js.map +1 -1
- package/lib/commonjs/navigators/createNavigator.js +1 -1
- package/lib/commonjs/navigators/createNavigator.js.map +1 -1
- package/lib/commonjs/routers/SwitchRouter.js +1 -1
- package/lib/commonjs/routers/SwitchRouter.js.map +1 -1
- package/lib/commonjs/routers/__tests__/PathHandling-test.js +1 -1
- package/lib/commonjs/routers/__tests__/PathHandling-test.js.map +1 -1
- package/lib/commonjs/routers/__tests__/Routers-test.js +1 -1
- package/lib/commonjs/routers/__tests__/Routers-test.js.map +1 -1
- package/lib/commonjs/routers/__tests__/StackRouter-test.js +1 -1
- package/lib/commonjs/routers/__tests__/StackRouter-test.js.map +1 -1
- package/lib/commonjs/routers/__tests__/SwitchRouter-test.js +1 -1
- package/lib/commonjs/routers/__tests__/SwitchRouter-test.js.map +1 -1
- package/lib/commonjs/routers/__tests__/TabRouter-test.js +1 -1
- package/lib/commonjs/routers/__tests__/TabRouter-test.js.map +1 -1
- package/lib/commonjs/routers/__tests__/pathUtils-test.js +1 -1
- package/lib/commonjs/routers/__tests__/pathUtils-test.js.map +1 -1
- package/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js +1 -1
- package/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js.map +1 -1
- package/lib/commonjs/routers/createConfigGetter.js +1 -1
- package/lib/commonjs/routers/createConfigGetter.js.map +1 -1
- package/lib/commonjs/routers/pathUtils.js +1 -1
- package/lib/commonjs/routers/pathUtils.js.map +1 -1
- package/lib/commonjs/useTheme.js +1 -1
- package/lib/commonjs/useTheme.js.map +1 -1
- package/lib/commonjs/utils/getActiveChildNavigationOptions.js +1 -1
- package/lib/commonjs/utils/getActiveChildNavigationOptions.js.map +1 -1
- package/lib/commonjs/views/SceneView.js +1 -1
- package/lib/commonjs/views/SceneView.js.map +1 -1
- package/lib/commonjs/views/SwitchView/SwitchView.js +1 -1
- package/lib/commonjs/views/SwitchView/SwitchView.js.map +1 -1
- package/lib/commonjs/views/__tests__/NavigationEvents-test.js +1 -1
- package/lib/commonjs/views/__tests__/NavigationEvents-test.js.map +1 -1
- package/lib/commonjs/views/withNavigation.js +1 -1
- package/lib/commonjs/views/withNavigation.js.map +1 -1
- package/lib/commonjs/views/withNavigationFocus.js +1 -1
- package/lib/commonjs/views/withNavigationFocus.js.map +1 -1
- package/lib/module/navigators/__tests__/createSwitchnavigator-test.js +1 -1
- package/lib/module/navigators/__tests__/createSwitchnavigator-test.js.map +1 -1
- package/lib/module/navigators/createNavigator.js +1 -1
- package/lib/module/navigators/createNavigator.js.map +1 -1
- package/lib/module/routers/SwitchRouter.js +1 -1
- package/lib/module/routers/SwitchRouter.js.map +1 -1
- package/lib/module/routers/__tests__/PathHandling-test.js +1 -1
- package/lib/module/routers/__tests__/PathHandling-test.js.map +1 -1
- package/lib/module/routers/__tests__/Routers-test.js +1 -1
- package/lib/module/routers/__tests__/Routers-test.js.map +1 -1
- package/lib/module/routers/__tests__/StackRouter-test.js +1 -1
- package/lib/module/routers/__tests__/StackRouter-test.js.map +1 -1
- package/lib/module/routers/__tests__/SwitchRouter-test.js +1 -1
- package/lib/module/routers/__tests__/SwitchRouter-test.js.map +1 -1
- package/lib/module/routers/__tests__/TabRouter-test.js +1 -1
- package/lib/module/routers/__tests__/TabRouter-test.js.map +1 -1
- package/lib/module/routers/__tests__/pathUtils-test.js +1 -1
- package/lib/module/routers/__tests__/pathUtils-test.js.map +1 -1
- package/lib/module/routers/__tests__/validateRouteConfigMap-test.js +1 -1
- package/lib/module/routers/__tests__/validateRouteConfigMap-test.js.map +1 -1
- package/lib/module/routers/createConfigGetter.js +1 -1
- package/lib/module/routers/createConfigGetter.js.map +1 -1
- package/lib/module/routers/pathUtils.js +1 -1
- package/lib/module/routers/pathUtils.js.map +1 -1
- package/lib/module/useTheme.js +1 -1
- package/lib/module/useTheme.js.map +1 -1
- package/lib/module/utils/getActiveChildNavigationOptions.js +1 -1
- package/lib/module/utils/getActiveChildNavigationOptions.js.map +1 -1
- package/lib/module/views/SceneView.js +1 -1
- package/lib/module/views/SceneView.js.map +1 -1
- package/lib/module/views/SwitchView/SwitchView.js +1 -1
- package/lib/module/views/SwitchView/SwitchView.js.map +1 -1
- package/lib/module/views/__tests__/NavigationEvents-test.js +1 -1
- package/lib/module/views/__tests__/NavigationEvents-test.js.map +1 -1
- package/lib/module/views/withNavigation.js +1 -1
- package/lib/module/views/withNavigation.js.map +1 -1
- package/lib/module/views/withNavigationFocus.js +1 -1
- package/lib/module/views/withNavigationFocus.js.map +1 -1
- package/lib/typescript/useTheme.d.ts +1 -1
- package/package.json +1 -1
- package/src/navigators/createNavigator.js +35 -16
- package/src/routers/SwitchRouter.js +13 -11
- package/src/routers/__tests__/pathUtils-test.js +37 -1
- package/src/routers/createConfigGetter.js +3 -2
- package/src/routers/pathUtils.js +16 -5
- package/src/useTheme.ts +1 -1
- package/src/utils/getActiveChildNavigationOptions.js +6 -2
- package/src/.DS_Store +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["StackRouter-test.js"],"names":["beforeEach","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","React","Component","bar","PersonScreen","TestStackRouter","main","baz","auth","person","foo","describe","it","FooScreen","expect","getComponentForState","index","isTransitioning","routes","key","routeName","toBe","getScreen","BazScreen","getComponentForRouteName","getActionForPathAndParams","toEqual","type","NavigationActions","NAVIGATE","params","id","code","uri","action","barThing","fooThing","Bar","qux","TestRouter","initState","getStateForAction","init","pushedState","navigate","ChildNavigator","Baz","Qux","Foo","Bad","state","INIT","state2","state3","StackActions","PUSH","length","POP","POP_TO_TOP","bazId","poppedState","pop","poppedState2","n","immediate","poppedState3","popToTop","poppedImmediatelyState","initialRouteName","barState","navigateOnBarState","initialState","fooBarState","fooBarBazState","fooState","pushedTwiceState","GrandChildNavigator","Quux","Corge","Woo","Parent","initialRouteKey","FirstChildNavigator","First1","First2","SecondChildNavigator","Second1","Second2","Leaf","First","Second","first","second","firstAgain","debug","navigatedState","push","toThrow","secondPushedState","pushedThriceState","navigatedBackToFirstRouteState","name","BACK","replacedState","replace","meaning","not","replacedState2","newKey","Grault","state4","state5","originalCurrentScreen","replacedCurrentScreen","COMPLETE_TRANSITION","toChildKey","outputState","boo","testState","Xyz","ScreenA","ScreenB","Boo","getPathAndParamsForState","initialRouteParams","toBeNull","SET_PARAMS","other","RESET","actions","state1","resetAction","ChildRouter","objectContaining","undefined","LeafScreen","Screen","NestedStack","nestedRouter","activeState4","activeState5","OtherNestedStack","otherNestedRouter"],"mappings":"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","sourcesContent":["/* eslint no-shadow:0, react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport StackRouter from '../StackRouter';\nimport * as StackActions from '../StackActions';\nimport * as NavigationActions from '../../NavigationActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst ListScreen = () => <div />;\n\nconst ProfileNavigator = () => <div />;\nProfileNavigator.router = StackRouter({\n list: {\n path: 'list/:id',\n screen: ListScreen,\n },\n});\n\nconst MainNavigator = () => <div />;\nMainNavigator.router = StackRouter({\n profile: {\n path: 'p/:id',\n screen: ProfileNavigator,\n },\n});\n\nconst LoginScreen = () => <div />;\n\nconst AuthNavigator = () => <div />;\nAuthNavigator.router = StackRouter({\n login: {\n screen: LoginScreen,\n },\n});\n\nconst BarScreen = () => <div />;\n\nclass FooNavigator extends React.Component {\n static router = StackRouter({\n bar: {\n path: 'b/:barThing',\n screen: BarScreen,\n },\n });\n render() {\n return <div />;\n }\n}\n\nconst PersonScreen = () => <div />;\n\nconst TestStackRouter = StackRouter({\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n auth: {\n screen: AuthNavigator,\n },\n person: {\n path: 'people/:id',\n screen: PersonScreen,\n },\n foo: {\n path: 'fo/:fooThing',\n screen: FooNavigator,\n },\n});\n\ndescribe('StackRouter', () => {\n it('Gets the active screen for a given state', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter({\n foo: {\n screen: FooScreen,\n },\n bar: {\n screen: BarScreen,\n },\n });\n\n expect(\n router.getComponentForState({\n index: 0,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n { key: 'c', routeName: 'foo' },\n ],\n })\n ).toBe(FooScreen);\n expect(\n router.getComponentForState({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n ],\n })\n ).toBe(BarScreen);\n });\n\n it('Handles getScreen in getComponentForState', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter({\n foo: {\n getScreen: () => FooScreen,\n },\n bar: {\n getScreen: () => BarScreen,\n },\n });\n\n expect(\n router.getComponentForState({\n index: 0,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n { key: 'c', routeName: 'foo' },\n ],\n })\n ).toBe(FooScreen);\n expect(\n router.getComponentForState({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n ],\n })\n ).toBe(BarScreen);\n });\n\n it('Gets the screen for given route', () => {\n const FooScreen = () => <div />;\n const BarScreen = class extends React.Component {\n render() {\n return <div />;\n }\n };\n const BazScreen = class extends React.Component {\n render() {\n return <div />;\n }\n };\n const router = StackRouter({\n foo: {\n screen: FooScreen,\n },\n bar: {\n screen: BarScreen,\n },\n baz: {\n screen: BazScreen,\n },\n });\n\n expect(router.getComponentForRouteName('foo')).toBe(FooScreen);\n expect(router.getComponentForRouteName('bar')).toBe(BarScreen);\n expect(router.getComponentForRouteName('baz')).toBe(BazScreen);\n });\n\n it('Handles getScreen in getComponent', () => {\n const FooScreen = () => <div />;\n const BarScreen = class extends React.Component {\n render() {\n return <div />;\n }\n };\n const BazScreen = class extends React.Component {\n render() {\n return <div />;\n }\n };\n const router = StackRouter({\n foo: {\n getScreen: () => FooScreen,\n },\n bar: {\n getScreen: () => BarScreen,\n },\n baz: {\n getScreen: () => BazScreen,\n },\n });\n\n expect(router.getComponentForRouteName('foo')).toBe(FooScreen);\n expect(router.getComponentForRouteName('bar')).toBe(BarScreen);\n expect(router.getComponentForRouteName('baz')).toBe(BazScreen);\n });\n\n it('Parses simple paths', () => {\n expect(AuthNavigator.router.getActionForPathAndParams('login')).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n });\n });\n\n it('Parses paths with a param', () => {\n expect(TestStackRouter.getActionForPathAndParams('people/foo')).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n },\n });\n });\n\n it('Parses paths with a query', () => {\n expect(\n TestStackRouter.getActionForPathAndParams('people/foo', {\n code: 'test',\n foo: 'bar',\n })\n ).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n code: 'test',\n foo: 'bar',\n },\n });\n });\n\n it('Parses paths with an empty query value', () => {\n expect(\n TestStackRouter.getActionForPathAndParams('people/foo', {\n code: '',\n foo: 'bar',\n })\n ).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n code: '',\n foo: 'bar',\n },\n });\n });\n\n it('Correctly parses a path without arguments into an action chain', () => {\n const uri = 'auth/login';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'auth',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n },\n });\n });\n\n it('Correctly parses a path with arguments into an action chain', () => {\n const uri = 'main/p/4/list/10259959195';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n },\n },\n },\n });\n });\n\n it('Correctly parses a path to the router connected to another router through a pure wildcard route into an action chain', () => {\n const uri = 'b/123';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'baz',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'bar',\n params: {\n barThing: '123',\n },\n },\n });\n });\n\n it('Correctly returns null action for non-existent path', () => {\n const uri = 'asdf/1234';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual(null);\n });\n\n it('Correctly returns action chain for partially matched path', () => {\n const uri = 'auth/login';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'auth',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n },\n });\n });\n\n it('Correctly returns action for path with multiple parameters', () => {\n const path = 'fo/22/b/hello';\n const action = TestStackRouter.getActionForPathAndParams(path);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'foo',\n params: {\n fooThing: '22',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'bar',\n params: {\n barThing: 'hello',\n },\n },\n });\n });\n\n it('Pushes other navigators when navigating to an unopened route name', () => {\n const Bar = () => <div />;\n Bar.router = StackRouter({\n baz: { screen: () => <div /> },\n qux: { screen: () => <div /> },\n });\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: Bar },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n expect(initState).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [{ key: 'id-0', routeName: 'foo' }],\n });\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'qux' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].index).toEqual(1);\n expect(pushedState.routes[1].routes[1].routeName).toEqual('qux');\n });\n\n it('push bubbles up', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Qux: { screen: () => <div /> },\n });\n const router = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n Bad: { screen: () => <div /> },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.PUSH,\n routeName: 'Bad',\n },\n state2\n );\n expect(state3 && state3.index).toEqual(2);\n expect(state3 && state3.routes.length).toEqual(3);\n });\n\n it('pop bubbles up', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Qux: { screen: () => <div /> },\n });\n const router = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n key: 'StackRouterRoot',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('Handle navigation to nested navigator', () => {\n const action = TestStackRouter.getActionForPathAndParams('fo/22/b/hello');\n /* $FlowFixMe */\n const state2 = TestStackRouter.getStateForAction(action);\n expect(state2).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n key: 'id-1',\n isTransitioning: false,\n routeName: 'foo',\n params: {\n fooThing: '22',\n },\n routes: [\n {\n routeName: 'bar',\n key: 'id-0',\n params: {\n barThing: 'hello',\n },\n },\n ],\n },\n ],\n });\n });\n\n it('popToTop bubbles up', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Qux: { screen: () => <div /> },\n });\n\n const router = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP_TO_TOP,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('popToTop targets StackRouter by key if specified', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Qux: { screen: () => <div /> },\n });\n const router = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP_TO_TOP,\n key: state2.key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('pop action works as expected', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n\n const state = {\n index: 3,\n isTransitioning: false,\n routes: [\n { key: 'A', routeName: 'foo' },\n { key: 'B', routeName: 'bar', params: { bazId: '321' } },\n { key: 'C', routeName: 'foo' },\n { key: 'D', routeName: 'bar' },\n ],\n };\n const poppedState = TestRouter.getStateForAction(StackActions.pop(), state);\n expect(poppedState.routes.length).toBe(3);\n expect(poppedState.index).toBe(2);\n expect(poppedState.isTransitioning).toBe(true);\n\n const poppedState2 = TestRouter.getStateForAction(\n StackActions.pop({ n: 2, immediate: true }),\n state\n );\n expect(poppedState2.routes.length).toBe(2);\n expect(poppedState2.index).toBe(1);\n expect(poppedState2.isTransitioning).toBe(false);\n\n const poppedState3 = TestRouter.getStateForAction(\n StackActions.pop({ n: 5 }),\n state\n );\n expect(poppedState3.routes.length).toBe(1);\n expect(poppedState3.index).toBe(0);\n expect(poppedState3.isTransitioning).toBe(true);\n });\n\n it('popToTop works as expected', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n\n const state = {\n index: 2,\n isTransitioning: false,\n routes: [\n { key: 'A', routeName: 'foo' },\n { key: 'B', routeName: 'bar', params: { bazId: '321' } },\n { key: 'C', routeName: 'foo' },\n ],\n };\n const poppedState = TestRouter.getStateForAction(\n StackActions.popToTop(),\n state\n );\n expect(poppedState.routes.length).toBe(1);\n expect(poppedState.index).toBe(0);\n expect(poppedState.isTransitioning).toBe(true);\n const poppedState2 = TestRouter.getStateForAction(\n StackActions.popToTop(),\n poppedState\n );\n expect(poppedState).toEqual(poppedState2);\n const poppedImmediatelyState = TestRouter.getStateForAction(\n StackActions.popToTop({ immediate: true }),\n state\n );\n expect(poppedImmediatelyState.routes.length).toBe(1);\n expect(poppedImmediatelyState.index).toBe(0);\n expect(poppedImmediatelyState.isTransitioning).toBe(false);\n });\n\n it('Navigate does not push duplicate routeName', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n },\n { initialRouteName: 'foo' }\n );\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const barState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initState\n );\n expect(barState.index).toEqual(1);\n expect(barState.routes[1].routeName).toEqual('bar');\n const navigateOnBarState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n barState\n );\n expect(navigateOnBarState).toEqual(null);\n });\n\n it('Navigate focuses given routeName if already active in stack', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n baz: { screen: () => <div /> },\n },\n { initialRouteName: 'foo' }\n );\n const initialState = TestRouter.getStateForAction(NavigationActions.init());\n const fooBarState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initialState\n );\n const fooBarBazState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'baz' }),\n fooBarState\n );\n expect(fooBarBazState.index).toEqual(2);\n expect(fooBarBazState.routes[2].routeName).toEqual('baz');\n\n const fooState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' }),\n fooBarBazState\n );\n expect(fooState.index).toEqual(0);\n expect(fooState.routes.length).toEqual(1);\n expect(fooState.routes[0].routeName).toEqual('foo');\n });\n\n it('Navigate pushes duplicate routeName if unique key is provided', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'new-unique-key!' }),\n pushedState\n );\n expect(pushedTwiceState.index).toEqual(2);\n expect(pushedTwiceState.routes[2].routeName).toEqual('bar');\n });\n\n it('Navigate from top propagates to any arbitary depth of stacks', () => {\n const GrandChildNavigator = () => <div />;\n GrandChildNavigator.router = StackRouter({\n Quux: { screen: () => <div /> },\n Corge: { screen: () => <div /> },\n });\n\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Woo: { screen: () => <div /> },\n Qux: { screen: GrandChildNavigator },\n });\n\n const Parent = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n });\n\n const state = Parent.getStateForAction({ type: NavigationActions.INIT });\n const state2 = Parent.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Corge',\n },\n state\n );\n\n expect(state2.isTransitioning).toEqual(true);\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].index).toEqual(1);\n expect(state2.routes[1].routes[1].index).toEqual(1);\n expect(state2.routes[1].routes[1].routes[1].routeName).toEqual('Corge');\n });\n\n it('Navigate to initial screen is possible', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n },\n { initialRouteKey: 'foo' }\n );\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo', key: 'foo' }),\n initState\n );\n expect(pushedState).toEqual(null);\n });\n\n it('Navigate with key and without it is idempotent', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n pushedState\n );\n expect(pushedTwiceState).toEqual(null);\n });\n\n // https://github.com/react-navigation/react-navigation/issues/4063\n it('Navigate on inactive stackrouter is idempotent', () => {\n const FirstChildNavigator = () => <div />;\n FirstChildNavigator.router = StackRouter({\n First1: () => <div />,\n First2: () => <div />,\n });\n\n const SecondChildNavigator = () => <div />;\n SecondChildNavigator.router = StackRouter({\n Second1: () => <div />,\n Second2: () => <div />,\n });\n\n const router = StackRouter({\n Leaf: () => <div />,\n First: FirstChildNavigator,\n Second: SecondChildNavigator,\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n\n const first = router.getStateForAction(\n NavigationActions.navigate({ routeName: 'First2' }),\n state\n );\n\n const second = router.getStateForAction(\n NavigationActions.navigate({ routeName: 'Second2' }),\n first\n );\n\n const firstAgain = router.getStateForAction(\n NavigationActions.navigate({\n routeName: 'First2',\n params: { debug: true },\n }),\n second\n );\n\n expect(first.routes.length).toEqual(2);\n expect(first.index).toEqual(1);\n expect(second.routes.length).toEqual(3);\n expect(second.index).toEqual(2);\n\n expect(firstAgain.index).toEqual(1);\n expect(firstAgain.routes.length).toEqual(2);\n });\n\n it('Navigate to current routeName returns null to indicate handled action', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const navigatedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' }),\n initState\n );\n expect(navigatedState).toBe(null);\n });\n\n it('Push behaves like navigate, except for key', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n expect(() => {\n TestRouter.getStateForAction(\n { type: StackActions.PUSH, routeName: 'bar', key: 'a' },\n pushedState\n );\n }).toThrow('StackRouter does not support key on the push action');\n });\n\n it('Push adds new routes every time', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const secondPushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n pushedState\n );\n expect(secondPushedState.index).toEqual(2);\n expect(secondPushedState.routes[2].routeName).toEqual('bar');\n });\n\n it('Navigate backwards with key removes leading routes', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n initState\n );\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'b`' }),\n pushedState\n );\n const pushedThriceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo', key: 'c`' }),\n pushedTwiceState\n );\n expect(pushedThriceState.routes.length).toEqual(4);\n\n const navigatedBackToFirstRouteState = TestRouter.getStateForAction(\n NavigationActions.navigate({\n routeName: 'foo',\n key: pushedThriceState.routes[0].key,\n }),\n pushedThriceState\n );\n expect(navigatedBackToFirstRouteState.index).toEqual(0);\n expect(navigatedBackToFirstRouteState.routes.length).toEqual(1);\n });\n\n it('Handle basic stack logic for plain components', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n immediate: true,\n },\n state\n );\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].routeName).toEqual('Bar');\n expect(state2.routes[1].params).toEqual({ name: 'Zoom' });\n expect(state2.routes.length).toEqual(2);\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK, immediate: true },\n state2\n );\n expect(state3).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n });\n\n it('Replace action works', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' })\n );\n const replacedState = TestRouter.getStateForAction(\n StackActions.replace({\n routeName: 'bar',\n params: { meaning: 42 },\n key: initState.routes[0].key,\n }),\n initState\n );\n expect(replacedState.index).toEqual(0);\n expect(replacedState.routes.length).toEqual(1);\n expect(replacedState.routes[0].key).not.toEqual(initState.routes[0].key);\n expect(replacedState.routes[0].routeName).toEqual('bar');\n expect(replacedState.routes[0].params.meaning).toEqual(42);\n const replacedState2 = TestRouter.getStateForAction(\n StackActions.replace({\n routeName: 'bar',\n key: initState.routes[0].key,\n newKey: 'wow',\n }),\n initState\n );\n expect(replacedState2.index).toEqual(0);\n expect(replacedState2.routes.length).toEqual(1);\n expect(replacedState2.routes[0].key).toEqual('wow');\n expect(replacedState2.routes[0].routeName).toEqual('bar');\n });\n\n it('Replace action returns most recent route if no key is provided', () => {\n const GrandChildNavigator = () => <div />;\n GrandChildNavigator.router = StackRouter({\n Quux: { screen: () => <div /> },\n Corge: { screen: () => <div /> },\n Grault: { screen: () => <div /> },\n });\n\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Woo: { screen: () => <div /> },\n Qux: { screen: GrandChildNavigator },\n });\n\n const router = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Qux',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Corge',\n },\n state3\n );\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Grault',\n },\n state4\n );\n\n const replacedState = router.getStateForAction(\n StackActions.replace({\n routeName: 'Woo',\n params: { meaning: 42 },\n }),\n state5\n );\n\n const originalCurrentScreen = state5.routes[1].routes[1].routes[2];\n const replacedCurrentScreen = replacedState.routes[1].routes[1].routes[2];\n\n expect(replacedState.routes[1].routes[1].index).toEqual(2);\n expect(replacedState.routes[1].routes[1].routes.length).toEqual(3);\n expect(replacedCurrentScreen.key).not.toEqual(originalCurrentScreen.key);\n expect(replacedCurrentScreen.routeName).not.toEqual(\n originalCurrentScreen.routeName\n );\n expect(replacedCurrentScreen.routeName).toEqual('Woo');\n expect(replacedCurrentScreen.params.meaning).toEqual(42);\n });\n\n it('Handles push transition logic with completion action', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.isTransitioning).toEqual(true);\n const state3 = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state2.routes[1].key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(1);\n expect(state3 && state3.isTransitioning).toEqual(false);\n });\n\n it('Completion action does not work with incorrect key', () => {\n const FooScreen = () => <div />;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: FooScreen,\n },\n });\n const state = {\n key: 'StackKey',\n index: 1,\n isTransitioning: true,\n routes: [{ key: 'a', routeName: 'Foo' }, { key: 'b', routeName: 'Foo' }],\n };\n const outputState = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state.routes[state.index].key,\n key: 'not StackKey',\n },\n state\n );\n expect(outputState.isTransitioning).toEqual(true);\n });\n\n it('Completion action does not work with incorrect toChildKey', () => {\n const FooScreen = () => <div />;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: FooScreen,\n },\n });\n const state = {\n key: 'StackKey',\n index: 1,\n isTransitioning: true,\n routes: [{ key: 'a', routeName: 'Foo' }, { key: 'b', routeName: 'Foo' }],\n };\n const outputState = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n // for this action to toggle isTransitioning, toChildKey should be state.routes[state.index].key,\n toChildKey: 'incorrect',\n key: 'StackKey',\n },\n state\n );\n expect(outputState.isTransitioning).toEqual(true);\n });\n\n it('Back action parent is prioritized over inactive child routers', () => {\n const Bar = () => <div />;\n Bar.router = StackRouter({\n baz: { screen: () => <div /> },\n qux: { screen: () => <div /> },\n });\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: Bar },\n boo: { screen: () => <div /> },\n });\n const state = {\n key: 'top',\n index: 3,\n routes: [\n { routeName: 'foo', key: 'f' },\n {\n routeName: 'bar',\n key: 'b',\n index: 1,\n routes: [\n { routeName: 'baz', key: 'bz' },\n { routeName: 'qux', key: 'bx' },\n ],\n },\n { routeName: 'foo', key: 'f1' },\n { routeName: 'boo', key: 'z' },\n ],\n };\n const testState = TestRouter.getStateForAction(\n { type: NavigationActions.BACK },\n state\n );\n expect(testState.index).toBe(2);\n expect(testState.routes[1].index).toBe(1);\n });\n\n it('Handle basic stack logic for components with router', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n BarScreen.router = StackRouter({\n Xyz: {\n screen: () => null,\n },\n });\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n immediate: true,\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].routeName).toEqual('Bar');\n expect(state2 && state2.routes[1].params).toEqual({ name: 'Zoom' });\n expect(state2 && state2.routes.length).toEqual(2);\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK, immediate: true },\n state2\n );\n expect(state3).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n });\n\n it('Gets deep path (stack behavior)', () => {\n const ScreenA = () => <div />;\n const ScreenB = () => <div />;\n ScreenA.router = StackRouter({\n Boo: { path: 'boo', screen: ScreenB },\n Baz: { path: 'baz/:bazId', screen: ScreenB },\n });\n const router = StackRouter({\n Foo: {\n path: 'f/:id',\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n const state = {\n index: 0,\n isTransitioning: false,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('f/123/baz/321');\n expect(params).toEqual({});\n });\n\n it('Handle goBack identified by key', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n params: { name: 'Zoom' },\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n params: { name: 'Foo' },\n },\n state2\n );\n const state4 = router.getStateForAction(\n { type: NavigationActions.BACK, key: 'wrongKey' },\n state3\n );\n expect(state3).toEqual(state4);\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.BACK,\n key: state3 && state3.routes[1].key,\n immediate: true,\n },\n state4\n );\n expect(state5).toEqual(state);\n });\n\n it('Handle initial route navigation', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Bar',\n },\n ],\n });\n });\n\n it('Initial route params appear in nav state', () => {\n const FooScreen = () => <div />;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n },\n },\n { initialRouteName: 'Foo', initialRouteParams: { foo: 'bar' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: state && state.routes[0].key,\n routeName: 'Foo',\n params: { foo: 'bar' },\n },\n ],\n });\n });\n\n it('params in route config are merged with initialRouteParams', () => {\n const FooScreen = () => <div />;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n params: { foo: 'not-bar', meaning: 42 },\n },\n },\n { initialRouteName: 'Foo', initialRouteParams: { foo: 'bar' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: state && state.routes[0].key,\n routeName: 'Foo',\n params: { foo: 'bar', meaning: 42 },\n },\n ],\n });\n });\n\n it('Action params appear in nav state', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { bar: '42' },\n immediate: true,\n },\n state\n );\n expect(state2).not.toBeNull();\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].params).toEqual({ bar: '42' });\n });\n\n it('Handles the SetParams action', () => {\n const router = StackRouter(\n {\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n },\n },\n {\n initialRouteName: 'Bar',\n initialRouteParams: { name: 'Zoo' },\n }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const key = state && state.routes[0].key;\n const state2 =\n key &&\n router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'Qux' },\n key,\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].params).toEqual({ name: 'Qux' });\n });\n\n it('Handles the SetParams action for inactive routes', () => {\n const router = StackRouter(\n {\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n },\n },\n {\n initialRouteName: 'Bar',\n initialRouteParams: { name: 'Zoo' },\n }\n );\n const initialState = {\n index: 1,\n routes: [\n {\n key: 'RouteA',\n routeName: 'Foo',\n params: { name: 'InitialParam', other: 'Unchanged' },\n },\n { key: 'RouteB', routeName: 'Bar', params: {} },\n ],\n };\n const state = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'NewParam' },\n key: 'RouteA',\n },\n initialState\n );\n expect(state.index).toEqual(1);\n expect(state.routes[0].params).toEqual({\n name: 'NewParam',\n other: 'Unchanged',\n });\n });\n\n it('Handles the setParams action with nested routers', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Qux: { screen: () => <div /> },\n });\n const router = StackRouter({\n Foo: { screen: ChildNavigator },\n Bar: { screen: () => <div /> },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'foobar' },\n key: 'id-0',\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routes).toEqual([\n {\n key: 'id-0',\n routeName: 'Baz',\n params: { name: 'foobar' },\n },\n ]);\n });\n\n it('Handles the reset action', () => {\n const router = StackRouter({\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: StackActions.RESET,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: { bar: '42' },\n immediate: true,\n },\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 1,\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[0].params).toEqual({ bar: '42' });\n expect(state2 && state2.routes[0].routeName).toEqual('Foo');\n expect(state2 && state2.routes[1].routeName).toEqual('Bar');\n });\n\n it('Handles the reset action only with correct key set', () => {\n const router = StackRouter({\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n },\n });\n const state1 = router.getStateForAction({ type: NavigationActions.INIT });\n const resetAction = {\n type: StackActions.RESET,\n key: 'Bad Key',\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: { bar: '42' },\n immediate: true,\n },\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 1,\n };\n const state2 = router.getStateForAction(resetAction, state1);\n expect(state2).toEqual(state1);\n const state3 = router.getStateForAction(\n {\n ...resetAction,\n key: state2.key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(1);\n expect(state3 && state3.routes[0].params).toEqual({ bar: '42' });\n expect(state3 && state3.routes[0].routeName).toEqual('Foo');\n expect(state3 && state3.routes[1].routeName).toEqual('Bar');\n });\n\n it('Handles the reset action with nested Router', () => {\n const ChildRouter = StackRouter({\n baz: {\n screen: () => <div />,\n },\n });\n\n const ChildNavigator = () => <div />;\n ChildNavigator.router = ChildRouter;\n\n const router = StackRouter({\n Foo: {\n screen: ChildNavigator,\n },\n Bar: {\n screen: () => <div />,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: null,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n },\n ],\n index: 0,\n },\n state\n );\n\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routeName).toEqual('Foo');\n expect(state2 && state2.routes[0].routes[0].routeName).toEqual('baz');\n });\n\n it('Handles the reset action with a key', () => {\n const ChildRouter = StackRouter({\n baz: {\n screen: () => <div />,\n },\n });\n\n const ChildNavigator = () => <div />;\n ChildNavigator.router = ChildRouter;\n\n const router = StackRouter({\n Foo: {\n screen: ChildNavigator,\n },\n Bar: {\n screen: () => <div />,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'baz',\n immediate: true,\n },\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: 'Init',\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n },\n ],\n index: 0,\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: null,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 0,\n },\n state3\n );\n\n expect(state4 && state4.index).toEqual(0);\n expect(state4 && state4.routes[0].routeName).toEqual('Bar');\n });\n\n it('Handles the navigate action with params and nested StackRouter', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({ Baz: { screen: () => <div /> } });\n\n const router = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n state\n );\n expect(state2 && state2.routes[1].params).toEqual({ foo: '42' });\n expect(state2 && state2.routes[1].routes).toEqual([\n expect.objectContaining({\n routeName: 'Baz',\n params: { foo: '42' },\n }),\n ]);\n });\n\n it('Navigate action to previous nested StackRouter causes isTransitioning start', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n });\n const router = StackRouter({\n Bar: { screen: ChildNavigator },\n Foo: { screen: () => <div /> },\n });\n const state = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Foo',\n },\n router.getStateForAction({ type: NavigationActions.INIT })\n );\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state\n );\n expect(state2.index).toEqual(0);\n expect(state2.isTransitioning).toEqual(true);\n });\n\n it('Handles the navigate action with params and nested StackRouter as a first action', () => {\n const state = TestStackRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: 'test',\n foo: 'bar',\n },\n },\n },\n });\n\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-2',\n params: { code: 'test', foo: 'bar' },\n routeName: 'main',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-1',\n params: { code: 'test', foo: 'bar', id: '4' },\n routeName: 'profile',\n routes: [\n {\n key: 'id-0',\n params: { code: 'test', foo: 'bar', id: '10259959195' },\n routeName: 'list',\n type: undefined,\n },\n ],\n },\n ],\n },\n ],\n });\n\n const state2 = TestStackRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: '',\n foo: 'bar',\n },\n },\n },\n });\n\n expect(state2).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-5',\n params: { code: '', foo: 'bar' },\n routeName: 'main',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-4',\n params: { code: '', foo: 'bar', id: '4' },\n routeName: 'profile',\n routes: [\n {\n key: 'id-3',\n params: { code: '', foo: 'bar', id: '10259959195' },\n routeName: 'list',\n type: undefined,\n },\n ],\n },\n ],\n },\n ],\n });\n });\n\n it('Handles deep navigate completion action', () => {\n const LeafScreen = () => <div />;\n const FooScreen = () => <div />;\n FooScreen.router = StackRouter({\n Boo: { path: 'boo', screen: LeafScreen },\n Baz: { path: 'baz/:bazId', screen: LeafScreen },\n });\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: LeafScreen,\n },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state && state.index).toEqual(0);\n expect(state && state.routes[0].routeName).toEqual('Foo');\n const key = state && state.routes[0].key;\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state\n );\n expect(state2.index).toEqual(0);\n expect(state2.isTransitioning).toEqual(false);\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].isTransitioning).toEqual(true);\n expect(!!key).toEqual(true);\n const state3 = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state2.routes[0].routes[1].key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n expect(state3 && state3.isTransitioning).toEqual(false);\n expect(state3 && state3.routes[0].index).toEqual(1);\n expect(state3 && state3.routes[0].isTransitioning).toEqual(false);\n });\n\n it('order of handling navigate action is correct for nested stackrouters', () => {\n const Screen = () => <div />;\n const NestedStack = () => <div />;\n let nestedRouter = StackRouter({\n Foo: Screen,\n Bar: Screen,\n });\n\n NestedStack.router = nestedRouter;\n\n let router = StackRouter(\n {\n NestedStack,\n Bar: Screen,\n Baz: Screen,\n },\n {\n initialRouteName: 'Baz',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('Baz');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state2\n );\n expect(state3.routes[state3.index].routeName).toEqual('Baz');\n\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedStack');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Foo');\n\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state4\n );\n let activeState5 = state5.routes[state5.index];\n expect(activeState5.routeName).toEqual('NestedStack');\n expect(activeState5.routes[activeState5.index].routeName).toEqual('Bar');\n });\n\n it('order of handling navigate action is correct for nested stackrouters 2', () => {\n const Screen = () => <div />;\n const NestedStack = () => <div />;\n const OtherNestedStack = () => <div />;\n\n let nestedRouter = StackRouter({ Foo: Screen, Bar: Screen });\n let otherNestedRouter = StackRouter({ Foo: Screen });\n NestedStack.router = nestedRouter;\n OtherNestedStack.router = otherNestedRouter;\n\n let router = StackRouter(\n {\n NestedStack,\n OtherNestedStack,\n Bar: Screen,\n },\n {\n initialRouteName: 'OtherNestedStack',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('OtherNestedStack');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'NestedStack',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedStack');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');\n });\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["StackRouter-test.js"],"names":["beforeEach","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","React","Component","bar","PersonScreen","TestStackRouter","main","baz","auth","person","foo","describe","it","FooScreen","expect","getComponentForState","index","isTransitioning","routes","key","routeName","toBe","getScreen","BazScreen","getComponentForRouteName","getActionForPathAndParams","toEqual","type","NavigationActions","NAVIGATE","params","id","code","uri","action","barThing","fooThing","Bar","qux","TestRouter","initState","getStateForAction","init","pushedState","navigate","ChildNavigator","Baz","Qux","Foo","Bad","state","INIT","state2","state3","StackActions","PUSH","length","POP","POP_TO_TOP","bazId","poppedState","pop","poppedState2","n","immediate","poppedState3","popToTop","poppedImmediatelyState","initialRouteName","barState","navigateOnBarState","initialState","fooBarState","fooBarBazState","fooState","pushedTwiceState","GrandChildNavigator","Quux","Corge","Woo","Parent","initialRouteKey","FirstChildNavigator","First1","First2","SecondChildNavigator","Second1","Second2","Leaf","First","Second","first","second","firstAgain","debug","navigatedState","push","toThrow","secondPushedState","pushedThriceState","navigatedBackToFirstRouteState","name","BACK","replacedState","replace","meaning","not","replacedState2","newKey","Grault","state4","state5","originalCurrentScreen","replacedCurrentScreen","COMPLETE_TRANSITION","toChildKey","outputState","boo","testState","Xyz","ScreenA","ScreenB","Boo","getPathAndParamsForState","initialRouteParams","toBeNull","SET_PARAMS","other","RESET","actions","state1","resetAction","ChildRouter","objectContaining","undefined","LeafScreen","Screen","NestedStack","nestedRouter","activeState4","activeState5","OtherNestedStack","otherNestedRouter"],"mappings":"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","sourcesContent":["/* eslint no-shadow:0, react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport StackRouter from '../StackRouter';\nimport * as StackActions from '../StackActions';\nimport * as NavigationActions from '../../NavigationActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst ListScreen = () => <div />;\n\nconst ProfileNavigator = () => <div />;\nProfileNavigator.router = StackRouter({\n list: {\n path: 'list/:id',\n screen: ListScreen,\n },\n});\n\nconst MainNavigator = () => <div />;\nMainNavigator.router = StackRouter({\n profile: {\n path: 'p/:id',\n screen: ProfileNavigator,\n },\n});\n\nconst LoginScreen = () => <div />;\n\nconst AuthNavigator = () => <div />;\nAuthNavigator.router = StackRouter({\n login: {\n screen: LoginScreen,\n },\n});\n\nconst BarScreen = () => <div />;\n\nclass FooNavigator extends React.Component {\n static router = StackRouter({\n bar: {\n path: 'b/:barThing',\n screen: BarScreen,\n },\n });\n render() {\n return <div />;\n }\n}\n\nconst PersonScreen = () => <div />;\n\nconst TestStackRouter = StackRouter({\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n auth: {\n screen: AuthNavigator,\n },\n person: {\n path: 'people/:id',\n screen: PersonScreen,\n },\n foo: {\n path: 'fo/:fooThing',\n screen: FooNavigator,\n },\n});\n\ndescribe('StackRouter', () => {\n it('Gets the active screen for a given state', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter({\n foo: {\n screen: FooScreen,\n },\n bar: {\n screen: BarScreen,\n },\n });\n\n expect(\n router.getComponentForState({\n index: 0,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n { key: 'c', routeName: 'foo' },\n ],\n })\n ).toBe(FooScreen);\n expect(\n router.getComponentForState({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n ],\n })\n ).toBe(BarScreen);\n });\n\n it('Handles getScreen in getComponentForState', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter({\n foo: {\n getScreen: () => FooScreen,\n },\n bar: {\n getScreen: () => BarScreen,\n },\n });\n\n expect(\n router.getComponentForState({\n index: 0,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n { key: 'c', routeName: 'foo' },\n ],\n })\n ).toBe(FooScreen);\n expect(\n router.getComponentForState({\n index: 1,\n isTransitioning: false,\n routes: [\n { key: 'a', routeName: 'foo' },\n { key: 'b', routeName: 'bar' },\n ],\n })\n ).toBe(BarScreen);\n });\n\n it('Gets the screen for given route', () => {\n const FooScreen = () => <div />;\n const BarScreen = class extends React.Component {\n render() {\n return <div />;\n }\n };\n const BazScreen = class extends React.Component {\n render() {\n return <div />;\n }\n };\n const router = StackRouter({\n foo: {\n screen: FooScreen,\n },\n bar: {\n screen: BarScreen,\n },\n baz: {\n screen: BazScreen,\n },\n });\n\n expect(router.getComponentForRouteName('foo')).toBe(FooScreen);\n expect(router.getComponentForRouteName('bar')).toBe(BarScreen);\n expect(router.getComponentForRouteName('baz')).toBe(BazScreen);\n });\n\n it('Handles getScreen in getComponent', () => {\n const FooScreen = () => <div />;\n const BarScreen = class extends React.Component {\n render() {\n return <div />;\n }\n };\n const BazScreen = class extends React.Component {\n render() {\n return <div />;\n }\n };\n const router = StackRouter({\n foo: {\n getScreen: () => FooScreen,\n },\n bar: {\n getScreen: () => BarScreen,\n },\n baz: {\n getScreen: () => BazScreen,\n },\n });\n\n expect(router.getComponentForRouteName('foo')).toBe(FooScreen);\n expect(router.getComponentForRouteName('bar')).toBe(BarScreen);\n expect(router.getComponentForRouteName('baz')).toBe(BazScreen);\n });\n\n it('Parses simple paths', () => {\n expect(AuthNavigator.router.getActionForPathAndParams('login')).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n });\n });\n\n it('Parses paths with a param', () => {\n expect(TestStackRouter.getActionForPathAndParams('people/foo')).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n },\n });\n });\n\n it('Parses paths with a query', () => {\n expect(\n TestStackRouter.getActionForPathAndParams('people/foo', {\n code: 'test',\n foo: 'bar',\n })\n ).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n code: 'test',\n foo: 'bar',\n },\n });\n });\n\n it('Parses paths with an empty query value', () => {\n expect(\n TestStackRouter.getActionForPathAndParams('people/foo', {\n code: '',\n foo: 'bar',\n })\n ).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'person',\n params: {\n id: 'foo',\n code: '',\n foo: 'bar',\n },\n });\n });\n\n it('Correctly parses a path without arguments into an action chain', () => {\n const uri = 'auth/login';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'auth',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n },\n });\n });\n\n it('Correctly parses a path with arguments into an action chain', () => {\n const uri = 'main/p/4/list/10259959195';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n },\n },\n },\n });\n });\n\n it('Correctly parses a path to the router connected to another router through a pure wildcard route into an action chain', () => {\n const uri = 'b/123';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'baz',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'bar',\n params: {\n barThing: '123',\n },\n },\n });\n });\n\n it('Correctly returns null action for non-existent path', () => {\n const uri = 'asdf/1234';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual(null);\n });\n\n it('Correctly returns action chain for partially matched path', () => {\n const uri = 'auth/login';\n const action = TestStackRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'auth',\n params: {},\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'login',\n params: {},\n },\n });\n });\n\n it('Correctly returns action for path with multiple parameters', () => {\n const path = 'fo/22/b/hello';\n const action = TestStackRouter.getActionForPathAndParams(path);\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'foo',\n params: {\n fooThing: '22',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'bar',\n params: {\n barThing: 'hello',\n },\n },\n });\n });\n\n it('Pushes other navigators when navigating to an unopened route name', () => {\n const Bar = () => <div />;\n Bar.router = StackRouter({\n baz: { screen: () => <div /> },\n qux: { screen: () => <div /> },\n });\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: Bar },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n expect(initState).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [{ key: 'id-0', routeName: 'foo' }],\n });\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'qux' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].index).toEqual(1);\n expect(pushedState.routes[1].routes[1].routeName).toEqual('qux');\n });\n\n it('push bubbles up', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Qux: { screen: () => <div /> },\n });\n const router = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n Bad: { screen: () => <div /> },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.PUSH,\n routeName: 'Bad',\n },\n state2\n );\n expect(state3 && state3.index).toEqual(2);\n expect(state3 && state3.routes.length).toEqual(3);\n });\n\n it('pop bubbles up', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Qux: { screen: () => <div /> },\n });\n const router = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n key: 'StackRouterRoot',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('Handle navigation to nested navigator', () => {\n const action = TestStackRouter.getActionForPathAndParams('fo/22/b/hello');\n /* $FlowFixMe */\n const state2 = TestStackRouter.getStateForAction(action);\n expect(state2).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n key: 'id-1',\n isTransitioning: false,\n routeName: 'foo',\n params: {\n fooThing: '22',\n },\n routes: [\n {\n routeName: 'bar',\n key: 'id-0',\n params: {\n barThing: 'hello',\n },\n },\n ],\n },\n ],\n });\n });\n\n it('popToTop bubbles up', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Qux: { screen: () => <div /> },\n });\n\n const router = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP_TO_TOP,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('popToTop targets StackRouter by key if specified', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Qux: { screen: () => <div /> },\n });\n const router = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n\n const state3 = router.getStateForAction(\n {\n type: StackActions.POP_TO_TOP,\n key: state2.key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n });\n\n it('pop action works as expected', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n\n const state = {\n index: 3,\n isTransitioning: false,\n routes: [\n { key: 'A', routeName: 'foo' },\n { key: 'B', routeName: 'bar', params: { bazId: '321' } },\n { key: 'C', routeName: 'foo' },\n { key: 'D', routeName: 'bar' },\n ],\n };\n const poppedState = TestRouter.getStateForAction(StackActions.pop(), state);\n expect(poppedState.routes.length).toBe(3);\n expect(poppedState.index).toBe(2);\n expect(poppedState.isTransitioning).toBe(true);\n\n const poppedState2 = TestRouter.getStateForAction(\n StackActions.pop({ n: 2, immediate: true }),\n state\n );\n expect(poppedState2.routes.length).toBe(2);\n expect(poppedState2.index).toBe(1);\n expect(poppedState2.isTransitioning).toBe(false);\n\n const poppedState3 = TestRouter.getStateForAction(\n StackActions.pop({ n: 5 }),\n state\n );\n expect(poppedState3.routes.length).toBe(1);\n expect(poppedState3.index).toBe(0);\n expect(poppedState3.isTransitioning).toBe(true);\n });\n\n it('popToTop works as expected', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n\n const state = {\n index: 2,\n isTransitioning: false,\n routes: [\n { key: 'A', routeName: 'foo' },\n { key: 'B', routeName: 'bar', params: { bazId: '321' } },\n { key: 'C', routeName: 'foo' },\n ],\n };\n const poppedState = TestRouter.getStateForAction(\n StackActions.popToTop(),\n state\n );\n expect(poppedState.routes.length).toBe(1);\n expect(poppedState.index).toBe(0);\n expect(poppedState.isTransitioning).toBe(true);\n const poppedState2 = TestRouter.getStateForAction(\n StackActions.popToTop(),\n poppedState\n );\n expect(poppedState).toEqual(poppedState2);\n const poppedImmediatelyState = TestRouter.getStateForAction(\n StackActions.popToTop({ immediate: true }),\n state\n );\n expect(poppedImmediatelyState.routes.length).toBe(1);\n expect(poppedImmediatelyState.index).toBe(0);\n expect(poppedImmediatelyState.isTransitioning).toBe(false);\n });\n\n it('Navigate does not push duplicate routeName', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n },\n { initialRouteName: 'foo' }\n );\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const barState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initState\n );\n expect(barState.index).toEqual(1);\n expect(barState.routes[1].routeName).toEqual('bar');\n const navigateOnBarState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n barState\n );\n expect(navigateOnBarState).toEqual(null);\n });\n\n it('Navigate focuses given routeName if already active in stack', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n baz: { screen: () => <div /> },\n },\n { initialRouteName: 'foo' }\n );\n const initialState = TestRouter.getStateForAction(NavigationActions.init());\n const fooBarState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initialState\n );\n const fooBarBazState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'baz' }),\n fooBarState\n );\n expect(fooBarBazState.index).toEqual(2);\n expect(fooBarBazState.routes[2].routeName).toEqual('baz');\n\n const fooState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' }),\n fooBarBazState\n );\n expect(fooState.index).toEqual(0);\n expect(fooState.routes.length).toEqual(1);\n expect(fooState.routes[0].routeName).toEqual('foo');\n });\n\n it('Navigate pushes duplicate routeName if unique key is provided', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'new-unique-key!' }),\n pushedState\n );\n expect(pushedTwiceState.index).toEqual(2);\n expect(pushedTwiceState.routes[2].routeName).toEqual('bar');\n });\n\n it('Navigate from top propagates to any arbitary depth of stacks', () => {\n const GrandChildNavigator = () => <div />;\n GrandChildNavigator.router = StackRouter({\n Quux: { screen: () => <div /> },\n Corge: { screen: () => <div /> },\n });\n\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Woo: { screen: () => <div /> },\n Qux: { screen: GrandChildNavigator },\n });\n\n const Parent = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n });\n\n const state = Parent.getStateForAction({ type: NavigationActions.INIT });\n const state2 = Parent.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Corge',\n },\n state\n );\n\n expect(state2.isTransitioning).toEqual(true);\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].index).toEqual(1);\n expect(state2.routes[1].routes[1].index).toEqual(1);\n expect(state2.routes[1].routes[1].routes[1].routeName).toEqual('Corge');\n });\n\n it('Navigate to initial screen is possible', () => {\n const TestRouter = StackRouter(\n {\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n },\n { initialRouteKey: 'foo' }\n );\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo', key: 'foo' }),\n initState\n );\n expect(pushedState).toEqual(null);\n });\n\n it('Navigate with key and without it is idempotent', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n pushedState\n );\n expect(pushedTwiceState).toEqual(null);\n });\n\n // https://github.com/react-navigation/react-navigation/issues/4063\n it('Navigate on inactive stackrouter is idempotent', () => {\n const FirstChildNavigator = () => <div />;\n FirstChildNavigator.router = StackRouter({\n First1: () => <div />,\n First2: () => <div />,\n });\n\n const SecondChildNavigator = () => <div />;\n SecondChildNavigator.router = StackRouter({\n Second1: () => <div />,\n Second2: () => <div />,\n });\n\n const router = StackRouter({\n Leaf: () => <div />,\n First: FirstChildNavigator,\n Second: SecondChildNavigator,\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n\n const first = router.getStateForAction(\n NavigationActions.navigate({ routeName: 'First2' }),\n state\n );\n\n const second = router.getStateForAction(\n NavigationActions.navigate({ routeName: 'Second2' }),\n first\n );\n\n const firstAgain = router.getStateForAction(\n NavigationActions.navigate({\n routeName: 'First2',\n params: { debug: true },\n }),\n second\n );\n\n expect(first.routes.length).toEqual(2);\n expect(first.index).toEqual(1);\n expect(second.routes.length).toEqual(3);\n expect(second.index).toEqual(2);\n\n expect(firstAgain.index).toEqual(1);\n expect(firstAgain.routes.length).toEqual(2);\n });\n\n it('Navigate to current routeName returns null to indicate handled action', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const navigatedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' }),\n initState\n );\n expect(navigatedState).toBe(null);\n });\n\n it('Push behaves like navigate, except for key', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n expect(() => {\n TestRouter.getStateForAction(\n { type: StackActions.PUSH, routeName: 'bar', key: 'a' },\n pushedState\n );\n }).toThrow('StackRouter does not support key on the push action');\n });\n\n it('Push adds new routes every time', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n initState\n );\n expect(pushedState.index).toEqual(1);\n expect(pushedState.routes[1].routeName).toEqual('bar');\n const secondPushedState = TestRouter.getStateForAction(\n StackActions.push({ routeName: 'bar' }),\n pushedState\n );\n expect(secondPushedState.index).toEqual(2);\n expect(secondPushedState.routes[2].routeName).toEqual('bar');\n });\n\n it('Navigate backwards with key removes leading routes', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(NavigationActions.init());\n const pushedState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'a' }),\n initState\n );\n const pushedTwiceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'bar', key: 'b`' }),\n pushedState\n );\n const pushedThriceState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo', key: 'c`' }),\n pushedTwiceState\n );\n expect(pushedThriceState.routes.length).toEqual(4);\n\n const navigatedBackToFirstRouteState = TestRouter.getStateForAction(\n NavigationActions.navigate({\n routeName: 'foo',\n key: pushedThriceState.routes[0].key,\n }),\n pushedThriceState\n );\n expect(navigatedBackToFirstRouteState.index).toEqual(0);\n expect(navigatedBackToFirstRouteState.routes.length).toEqual(1);\n });\n\n it('Handle basic stack logic for plain components', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n immediate: true,\n },\n state\n );\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].routeName).toEqual('Bar');\n expect(state2.routes[1].params).toEqual({ name: 'Zoom' });\n expect(state2.routes.length).toEqual(2);\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK, immediate: true },\n state2\n );\n expect(state3).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n });\n\n it('Replace action works', () => {\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: () => <div /> },\n });\n const initState = TestRouter.getStateForAction(\n NavigationActions.navigate({ routeName: 'foo' })\n );\n const replacedState = TestRouter.getStateForAction(\n StackActions.replace({\n routeName: 'bar',\n params: { meaning: 42 },\n key: initState.routes[0].key,\n }),\n initState\n );\n expect(replacedState.index).toEqual(0);\n expect(replacedState.routes.length).toEqual(1);\n expect(replacedState.routes[0].key).not.toEqual(initState.routes[0].key);\n expect(replacedState.routes[0].routeName).toEqual('bar');\n expect(replacedState.routes[0].params.meaning).toEqual(42);\n const replacedState2 = TestRouter.getStateForAction(\n StackActions.replace({\n routeName: 'bar',\n key: initState.routes[0].key,\n newKey: 'wow',\n }),\n initState\n );\n expect(replacedState2.index).toEqual(0);\n expect(replacedState2.routes.length).toEqual(1);\n expect(replacedState2.routes[0].key).toEqual('wow');\n expect(replacedState2.routes[0].routeName).toEqual('bar');\n });\n\n it('Replace action returns most recent route if no key is provided', () => {\n const GrandChildNavigator = () => <div />;\n GrandChildNavigator.router = StackRouter({\n Quux: { screen: () => <div /> },\n Corge: { screen: () => <div /> },\n Grault: { screen: () => <div /> },\n });\n\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Woo: { screen: () => <div /> },\n Qux: { screen: GrandChildNavigator },\n });\n\n const router = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Qux',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Corge',\n },\n state3\n );\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Grault',\n },\n state4\n );\n\n const replacedState = router.getStateForAction(\n StackActions.replace({\n routeName: 'Woo',\n params: { meaning: 42 },\n }),\n state5\n );\n\n const originalCurrentScreen = state5.routes[1].routes[1].routes[2];\n const replacedCurrentScreen = replacedState.routes[1].routes[1].routes[2];\n\n expect(replacedState.routes[1].routes[1].index).toEqual(2);\n expect(replacedState.routes[1].routes[1].routes.length).toEqual(3);\n expect(replacedCurrentScreen.key).not.toEqual(originalCurrentScreen.key);\n expect(replacedCurrentScreen.routeName).not.toEqual(\n originalCurrentScreen.routeName\n );\n expect(replacedCurrentScreen.routeName).toEqual('Woo');\n expect(replacedCurrentScreen.params.meaning).toEqual(42);\n });\n\n it('Handles push transition logic with completion action', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.isTransitioning).toEqual(true);\n const state3 = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state2.routes[1].key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(1);\n expect(state3 && state3.isTransitioning).toEqual(false);\n });\n\n it('Completion action does not work with incorrect key', () => {\n const FooScreen = () => <div />;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: FooScreen,\n },\n });\n const state = {\n key: 'StackKey',\n index: 1,\n isTransitioning: true,\n routes: [{ key: 'a', routeName: 'Foo' }, { key: 'b', routeName: 'Foo' }],\n };\n const outputState = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state.routes[state.index].key,\n key: 'not StackKey',\n },\n state\n );\n expect(outputState.isTransitioning).toEqual(true);\n });\n\n it('Completion action does not work with incorrect toChildKey', () => {\n const FooScreen = () => <div />;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: FooScreen,\n },\n });\n const state = {\n key: 'StackKey',\n index: 1,\n isTransitioning: true,\n routes: [{ key: 'a', routeName: 'Foo' }, { key: 'b', routeName: 'Foo' }],\n };\n const outputState = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n // for this action to toggle isTransitioning, toChildKey should be state.routes[state.index].key,\n toChildKey: 'incorrect',\n key: 'StackKey',\n },\n state\n );\n expect(outputState.isTransitioning).toEqual(true);\n });\n\n it('Back action parent is prioritized over inactive child routers', () => {\n const Bar = () => <div />;\n Bar.router = StackRouter({\n baz: { screen: () => <div /> },\n qux: { screen: () => <div /> },\n });\n const TestRouter = StackRouter({\n foo: { screen: () => <div /> },\n bar: { screen: Bar },\n boo: { screen: () => <div /> },\n });\n const state = {\n key: 'top',\n index: 3,\n routes: [\n { routeName: 'foo', key: 'f' },\n {\n routeName: 'bar',\n key: 'b',\n index: 1,\n routes: [\n { routeName: 'baz', key: 'bz' },\n { routeName: 'qux', key: 'bx' },\n ],\n },\n { routeName: 'foo', key: 'f1' },\n { routeName: 'boo', key: 'z' },\n ],\n };\n const testState = TestRouter.getStateForAction(\n { type: NavigationActions.BACK },\n state\n );\n expect(testState.index).toBe(2);\n expect(testState.routes[1].index).toBe(1);\n });\n\n it('Handle basic stack logic for components with router', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n BarScreen.router = StackRouter({\n Xyz: {\n screen: () => null,\n },\n });\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { name: 'Zoom' },\n immediate: true,\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].routeName).toEqual('Bar');\n expect(state2 && state2.routes[1].params).toEqual({ name: 'Zoom' });\n expect(state2 && state2.routes.length).toEqual(2);\n const state3 = router.getStateForAction(\n { type: NavigationActions.BACK, immediate: true },\n state2\n );\n expect(state3).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Foo',\n },\n ],\n });\n });\n\n it('Gets deep path (stack behavior)', () => {\n const ScreenA = () => <div />;\n const ScreenB = () => <div />;\n ScreenA.router = StackRouter({\n Boo: { path: 'boo', screen: ScreenB },\n Baz: { path: 'baz/:bazId', screen: ScreenB },\n });\n const router = StackRouter({\n Foo: {\n path: 'f/:id',\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n const state = {\n index: 0,\n isTransitioning: false,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n { key: 'Boo', routeName: 'Boo' },\n { key: 'Baz', routeName: 'Baz', params: { bazId: '321' } },\n ],\n },\n { key: 'Bar', routeName: 'Bar' },\n ],\n };\n const { path, params } = router.getPathAndParamsForState(state);\n expect(path).toEqual('f/123/baz/321');\n expect(params).toEqual({});\n });\n\n it('Handle goBack identified by key', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n params: { name: 'Zoom' },\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n params: { name: 'Foo' },\n },\n state2\n );\n const state4 = router.getStateForAction(\n { type: NavigationActions.BACK, key: 'wrongKey' },\n state3\n );\n expect(state3).toEqual(state4);\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.BACK,\n key: state3 && state3.routes[1].key,\n immediate: true,\n },\n state4\n );\n expect(state5).toEqual(state);\n });\n\n it('Handle initial route navigation', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n },\n { initialRouteName: 'Bar' }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Bar',\n },\n ],\n });\n });\n\n it('Initial route params appear in nav state', () => {\n const FooScreen = () => <div />;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n },\n },\n { initialRouteName: 'Foo', initialRouteParams: { foo: 'bar' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: state && state.routes[0].key,\n routeName: 'Foo',\n params: { foo: 'bar' },\n },\n ],\n });\n });\n\n it('params in route config are merged with initialRouteParams', () => {\n const FooScreen = () => <div />;\n const router = StackRouter(\n {\n Foo: {\n screen: FooScreen,\n params: { foo: 'not-bar', meaning: 42 },\n },\n },\n { initialRouteName: 'Foo', initialRouteParams: { foo: 'bar' } }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: state && state.routes[0].key,\n routeName: 'Foo',\n params: { foo: 'bar', meaning: 42 },\n },\n ],\n });\n });\n\n it('Action params appear in nav state', () => {\n const FooScreen = () => <div />;\n const BarScreen = () => <div />;\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: BarScreen,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { bar: '42' },\n immediate: true,\n },\n state\n );\n expect(state2).not.toBeNull();\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].params).toEqual({ bar: '42' });\n });\n\n it('Handles the SetParams action', () => {\n const router = StackRouter(\n {\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n },\n },\n {\n initialRouteName: 'Bar',\n initialRouteParams: { name: 'Zoo' },\n }\n );\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const key = state && state.routes[0].key;\n const state2 =\n key &&\n router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'Qux' },\n key,\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].params).toEqual({ name: 'Qux' });\n });\n\n it('Handles the SetParams action for inactive routes', () => {\n const router = StackRouter(\n {\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n },\n },\n {\n initialRouteName: 'Bar',\n initialRouteParams: { name: 'Zoo' },\n }\n );\n const initialState = {\n index: 1,\n routes: [\n {\n key: 'RouteA',\n routeName: 'Foo',\n params: { name: 'InitialParam', other: 'Unchanged' },\n },\n { key: 'RouteB', routeName: 'Bar', params: {} },\n ],\n };\n const state = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'NewParam' },\n key: 'RouteA',\n },\n initialState\n );\n expect(state.index).toEqual(1);\n expect(state.routes[0].params).toEqual({\n name: 'NewParam',\n other: 'Unchanged',\n });\n });\n\n it('Handles the setParams action with nested routers', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n Qux: { screen: () => <div /> },\n });\n const router = StackRouter({\n Foo: { screen: ChildNavigator },\n Bar: { screen: () => <div /> },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'foobar' },\n key: 'id-0',\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routes).toEqual([\n {\n key: 'id-0',\n routeName: 'Baz',\n params: { name: 'foobar' },\n },\n ]);\n });\n\n it('Handles the reset action', () => {\n const router = StackRouter({\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: StackActions.RESET,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: { bar: '42' },\n immediate: true,\n },\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 1,\n },\n state\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[0].params).toEqual({ bar: '42' });\n expect(state2 && state2.routes[0].routeName).toEqual('Foo');\n expect(state2 && state2.routes[1].routeName).toEqual('Bar');\n });\n\n it('Handles the reset action only with correct key set', () => {\n const router = StackRouter({\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n },\n });\n const state1 = router.getStateForAction({ type: NavigationActions.INIT });\n const resetAction = {\n type: StackActions.RESET,\n key: 'Bad Key',\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: { bar: '42' },\n immediate: true,\n },\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 1,\n };\n const state2 = router.getStateForAction(resetAction, state1);\n expect(state2).toEqual(state1);\n const state3 = router.getStateForAction(\n {\n ...resetAction,\n key: state2.key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(1);\n expect(state3 && state3.routes[0].params).toEqual({ bar: '42' });\n expect(state3 && state3.routes[0].routeName).toEqual('Foo');\n expect(state3 && state3.routes[1].routeName).toEqual('Bar');\n });\n\n it('Handles the reset action with nested Router', () => {\n const ChildRouter = StackRouter({\n baz: {\n screen: () => <div />,\n },\n });\n\n const ChildNavigator = () => <div />;\n ChildNavigator.router = ChildRouter;\n\n const router = StackRouter({\n Foo: {\n screen: ChildNavigator,\n },\n Bar: {\n screen: () => <div />,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: null,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n },\n ],\n index: 0,\n },\n state\n );\n\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routeName).toEqual('Foo');\n expect(state2 && state2.routes[0].routes[0].routeName).toEqual('baz');\n });\n\n it('Handles the reset action with a key', () => {\n const ChildRouter = StackRouter({\n baz: {\n screen: () => <div />,\n },\n });\n\n const ChildNavigator = () => <div />;\n ChildNavigator.router = ChildRouter;\n\n const router = StackRouter({\n Foo: {\n screen: ChildNavigator,\n },\n Bar: {\n screen: () => <div />,\n },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'baz',\n immediate: true,\n },\n },\n state\n );\n const state3 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: 'Init',\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n },\n ],\n index: 0,\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: StackActions.RESET,\n key: null,\n actions: [\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n immediate: true,\n },\n ],\n index: 0,\n },\n state3\n );\n\n expect(state4 && state4.index).toEqual(0);\n expect(state4 && state4.routes[0].routeName).toEqual('Bar');\n });\n\n it('Handles the navigate action with params and nested StackRouter', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({ Baz: { screen: () => <div /> } });\n\n const router = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: ChildNavigator },\n });\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Bar',\n params: { foo: '42' },\n },\n state\n );\n expect(state2 && state2.routes[1].params).toEqual({ foo: '42' });\n expect(state2 && state2.routes[1].routes).toEqual([\n expect.objectContaining({\n routeName: 'Baz',\n params: { foo: '42' },\n }),\n ]);\n });\n\n it('Navigate action to previous nested StackRouter causes isTransitioning start', () => {\n const ChildNavigator = () => <div />;\n ChildNavigator.router = StackRouter({\n Baz: { screen: () => <div /> },\n });\n const router = StackRouter({\n Bar: { screen: ChildNavigator },\n Foo: { screen: () => <div /> },\n });\n const state = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Foo',\n },\n router.getStateForAction({ type: NavigationActions.INIT })\n );\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state\n );\n expect(state2.index).toEqual(0);\n expect(state2.isTransitioning).toEqual(true);\n });\n\n it('Handles the navigate action with params and nested StackRouter as a first action', () => {\n const state = TestStackRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: 'test',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: 'test',\n foo: 'bar',\n },\n },\n },\n });\n\n expect(state).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-2',\n params: { code: 'test', foo: 'bar' },\n routeName: 'main',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-1',\n params: { code: 'test', foo: 'bar', id: '4' },\n routeName: 'profile',\n routes: [\n {\n key: 'id-0',\n params: { code: 'test', foo: 'bar', id: '10259959195' },\n routeName: 'list',\n type: undefined,\n },\n ],\n },\n ],\n },\n ],\n });\n\n const state2 = TestStackRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'main',\n params: {\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'profile',\n params: {\n id: '4',\n code: '',\n foo: 'bar',\n },\n action: {\n type: NavigationActions.NAVIGATE,\n routeName: 'list',\n params: {\n id: '10259959195',\n code: '',\n foo: 'bar',\n },\n },\n },\n });\n\n expect(state2).toEqual({\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-5',\n params: { code: '', foo: 'bar' },\n routeName: 'main',\n routes: [\n {\n index: 0,\n isTransitioning: false,\n key: 'id-4',\n params: { code: '', foo: 'bar', id: '4' },\n routeName: 'profile',\n routes: [\n {\n key: 'id-3',\n params: { code: '', foo: 'bar', id: '10259959195' },\n routeName: 'list',\n type: undefined,\n },\n ],\n },\n ],\n },\n ],\n });\n });\n\n it('Handles deep navigate completion action', () => {\n const LeafScreen = () => <div />;\n const FooScreen = () => <div />;\n FooScreen.router = StackRouter({\n Boo: { path: 'boo', screen: LeafScreen },\n Baz: { path: 'baz/:bazId', screen: LeafScreen },\n });\n const router = StackRouter({\n Foo: {\n screen: FooScreen,\n },\n Bar: {\n screen: LeafScreen,\n },\n });\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state && state.index).toEqual(0);\n expect(state && state.routes[0].routeName).toEqual('Foo');\n const key = state && state.routes[0].key;\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state\n );\n expect(state2.index).toEqual(0);\n expect(state2.isTransitioning).toEqual(false);\n expect(state2.routes[0].index).toEqual(1);\n expect(state2.routes[0].isTransitioning).toEqual(true);\n expect(!!key).toEqual(true);\n const state3 = router.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n toChildKey: state2.routes[0].routes[1].key,\n },\n state2\n );\n expect(state3 && state3.index).toEqual(0);\n expect(state3 && state3.isTransitioning).toEqual(false);\n expect(state3 && state3.routes[0].index).toEqual(1);\n expect(state3 && state3.routes[0].isTransitioning).toEqual(false);\n });\n\n it('order of handling navigate action is correct for nested stackrouters', () => {\n const Screen = () => <div />;\n const NestedStack = () => <div />;\n let nestedRouter = StackRouter({\n Foo: Screen,\n Bar: Screen,\n });\n\n NestedStack.router = nestedRouter;\n\n let router = StackRouter(\n {\n NestedStack,\n Bar: Screen,\n Baz: Screen,\n },\n {\n initialRouteName: 'Baz',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('Baz');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Baz',\n },\n state2\n );\n expect(state3.routes[state3.index].routeName).toEqual('Baz');\n\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedStack');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Foo');\n\n const state5 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state4\n );\n let activeState5 = state5.routes[state5.index];\n expect(activeState5.routeName).toEqual('NestedStack');\n expect(activeState5.routes[activeState5.index].routeName).toEqual('Bar');\n });\n\n it('order of handling navigate action is correct for nested stackrouters 2', () => {\n const Screen = () => <div />;\n const NestedStack = () => <div />;\n const OtherNestedStack = () => <div />;\n\n let nestedRouter = StackRouter({ Foo: Screen, Bar: Screen });\n let otherNestedRouter = StackRouter({ Foo: Screen });\n NestedStack.router = nestedRouter;\n OtherNestedStack.router = otherNestedRouter;\n\n let router = StackRouter(\n {\n NestedStack,\n OtherNestedStack,\n Bar: Screen,\n },\n {\n initialRouteName: 'OtherNestedStack',\n }\n );\n\n const state = router.getStateForAction({ type: NavigationActions.INIT });\n expect(state.routes[state.index].routeName).toEqual('OtherNestedStack');\n\n const state2 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state\n );\n expect(state2.routes[state2.index].routeName).toEqual('Bar');\n\n const state3 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'NestedStack',\n },\n state2\n );\n const state4 = router.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state3\n );\n let activeState4 = state4.routes[state4.index];\n expect(activeState4.routeName).toEqual('NestedStack');\n expect(activeState4.routes[activeState4.index].routeName).toEqual('Bar');\n });\n});\n"]}
|