@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":["React","StackRouter","StackActions","NavigationActions","_TESTING_ONLY_normalize_keys","beforeEach","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","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","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","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":["React","StackRouter","StackActions","NavigationActions","_TESTING_ONLY_normalize_keys","beforeEach","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","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","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","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"]}
|