@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.
Files changed (86) hide show
  1. package/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js +1 -1
  2. package/lib/commonjs/navigators/__tests__/createSwitchnavigator-test.js.map +1 -1
  3. package/lib/commonjs/navigators/createNavigator.js +1 -1
  4. package/lib/commonjs/navigators/createNavigator.js.map +1 -1
  5. package/lib/commonjs/routers/SwitchRouter.js +1 -1
  6. package/lib/commonjs/routers/SwitchRouter.js.map +1 -1
  7. package/lib/commonjs/routers/__tests__/PathHandling-test.js +1 -1
  8. package/lib/commonjs/routers/__tests__/PathHandling-test.js.map +1 -1
  9. package/lib/commonjs/routers/__tests__/Routers-test.js +1 -1
  10. package/lib/commonjs/routers/__tests__/Routers-test.js.map +1 -1
  11. package/lib/commonjs/routers/__tests__/StackRouter-test.js +1 -1
  12. package/lib/commonjs/routers/__tests__/StackRouter-test.js.map +1 -1
  13. package/lib/commonjs/routers/__tests__/SwitchRouter-test.js +1 -1
  14. package/lib/commonjs/routers/__tests__/SwitchRouter-test.js.map +1 -1
  15. package/lib/commonjs/routers/__tests__/TabRouter-test.js +1 -1
  16. package/lib/commonjs/routers/__tests__/TabRouter-test.js.map +1 -1
  17. package/lib/commonjs/routers/__tests__/pathUtils-test.js +1 -1
  18. package/lib/commonjs/routers/__tests__/pathUtils-test.js.map +1 -1
  19. package/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js +1 -1
  20. package/lib/commonjs/routers/__tests__/validateRouteConfigMap-test.js.map +1 -1
  21. package/lib/commonjs/routers/createConfigGetter.js +1 -1
  22. package/lib/commonjs/routers/createConfigGetter.js.map +1 -1
  23. package/lib/commonjs/routers/pathUtils.js +1 -1
  24. package/lib/commonjs/routers/pathUtils.js.map +1 -1
  25. package/lib/commonjs/useTheme.js +1 -1
  26. package/lib/commonjs/useTheme.js.map +1 -1
  27. package/lib/commonjs/utils/getActiveChildNavigationOptions.js +1 -1
  28. package/lib/commonjs/utils/getActiveChildNavigationOptions.js.map +1 -1
  29. package/lib/commonjs/views/SceneView.js +1 -1
  30. package/lib/commonjs/views/SceneView.js.map +1 -1
  31. package/lib/commonjs/views/SwitchView/SwitchView.js +1 -1
  32. package/lib/commonjs/views/SwitchView/SwitchView.js.map +1 -1
  33. package/lib/commonjs/views/__tests__/NavigationEvents-test.js +1 -1
  34. package/lib/commonjs/views/__tests__/NavigationEvents-test.js.map +1 -1
  35. package/lib/commonjs/views/withNavigation.js +1 -1
  36. package/lib/commonjs/views/withNavigation.js.map +1 -1
  37. package/lib/commonjs/views/withNavigationFocus.js +1 -1
  38. package/lib/commonjs/views/withNavigationFocus.js.map +1 -1
  39. package/lib/module/navigators/__tests__/createSwitchnavigator-test.js +1 -1
  40. package/lib/module/navigators/__tests__/createSwitchnavigator-test.js.map +1 -1
  41. package/lib/module/navigators/createNavigator.js +1 -1
  42. package/lib/module/navigators/createNavigator.js.map +1 -1
  43. package/lib/module/routers/SwitchRouter.js +1 -1
  44. package/lib/module/routers/SwitchRouter.js.map +1 -1
  45. package/lib/module/routers/__tests__/PathHandling-test.js +1 -1
  46. package/lib/module/routers/__tests__/PathHandling-test.js.map +1 -1
  47. package/lib/module/routers/__tests__/Routers-test.js +1 -1
  48. package/lib/module/routers/__tests__/Routers-test.js.map +1 -1
  49. package/lib/module/routers/__tests__/StackRouter-test.js +1 -1
  50. package/lib/module/routers/__tests__/StackRouter-test.js.map +1 -1
  51. package/lib/module/routers/__tests__/SwitchRouter-test.js +1 -1
  52. package/lib/module/routers/__tests__/SwitchRouter-test.js.map +1 -1
  53. package/lib/module/routers/__tests__/TabRouter-test.js +1 -1
  54. package/lib/module/routers/__tests__/TabRouter-test.js.map +1 -1
  55. package/lib/module/routers/__tests__/pathUtils-test.js +1 -1
  56. package/lib/module/routers/__tests__/pathUtils-test.js.map +1 -1
  57. package/lib/module/routers/__tests__/validateRouteConfigMap-test.js +1 -1
  58. package/lib/module/routers/__tests__/validateRouteConfigMap-test.js.map +1 -1
  59. package/lib/module/routers/createConfigGetter.js +1 -1
  60. package/lib/module/routers/createConfigGetter.js.map +1 -1
  61. package/lib/module/routers/pathUtils.js +1 -1
  62. package/lib/module/routers/pathUtils.js.map +1 -1
  63. package/lib/module/useTheme.js +1 -1
  64. package/lib/module/useTheme.js.map +1 -1
  65. package/lib/module/utils/getActiveChildNavigationOptions.js +1 -1
  66. package/lib/module/utils/getActiveChildNavigationOptions.js.map +1 -1
  67. package/lib/module/views/SceneView.js +1 -1
  68. package/lib/module/views/SceneView.js.map +1 -1
  69. package/lib/module/views/SwitchView/SwitchView.js +1 -1
  70. package/lib/module/views/SwitchView/SwitchView.js.map +1 -1
  71. package/lib/module/views/__tests__/NavigationEvents-test.js +1 -1
  72. package/lib/module/views/__tests__/NavigationEvents-test.js.map +1 -1
  73. package/lib/module/views/withNavigation.js +1 -1
  74. package/lib/module/views/withNavigation.js.map +1 -1
  75. package/lib/module/views/withNavigationFocus.js +1 -1
  76. package/lib/module/views/withNavigationFocus.js.map +1 -1
  77. package/lib/typescript/useTheme.d.ts +1 -1
  78. package/package.json +1 -1
  79. package/src/navigators/createNavigator.js +35 -16
  80. package/src/routers/SwitchRouter.js +13 -11
  81. package/src/routers/__tests__/pathUtils-test.js +37 -1
  82. package/src/routers/createConfigGetter.js +3 -2
  83. package/src/routers/pathUtils.js +16 -5
  84. package/src/useTheme.ts +1 -1
  85. package/src/utils/getActiveChildNavigationOptions.js +6 -2
  86. package/src/.DS_Store +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["PathHandling-test.js"],"names":["beforeEach","performRouterTest","createTestRouter","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","React","Component","bar","PersonScreen","testRouter","main","baz","auth","person","foo","it","Foo","Bar","initialRouteName","initialRouteParams","action","getActionForPathAndParams","expect","toEqual","state","getStateForAction","NavigationActions","init","routes","index","objectContaining","routeName","params","Person","Task","ThingA","Thing","type","NAVIGATE","task","action1","action2","good","thing","action3","something","ScreenA","Baz","action0","toBe","state1","ScreenB","ScreenC","Empty","A","B","C","id","Boo","Quo","Qux","Boo2","key","bazId","getPathAndParamsForState","uri","malformedUri","s","out","code","paths","describe","StackRouter","SwitchRouter","AScreen","DocsNavigator","Docs","D","performRouteNameAsPathDisabledTest","BScreen","NestedNavigator","disableRouteNamePaths","TabRouter"],"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 SwitchRouter from '../SwitchRouter';\nimport StackRouter from '../StackRouter';\nimport TabRouter from '../TabRouter';\nimport * as NavigationActions from '../../NavigationActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst performRouterTest = createTestRouter => {\n const ListScreen = () => <div />;\n\n const ProfileNavigator = () => <div />;\n ProfileNavigator.router = StackRouter({\n list: {\n path: 'list/:id',\n screen: ListScreen,\n },\n });\n\n const MainNavigator = () => <div />;\n MainNavigator.router = StackRouter({\n profile: {\n path: 'p/:id',\n screen: ProfileNavigator,\n },\n });\n\n const LoginScreen = () => <div />;\n\n const AuthNavigator = () => <div />;\n AuthNavigator.router = StackRouter({\n login: {\n screen: LoginScreen,\n },\n });\n\n const BarScreen = () => <div />;\n\n class 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\n const PersonScreen = () => <div />;\n\n const testRouter = createTestRouter({\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\n it('Handles empty URIs with empty action', () => {\n const router = createTestRouter(\n {\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n },\n },\n { initialRouteName: 'Bar', initialRouteParams: { foo: 42 } }\n );\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual(null);\n const state = router.getStateForAction(action || NavigationActions.init());\n expect(state.routes[state.index]).toEqual(\n expect.objectContaining({\n routeName: 'Bar',\n params: { foo: 42 },\n })\n );\n });\n\n it('Handles paths with several params', () => {\n const router = createTestRouter({\n Person: {\n path: 'people/:person',\n screen: () => <div />,\n },\n Task: {\n path: 'people/:person/tasks/:task',\n screen: () => <div />,\n },\n ThingA: {\n path: 'things/:good',\n screen: () => <div />,\n },\n Thing: {\n path: 'things/:good/:thing',\n screen: () => <div />,\n },\n });\n const action = router.getActionForPathAndParams(\n 'people/brent/tasks/everything'\n );\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Task',\n params: { person: 'brent', task: 'everything' },\n });\n\n const action1 = router.getActionForPathAndParams('people/lucy');\n expect(action1).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Person',\n params: { person: 'lucy' },\n });\n\n const action2 = router.getActionForPathAndParams('things/foo/bar');\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Thing',\n params: { good: 'foo', thing: 'bar' },\n });\n\n const action3 = router.getActionForPathAndParams('things/foo');\n expect(action3).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'ThingA',\n params: { good: 'foo' },\n });\n });\n\n it('Handles empty path configuration', () => {\n const router = createTestRouter({\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n path: '',\n },\n });\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: {},\n });\n });\n\n it('Handles wildcard path configuration', () => {\n const router = createTestRouter({\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n path: ':something',\n },\n });\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual(null);\n\n const action1 = router.getActionForPathAndParams('Foo');\n expect(action1).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: {},\n });\n const action2 = router.getActionForPathAndParams('asdf');\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { something: 'asdf' },\n });\n });\n\n it('Null path behavior', () => {\n const ScreenA = () => <div />;\n const router = createTestRouter({\n Bar: {\n screen: ScreenA,\n },\n Foo: {\n path: null,\n screen: ScreenA,\n },\n Baz: {\n path: '',\n screen: ScreenA,\n },\n });\n const action0 = router.getActionForPathAndParams('test/random', {});\n expect(action0).toBe(null);\n\n const action1 = router.getActionForPathAndParams('', {});\n expect(action1.routeName).toBe('Baz');\n const state1 = router.getStateForAction(action1);\n expect(state1.routes[state1.index].routeName).toBe('Baz');\n });\n\n it('Multiple null path sub routers path behavior', () => {\n const ScreenA = () => <div />;\n const ScreenB = () => <div />;\n ScreenB.router = createTestRouter({\n Foo: ScreenA,\n });\n const ScreenC = () => <div />;\n ScreenC.router = createTestRouter({\n Bar: {\n path: 'bar/:id',\n screen: ScreenA,\n },\n Empty: {\n path: '',\n screen: ScreenA,\n },\n });\n const router = createTestRouter({\n A: {\n screen: ScreenA,\n },\n B: {\n path: null,\n screen: ScreenB,\n },\n C: {\n path: null,\n screen: ScreenC,\n },\n });\n const action0 = router.getActionForPathAndParams('Foo', {});\n expect(action0.routeName).toBe('B');\n expect(action0.action.routeName).toBe('Foo');\n\n const action1 = router.getActionForPathAndParams('', {});\n expect(action1.routeName).toBe('C');\n expect(action1.action.routeName).toBe('Empty');\n\n const action2 = router.getActionForPathAndParams('A', {});\n expect(action2.routeName).toBe('A');\n\n const action3 = router.getActionForPathAndParams('bar/asdf', {});\n expect(action3.routeName).toBe('C');\n expect(action3.action.routeName).toBe('Bar');\n expect(action3.action.params.id).toBe('asdf');\n });\n\n it('Null and empty string path sub routers behavior', () => {\n const ScreenA = () => <div />;\n const ScreenB = () => <div />;\n ScreenB.router = createTestRouter({\n Foo: ScreenA,\n Baz: {\n screen: ScreenA,\n path: '',\n },\n });\n const ScreenC = () => <div />;\n ScreenC.router = createTestRouter({\n Boo: ScreenA,\n Bar: ScreenA,\n Baz: {\n screen: ScreenA,\n path: '',\n },\n });\n const router = createTestRouter({\n B: {\n path: null,\n screen: ScreenB,\n },\n C: {\n path: '',\n screen: ScreenC,\n },\n });\n const action0 = router.getActionForPathAndParams('', {});\n expect(action0.routeName).toBe('C');\n expect(action0.action.routeName).toBe('Baz');\n\n const action1 = router.getActionForPathAndParams('Foo', {});\n expect(action1.routeName).toBe('B');\n expect(action1.action.routeName).toBe('Foo');\n\n const action2 = router.getActionForPathAndParams('Bar', {});\n expect(action2.routeName).toBe('C');\n expect(action2.action.routeName).toBe('Bar');\n\n const action3 = router.getActionForPathAndParams('unknown', {});\n expect(action3).toBe(null);\n });\n\n it('Empty path acts as wildcard for nested router', () => {\n const ScreenA = () => <div />;\n const Foo = () => <div />;\n const ScreenC = () => <div />;\n ScreenC.router = createTestRouter({\n Boo: ScreenA,\n Bar: ScreenA,\n });\n Foo.router = createTestRouter({\n Quo: ScreenA,\n Qux: {\n screen: ScreenC,\n path: '',\n },\n });\n const router = createTestRouter({\n Bar: {\n screen: ScreenA,\n },\n Foo,\n });\n const action0 = router.getActionForPathAndParams('Foo/Bar', {});\n expect(action0.routeName).toBe('Foo');\n expect(action0.action.routeName).toBe('Qux');\n expect(action0.action.action.routeName).toBe('Bar');\n });\n\n it('Gets deep path with pure wildcard match', () => {\n const ScreenA = () => <div />;\n const ScreenB = () => <div />;\n const ScreenC = () => <div />;\n ScreenA.router = createTestRouter({\n Boo: { path: 'boo', screen: ScreenC },\n Baz: { path: 'baz/:bazId', screen: ScreenB },\n });\n ScreenC.router = createTestRouter({\n Boo2: { path: '', screen: ScreenB },\n });\n const router = createTestRouter({\n Foo: {\n path: null,\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n {\n const state = {\n index: 0,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n {\n index: 0,\n key: 'Boo',\n routeName: 'Boo',\n routes: [{ key: 'Boo2', routeName: 'Boo2' }],\n },\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('baz/321');\n expect(params.id).toEqual('123');\n }\n\n {\n const state = {\n index: 0,\n routes: [\n {\n index: 0,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n {\n index: 0,\n key: 'Boo',\n routeName: 'Boo',\n routes: [{ key: 'Boo2', routeName: 'Boo2' }],\n },\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('boo');\n expect(params).toEqual({ id: '123' });\n }\n });\n\n it('URI encoded string get passed to deep link', () => {\n const uri = 'people/2018%2F02%2F07';\n const action = testRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n routeName: 'person',\n params: {\n id: '2018/02/07',\n },\n type: NavigationActions.NAVIGATE,\n });\n\n const malformedUri = 'people/%E0%A4%A';\n const action2 = testRouter.getActionForPathAndParams(malformedUri);\n expect(action2).toEqual({\n routeName: 'person',\n params: {\n id: '%E0%A4%A',\n },\n type: NavigationActions.NAVIGATE,\n });\n });\n\n it('URI encoded path param gets parsed and correctly printed', () => {\n const action = testRouter.getActionForPathAndParams('people/Henry%20L');\n expect(action).toEqual({\n routeName: 'person',\n params: {\n id: 'Henry L',\n },\n type: NavigationActions.NAVIGATE,\n });\n const s = testRouter.getStateForAction(action);\n const out = testRouter.getPathAndParamsForState(s);\n expect(out.path).toEqual('people/Henry%20L');\n expect(out.params).toEqual({});\n });\n\n it('Querystring params get passed to nested deep link', () => {\n const action = testRouter.getActionForPathAndParams(\n 'main/p/4/list/10259959195',\n { code: 'test', foo: 'bar' }\n );\n expect(action).toEqual({\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 const action2 = testRouter.getActionForPathAndParams(\n 'main/p/4/list/10259959195',\n { code: '', foo: 'bar' }\n );\n expect(action2).toEqual({\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\n it('paths option on router overrides path from route config', () => {\n const router = createTestRouter(\n {\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n },\n { paths: { baz: 'overridden' } }\n );\n const action = router.getActionForPathAndParams('overridden', {});\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('baz');\n });\n\n it('paths option set as null on router overrides path from route config', () => {\n const router = createTestRouter(\n {\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: 'bazPath',\n screen: FooNavigator,\n },\n },\n { paths: { baz: null } }\n );\n const action = router.getActionForPathAndParams('b/noBaz', {});\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('baz');\n });\n};\n\ndescribe('Path handling for stack router', () => {\n performRouterTest(StackRouter);\n});\ndescribe('Path handling for switch router', () => {\n performRouterTest(SwitchRouter);\n});\n\nit('Handles nested switch routers', () => {\n const AScreen = () => <div />;\n const DocsNavigator = () => <div />;\n DocsNavigator.router = SwitchRouter({\n A: AScreen,\n B: AScreen,\n C: AScreen,\n });\n DocsNavigator.path = 'docs';\n const router = SwitchRouter({\n Docs: DocsNavigator,\n D: AScreen,\n });\n const action = router.getActionForPathAndParams('docs/B', {});\n\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('Docs');\n expect(action.action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.action.routeName).toEqual('B');\n});\n\nconst performRouteNameAsPathDisabledTest = createTestRouter => {\n const BScreen = () => <div />;\n const NestedNavigator = () => <div />;\n NestedNavigator.router = createTestRouter({\n B: {\n screen: BScreen,\n path: 'baz',\n },\n });\n const router = createTestRouter(\n {\n A: NestedNavigator,\n },\n { disableRouteNamePaths: true }\n );\n\n it('disableRouteNamePaths option on router prevent the default path to be the routeName', () => {\n const action = router.getActionForPathAndParams('baz', {});\n\n expect(action.routeName).toBe('A');\n expect(action.action.routeName).toBe('B');\n });\n};\n\ndescribe('Stack router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(StackRouter);\n});\n\ndescribe('Switch router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(SwitchRouter);\n});\n\ndescribe('Tab router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(TabRouter);\n});\n"]}
1
+ {"version":3,"sources":["PathHandling-test.js"],"names":["beforeEach","performRouterTest","createTestRouter","ListScreen","ProfileNavigator","router","list","path","screen","MainNavigator","profile","LoginScreen","AuthNavigator","login","BarScreen","FooNavigator","React","Component","bar","PersonScreen","testRouter","main","baz","auth","person","foo","it","Foo","Bar","initialRouteName","initialRouteParams","action","getActionForPathAndParams","expect","toEqual","state","getStateForAction","NavigationActions","init","routes","index","objectContaining","routeName","params","Person","Task","ThingA","Thing","type","NAVIGATE","task","action1","action2","good","thing","action3","something","ScreenA","Baz","action0","toBe","state1","ScreenB","ScreenC","Empty","A","B","C","id","Boo","Quo","Qux","Boo2","key","bazId","getPathAndParamsForState","uri","malformedUri","s","out","code","paths","describe","StackRouter","SwitchRouter","AScreen","DocsNavigator","Docs","D","performRouteNameAsPathDisabledTest","BScreen","NestedNavigator","disableRouteNamePaths","TabRouter"],"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 SwitchRouter from '../SwitchRouter';\nimport StackRouter from '../StackRouter';\nimport TabRouter from '../TabRouter';\nimport * as NavigationActions from '../../NavigationActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst performRouterTest = createTestRouter => {\n const ListScreen = () => <div />;\n\n const ProfileNavigator = () => <div />;\n ProfileNavigator.router = StackRouter({\n list: {\n path: 'list/:id',\n screen: ListScreen,\n },\n });\n\n const MainNavigator = () => <div />;\n MainNavigator.router = StackRouter({\n profile: {\n path: 'p/:id',\n screen: ProfileNavigator,\n },\n });\n\n const LoginScreen = () => <div />;\n\n const AuthNavigator = () => <div />;\n AuthNavigator.router = StackRouter({\n login: {\n screen: LoginScreen,\n },\n });\n\n const BarScreen = () => <div />;\n\n class 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\n const PersonScreen = () => <div />;\n\n const testRouter = createTestRouter({\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\n it('Handles empty URIs with empty action', () => {\n const router = createTestRouter(\n {\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n },\n },\n { initialRouteName: 'Bar', initialRouteParams: { foo: 42 } }\n );\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual(null);\n const state = router.getStateForAction(action || NavigationActions.init());\n expect(state.routes[state.index]).toEqual(\n expect.objectContaining({\n routeName: 'Bar',\n params: { foo: 42 },\n })\n );\n });\n\n it('Handles paths with several params', () => {\n const router = createTestRouter({\n Person: {\n path: 'people/:person',\n screen: () => <div />,\n },\n Task: {\n path: 'people/:person/tasks/:task',\n screen: () => <div />,\n },\n ThingA: {\n path: 'things/:good',\n screen: () => <div />,\n },\n Thing: {\n path: 'things/:good/:thing',\n screen: () => <div />,\n },\n });\n const action = router.getActionForPathAndParams(\n 'people/brent/tasks/everything'\n );\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Task',\n params: { person: 'brent', task: 'everything' },\n });\n\n const action1 = router.getActionForPathAndParams('people/lucy');\n expect(action1).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Person',\n params: { person: 'lucy' },\n });\n\n const action2 = router.getActionForPathAndParams('things/foo/bar');\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Thing',\n params: { good: 'foo', thing: 'bar' },\n });\n\n const action3 = router.getActionForPathAndParams('things/foo');\n expect(action3).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'ThingA',\n params: { good: 'foo' },\n });\n });\n\n it('Handles empty path configuration', () => {\n const router = createTestRouter({\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n path: '',\n },\n });\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: {},\n });\n });\n\n it('Handles wildcard path configuration', () => {\n const router = createTestRouter({\n Foo: {\n screen: () => <div />,\n },\n Bar: {\n screen: () => <div />,\n path: ':something',\n },\n });\n const action = router.getActionForPathAndParams('');\n expect(action).toEqual(null);\n\n const action1 = router.getActionForPathAndParams('Foo');\n expect(action1).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n params: {},\n });\n const action2 = router.getActionForPathAndParams('asdf');\n expect(action2).toEqual({\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n params: { something: 'asdf' },\n });\n });\n\n it('Null path behavior', () => {\n const ScreenA = () => <div />;\n const router = createTestRouter({\n Bar: {\n screen: ScreenA,\n },\n Foo: {\n path: null,\n screen: ScreenA,\n },\n Baz: {\n path: '',\n screen: ScreenA,\n },\n });\n const action0 = router.getActionForPathAndParams('test/random', {});\n expect(action0).toBe(null);\n\n const action1 = router.getActionForPathAndParams('', {});\n expect(action1.routeName).toBe('Baz');\n const state1 = router.getStateForAction(action1);\n expect(state1.routes[state1.index].routeName).toBe('Baz');\n });\n\n it('Multiple null path sub routers path behavior', () => {\n const ScreenA = () => <div />;\n const ScreenB = () => <div />;\n ScreenB.router = createTestRouter({\n Foo: ScreenA,\n });\n const ScreenC = () => <div />;\n ScreenC.router = createTestRouter({\n Bar: {\n path: 'bar/:id',\n screen: ScreenA,\n },\n Empty: {\n path: '',\n screen: ScreenA,\n },\n });\n const router = createTestRouter({\n A: {\n screen: ScreenA,\n },\n B: {\n path: null,\n screen: ScreenB,\n },\n C: {\n path: null,\n screen: ScreenC,\n },\n });\n const action0 = router.getActionForPathAndParams('Foo', {});\n expect(action0.routeName).toBe('B');\n expect(action0.action.routeName).toBe('Foo');\n\n const action1 = router.getActionForPathAndParams('', {});\n expect(action1.routeName).toBe('C');\n expect(action1.action.routeName).toBe('Empty');\n\n const action2 = router.getActionForPathAndParams('A', {});\n expect(action2.routeName).toBe('A');\n\n const action3 = router.getActionForPathAndParams('bar/asdf', {});\n expect(action3.routeName).toBe('C');\n expect(action3.action.routeName).toBe('Bar');\n expect(action3.action.params.id).toBe('asdf');\n });\n\n it('Null and empty string path sub routers behavior', () => {\n const ScreenA = () => <div />;\n const ScreenB = () => <div />;\n ScreenB.router = createTestRouter({\n Foo: ScreenA,\n Baz: {\n screen: ScreenA,\n path: '',\n },\n });\n const ScreenC = () => <div />;\n ScreenC.router = createTestRouter({\n Boo: ScreenA,\n Bar: ScreenA,\n Baz: {\n screen: ScreenA,\n path: '',\n },\n });\n const router = createTestRouter({\n B: {\n path: null,\n screen: ScreenB,\n },\n C: {\n path: '',\n screen: ScreenC,\n },\n });\n const action0 = router.getActionForPathAndParams('', {});\n expect(action0.routeName).toBe('C');\n expect(action0.action.routeName).toBe('Baz');\n\n const action1 = router.getActionForPathAndParams('Foo', {});\n expect(action1.routeName).toBe('B');\n expect(action1.action.routeName).toBe('Foo');\n\n const action2 = router.getActionForPathAndParams('Bar', {});\n expect(action2.routeName).toBe('C');\n expect(action2.action.routeName).toBe('Bar');\n\n const action3 = router.getActionForPathAndParams('unknown', {});\n expect(action3).toBe(null);\n });\n\n it('Empty path acts as wildcard for nested router', () => {\n const ScreenA = () => <div />;\n const Foo = () => <div />;\n const ScreenC = () => <div />;\n ScreenC.router = createTestRouter({\n Boo: ScreenA,\n Bar: ScreenA,\n });\n Foo.router = createTestRouter({\n Quo: ScreenA,\n Qux: {\n screen: ScreenC,\n path: '',\n },\n });\n const router = createTestRouter({\n Bar: {\n screen: ScreenA,\n },\n Foo,\n });\n const action0 = router.getActionForPathAndParams('Foo/Bar', {});\n expect(action0.routeName).toBe('Foo');\n expect(action0.action.routeName).toBe('Qux');\n expect(action0.action.action.routeName).toBe('Bar');\n });\n\n it('Gets deep path with pure wildcard match', () => {\n const ScreenA = () => <div />;\n const ScreenB = () => <div />;\n const ScreenC = () => <div />;\n ScreenA.router = createTestRouter({\n Boo: { path: 'boo', screen: ScreenC },\n Baz: { path: 'baz/:bazId', screen: ScreenB },\n });\n ScreenC.router = createTestRouter({\n Boo2: { path: '', screen: ScreenB },\n });\n const router = createTestRouter({\n Foo: {\n path: null,\n screen: ScreenA,\n },\n Bar: {\n screen: ScreenB,\n },\n });\n\n {\n const state = {\n index: 0,\n routes: [\n {\n index: 1,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n {\n index: 0,\n key: 'Boo',\n routeName: 'Boo',\n routes: [{ key: 'Boo2', routeName: 'Boo2' }],\n },\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('baz/321');\n expect(params.id).toEqual('123');\n }\n\n {\n const state = {\n index: 0,\n routes: [\n {\n index: 0,\n key: 'Foo',\n routeName: 'Foo',\n params: {\n id: '123',\n },\n routes: [\n {\n index: 0,\n key: 'Boo',\n routeName: 'Boo',\n routes: [{ key: 'Boo2', routeName: 'Boo2' }],\n },\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('boo');\n expect(params).toEqual({ id: '123' });\n }\n });\n\n it('URI encoded string get passed to deep link', () => {\n const uri = 'people/2018%2F02%2F07';\n const action = testRouter.getActionForPathAndParams(uri);\n expect(action).toEqual({\n routeName: 'person',\n params: {\n id: '2018/02/07',\n },\n type: NavigationActions.NAVIGATE,\n });\n\n const malformedUri = 'people/%E0%A4%A';\n const action2 = testRouter.getActionForPathAndParams(malformedUri);\n expect(action2).toEqual({\n routeName: 'person',\n params: {\n id: '%E0%A4%A',\n },\n type: NavigationActions.NAVIGATE,\n });\n });\n\n it('URI encoded path param gets parsed and correctly printed', () => {\n const action = testRouter.getActionForPathAndParams('people/Henry%20L');\n expect(action).toEqual({\n routeName: 'person',\n params: {\n id: 'Henry L',\n },\n type: NavigationActions.NAVIGATE,\n });\n const s = testRouter.getStateForAction(action);\n const out = testRouter.getPathAndParamsForState(s);\n expect(out.path).toEqual('people/Henry%20L');\n expect(out.params).toEqual({});\n });\n\n it('Querystring params get passed to nested deep link', () => {\n const action = testRouter.getActionForPathAndParams(\n 'main/p/4/list/10259959195',\n { code: 'test', foo: 'bar' }\n );\n expect(action).toEqual({\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 const action2 = testRouter.getActionForPathAndParams(\n 'main/p/4/list/10259959195',\n { code: '', foo: 'bar' }\n );\n expect(action2).toEqual({\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\n it('paths option on router overrides path from route config', () => {\n const router = createTestRouter(\n {\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: null,\n screen: FooNavigator,\n },\n },\n { paths: { baz: 'overridden' } }\n );\n const action = router.getActionForPathAndParams('overridden', {});\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('baz');\n });\n\n it('paths option set as null on router overrides path from route config', () => {\n const router = createTestRouter(\n {\n main: {\n screen: MainNavigator,\n },\n baz: {\n path: 'bazPath',\n screen: FooNavigator,\n },\n },\n { paths: { baz: null } }\n );\n const action = router.getActionForPathAndParams('b/noBaz', {});\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('baz');\n });\n};\n\ndescribe('Path handling for stack router', () => {\n performRouterTest(StackRouter);\n});\ndescribe('Path handling for switch router', () => {\n performRouterTest(SwitchRouter);\n});\n\nit('Handles nested switch routers', () => {\n const AScreen = () => <div />;\n const DocsNavigator = () => <div />;\n DocsNavigator.router = SwitchRouter({\n A: AScreen,\n B: AScreen,\n C: AScreen,\n });\n DocsNavigator.path = 'docs';\n const router = SwitchRouter({\n Docs: DocsNavigator,\n D: AScreen,\n });\n const action = router.getActionForPathAndParams('docs/B', {});\n\n expect(action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.routeName).toEqual('Docs');\n expect(action.action.type).toEqual(NavigationActions.NAVIGATE);\n expect(action.action.routeName).toEqual('B');\n});\n\nconst performRouteNameAsPathDisabledTest = createTestRouter => {\n const BScreen = () => <div />;\n const NestedNavigator = () => <div />;\n NestedNavigator.router = createTestRouter({\n B: {\n screen: BScreen,\n path: 'baz',\n },\n });\n const router = createTestRouter(\n {\n A: NestedNavigator,\n },\n { disableRouteNamePaths: true }\n );\n\n it('disableRouteNamePaths option on router prevent the default path to be the routeName', () => {\n const action = router.getActionForPathAndParams('baz', {});\n\n expect(action.routeName).toBe('A');\n expect(action.action.routeName).toBe('B');\n });\n};\n\ndescribe('Stack router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(StackRouter);\n});\n\ndescribe('Switch router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(SwitchRouter);\n});\n\ndescribe('Tab router handles disableRouteNamePaths', () => {\n performRouteNameAsPathDisabledTest(TabRouter);\n});\n"]}
@@ -1,2 +1,2 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var _TabRouter=_interopRequireDefault(require("../TabRouter"));var _SwitchRouter=_interopRequireDefault(require("../SwitchRouter"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var StackActions=_interopRequireWildcard(require("../StackActions"));var _KeyGenerator=require("../KeyGenerator.ts");var _jsxFileName="/Users/brentvatne/coding/react-navigation-core/src/routers/__tests__/Routers-test.js";beforeEach(function(){(0,_KeyGenerator._TESTING_ONLY_normalize_keys)();});var ROUTERS={TabRouter:_TabRouter.default,StackRouter:_StackRouter.default,SwitchRouter:_SwitchRouter.default};var dummyEventSubscriber=function dummyEventSubscriber(){return{remove:function remove(){}};};Object.keys(ROUTERS).forEach(function(routerName){var Router=ROUTERS[routerName];describe("General router features - "+routerName,function(){it("title is configurable using navigationOptions and getScreenOptions - "+routerName,function(){var FooView=function(_React$Component){(0,_inherits2.default)(FooView,_React$Component);function FooView(){(0,_classCallCheck2.default)(this,FooView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooView).apply(this,arguments));}(0,_createClass2.default)(FooView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});}}]);return FooView;}(_react.default.Component);var BarView=function(_React$Component2){(0,_inherits2.default)(BarView,_React$Component2);function BarView(){(0,_classCallCheck2.default)(this,BarView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BarView).apply(this,arguments));}(0,_createClass2.default)(BarView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:39}});}}]);return BarView;}(_react.default.Component);BarView.navigationOptions={title:'BarTitle'};var BazView=function(_React$Component3){(0,_inherits2.default)(BazView,_React$Component3);function BazView(){(0,_classCallCheck2.default)(this,BazView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BazView).apply(this,arguments));}(0,_createClass2.default)(BazView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:45}});}}]);return BazView;}(_react.default.Component);BazView.navigationOptions=function(_ref){var navigation=_ref.navigation;return{title:"Baz-"+navigation.state.params.id};};var router=Router({Foo:{screen:FooView},Bar:{screen:BarView},Baz:{screen:BazView}});var routes=[{key:'A',routeName:'Foo'},{key:'B',routeName:'Bar'},{key:'A',routeName:'Baz',params:{id:'123'}}];expect(router.getScreenOptions({state:routes[0],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual(undefined);expect(router.getScreenOptions({state:routes[1],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual('BarTitle');expect(router.getScreenOptions({state:routes[2],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual('Baz-123');});it("set params works in "+routerName,function(){var FooView=function(_React$Component4){(0,_inherits2.default)(FooView,_React$Component4);function FooView(){(0,_classCallCheck2.default)(this,FooView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooView).apply(this,arguments));}(0,_createClass2.default)(FooView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:96}});}}]);return FooView;}(_react.default.Component);var router=Router({Foo:{screen:FooView},Bar:{screen:FooView}});var initState=router.getStateForAction(NavigationActions.init());var initRoute=initState.routes[initState.index];expect(initRoute.params).toEqual(undefined);var state0=router.getStateForAction(NavigationActions.setParams({params:{foo:42},key:initRoute.key}),initState);expect(state0.routes[state0.index].params.foo).toEqual(42);});});});it('Nested navigate behavior test',function(){var Leaf=function Leaf(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:121}});};var First=function First(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:123}});};First.router=(0,_StackRouter.default)({First1:Leaf,First2:Leaf});var Second=function Second(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:129}});};Second.router=(0,_StackRouter.default)({Second1:Leaf,Second2:Leaf});var Main=function Main(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:135}});};Main.router=(0,_StackRouter.default)({First:First,Second:Second});var TestRouter=(0,_SwitchRouter.default)({Login:Leaf,Main:Main});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First'},state1);expect(state2.index).toEqual(1);expect(state2.routes[1].index).toEqual(0);expect(state2.routes[1].routes[0].index).toEqual(0);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Second2'},state2);expect(state3.index).toEqual(1);expect(state3.routes[1].index).toEqual(1);expect(state3.routes[1].routes[1].index).toEqual(1);var state4=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First',action:{type:NavigationActions.NAVIGATE,routeName:'First2'}},state3,true);expect(state4.index).toEqual(1);expect(state4.routes[1].index).toEqual(0);expect(state4.routes[1].routes[0].index).toEqual(1);var state5=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First',action:{type:NavigationActions.NAVIGATE,routeName:'First1'}},state3);expect(state5.index).toEqual(1);expect(state5.routes[1].index).toEqual(0);expect(state5.routes[1].routes[0].index).toEqual(0);});it('Handles no-op actions with tabs within stack router',function(){var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:190}});};var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:191}});};FooTabNavigator.router=(0,_TabRouter.default)({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:FooTabNavigator},Bar:{screen:BarView}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Qux'});expect(state1.routes[0].key).toEqual('id-0');expect(state2.routes[0].key).toEqual('id-1');state1.routes[0].key=state2.routes[0].key;expect(state1).toEqual(state2);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state2);expect(state2).toEqual(state3);});it('Handles deep action',function(){var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:221}});};var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:222}});};FooTabNavigator.router=(0,_TabRouter.default)({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=(0,_StackRouter.default)({Bar:{screen:BarView},Foo:{screen:FooTabNavigator}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Bar'}]};expect(state1).toEqual(expectedState);var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true,action:{type:NavigationActions.NAVIGATE,routeName:'Zoo'}},state1);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].index).toEqual(1);});it('Handles the navigate action with params',function(){var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:258}});};FooTabNavigator.router=(0,_TabRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:260}});}},Boo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:261}});}}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:265}});}},Bar:{screen:FooTabNavigator}});var state=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Bar',params:{foo:'42'}},state);expect(state2&&state2.routes[1].params).toEqual({foo:'42'});expect(state2&&state2.routes[1].routes).toEqual([{key:'Baz',routeName:'Baz',params:{foo:'42'}},{key:'Boo',routeName:'Boo',params:{foo:'42'}}]);});it('Handles the setParams action',function(){var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:294}});};FooTabNavigator.router=(0,_TabRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:296}});}}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:FooTabNavigator},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:300}});}}});var state=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'foobar'},key:'Baz'},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routes).toEqual([{key:'Baz',routeName:'Baz',params:{name:'foobar'}}]);});it('Supports lazily-evaluated getScreen',function(){var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:322}});};var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:323}});};FooTabNavigator.router=(0,_TabRouter.default)({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:FooTabNavigator},Bar:{getScreen:function getScreen(){return BarView;}}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Qux'});expect(state1.routes[0].key).toEqual('id-0');expect(state2.routes[0].key).toEqual('id-1');state1.routes[0].key=state2.routes[0].key;expect(state1).toEqual(state2);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Zap'},state2);expect(state2).toEqual(state3);});it('Does not switch tab index when TabRouter child handles COMPLETE_NAVIGATION or SET_PARAMS',function(){var FooStackNavigator=function FooStackNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:358}});};var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:359}});};FooStackNavigator.router=(0,_StackRouter.default)({Foo:{screen:BarView},Bar:{screen:BarView}});var TestRouter=(0,_TabRouter.default)({Zap:{screen:FooStackNavigator},Zoo:{screen:FooStackNavigator}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state1);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zoo'},state2);var stateAfterCompleteTransition=TestRouter.getStateForAction({type:StackActions.COMPLETE_TRANSITION,preserveFocus:true,key:state2.routes[0].key},state3);var stateAfterSetParams=TestRouter.getStateForAction({type:NavigationActions.SET_PARAMS,preserveFocus:true,key:state1.routes[0].routes[0].key,params:{key:'value'}},state3);expect(stateAfterCompleteTransition.index).toEqual(1);expect(stateAfterSetParams.index).toEqual(1);});it('Inner actions are only unpacked if the current tab matches',function(){var PlainScreen=function PlainScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:417}});};var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:418}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:419}});};ScreenB.router=(0,_StackRouter.default)({Baz:{screen:PlainScreen},Zoo:{screen:PlainScreen}});ScreenA.router=(0,_StackRouter.default)({Bar:{screen:PlainScreen},Boo:{screen:ScreenB}});var TestRouter=(0,_TabRouter.default)({Foo:{screen:ScreenA}});var screenApreState={index:0,key:'Init',isTransitioning:false,routeName:'Foo',routes:[{key:'Init',routeName:'Bar'}]};var preState={index:0,isTransitioning:false,routes:[screenApreState]};var comparable=function comparable(state){var result={};if(typeof state.routeName==='string'){result=(0,_objectSpread2.default)({},result,{routeName:state.routeName});}if(state.routes instanceof Array){result=(0,_objectSpread2.default)({},result,{routes:state.routes.map(comparable)});}return result;};var action=NavigationActions.navigate({routeName:'Boo',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState=ScreenA.router.getStateForAction(action,screenApreState);var state=TestRouter.getStateForAction(action,preState);var innerState=state?state.routes[0]:state;expect(expectedState&&comparable(expectedState)).toEqual(innerState&&comparable(innerState));});
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");var _objectSpread2=_interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _react=_interopRequireDefault(require("react"));var _StackRouter=_interopRequireDefault(require("../StackRouter"));var _TabRouter=_interopRequireDefault(require("../TabRouter"));var _SwitchRouter=_interopRequireDefault(require("../SwitchRouter"));var NavigationActions=_interopRequireWildcard(require("../../NavigationActions"));var StackActions=_interopRequireWildcard(require("../StackActions"));var _KeyGenerator=require("../KeyGenerator.ts");var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-core/src/routers/__tests__/Routers-test.js";beforeEach(function(){(0,_KeyGenerator._TESTING_ONLY_normalize_keys)();});var ROUTERS={TabRouter:_TabRouter.default,StackRouter:_StackRouter.default,SwitchRouter:_SwitchRouter.default};var dummyEventSubscriber=function dummyEventSubscriber(){return{remove:function remove(){}};};Object.keys(ROUTERS).forEach(function(routerName){var Router=ROUTERS[routerName];describe("General router features - "+routerName,function(){it("title is configurable using navigationOptions and getScreenOptions - "+routerName,function(){var FooView=function(_React$Component){(0,_inherits2.default)(FooView,_React$Component);function FooView(){(0,_classCallCheck2.default)(this,FooView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooView).apply(this,arguments));}(0,_createClass2.default)(FooView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:34}});}}]);return FooView;}(_react.default.Component);var BarView=function(_React$Component2){(0,_inherits2.default)(BarView,_React$Component2);function BarView(){(0,_classCallCheck2.default)(this,BarView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BarView).apply(this,arguments));}(0,_createClass2.default)(BarView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:39}});}}]);return BarView;}(_react.default.Component);BarView.navigationOptions={title:'BarTitle'};var BazView=function(_React$Component3){(0,_inherits2.default)(BazView,_React$Component3);function BazView(){(0,_classCallCheck2.default)(this,BazView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(BazView).apply(this,arguments));}(0,_createClass2.default)(BazView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:45}});}}]);return BazView;}(_react.default.Component);BazView.navigationOptions=function(_ref){var navigation=_ref.navigation;return{title:"Baz-"+navigation.state.params.id};};var router=Router({Foo:{screen:FooView},Bar:{screen:BarView},Baz:{screen:BazView}});var routes=[{key:'A',routeName:'Foo'},{key:'B',routeName:'Bar'},{key:'A',routeName:'Baz',params:{id:'123'}}];expect(router.getScreenOptions({state:routes[0],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual(undefined);expect(router.getScreenOptions({state:routes[1],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual('BarTitle');expect(router.getScreenOptions({state:routes[2],dispatch:function dispatch(){return false;},addListener:dummyEventSubscriber},{}).title).toEqual('Baz-123');});it("set params works in "+routerName,function(){var FooView=function(_React$Component4){(0,_inherits2.default)(FooView,_React$Component4);function FooView(){(0,_classCallCheck2.default)(this,FooView);return(0,_possibleConstructorReturn2.default)(this,(0,_getPrototypeOf2.default)(FooView).apply(this,arguments));}(0,_createClass2.default)(FooView,[{key:"render",value:function render(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:96}});}}]);return FooView;}(_react.default.Component);var router=Router({Foo:{screen:FooView},Bar:{screen:FooView}});var initState=router.getStateForAction(NavigationActions.init());var initRoute=initState.routes[initState.index];expect(initRoute.params).toEqual(undefined);var state0=router.getStateForAction(NavigationActions.setParams({params:{foo:42},key:initRoute.key}),initState);expect(state0.routes[state0.index].params.foo).toEqual(42);});});});it('Nested navigate behavior test',function(){var Leaf=function Leaf(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:121}});};var First=function First(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:123}});};First.router=(0,_StackRouter.default)({First1:Leaf,First2:Leaf});var Second=function Second(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:129}});};Second.router=(0,_StackRouter.default)({Second1:Leaf,Second2:Leaf});var Main=function Main(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:135}});};Main.router=(0,_StackRouter.default)({First:First,Second:Second});var TestRouter=(0,_SwitchRouter.default)({Login:Leaf,Main:Main});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First'},state1);expect(state2.index).toEqual(1);expect(state2.routes[1].index).toEqual(0);expect(state2.routes[1].routes[0].index).toEqual(0);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Second2'},state2);expect(state3.index).toEqual(1);expect(state3.routes[1].index).toEqual(1);expect(state3.routes[1].routes[1].index).toEqual(1);var state4=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First',action:{type:NavigationActions.NAVIGATE,routeName:'First2'}},state3,true);expect(state4.index).toEqual(1);expect(state4.routes[1].index).toEqual(0);expect(state4.routes[1].routes[0].index).toEqual(1);var state5=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'First',action:{type:NavigationActions.NAVIGATE,routeName:'First1'}},state3);expect(state5.index).toEqual(1);expect(state5.routes[1].index).toEqual(0);expect(state5.routes[1].routes[0].index).toEqual(0);});it('Handles no-op actions with tabs within stack router',function(){var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:190}});};var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:191}});};FooTabNavigator.router=(0,_TabRouter.default)({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:FooTabNavigator},Bar:{screen:BarView}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Qux'});expect(state1.routes[0].key).toEqual('id-0');expect(state2.routes[0].key).toEqual('id-1');state1.routes[0].key=state2.routes[0].key;expect(state1).toEqual(state2);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zap'},state2);expect(state2).toEqual(state3);});it('Handles deep action',function(){var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:221}});};var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:222}});};FooTabNavigator.router=(0,_TabRouter.default)({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=(0,_StackRouter.default)({Bar:{screen:BarView},Foo:{screen:FooTabNavigator}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var expectedState={index:0,isTransitioning:false,key:'StackRouterRoot',routes:[{key:'id-0',routeName:'Bar'}]};expect(state1).toEqual(expectedState);var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Foo',immediate:true,action:{type:NavigationActions.NAVIGATE,routeName:'Zoo'}},state1);expect(state2&&state2.index).toEqual(1);expect(state2&&state2.routes[1].index).toEqual(1);});it('Handles the navigate action with params',function(){var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:258}});};FooTabNavigator.router=(0,_TabRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:260}});}},Boo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:261}});}}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:265}});}},Bar:{screen:FooTabNavigator}});var state=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Bar',params:{foo:'42'}},state);expect(state2&&state2.routes[1].params).toEqual({foo:'42'});expect(state2&&state2.routes[1].routes).toEqual([{key:'Baz',routeName:'Baz',params:{foo:'42'}},{key:'Boo',routeName:'Boo',params:{foo:'42'}}]);});it('Handles the setParams action',function(){var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:294}});};FooTabNavigator.router=(0,_TabRouter.default)({Baz:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:296}});}}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:FooTabNavigator},Bar:{screen:function screen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:300}});}}});var state=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.SET_PARAMS,params:{name:'foobar'},key:'Baz'},state);expect(state2&&state2.index).toEqual(0);expect(state2&&state2.routes[0].routes).toEqual([{key:'Baz',routeName:'Baz',params:{name:'foobar'}}]);});it('Supports lazily-evaluated getScreen',function(){var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:322}});};var FooTabNavigator=function FooTabNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:323}});};FooTabNavigator.router=(0,_TabRouter.default)({Zap:{screen:BarView},Zoo:{screen:BarView}});var TestRouter=(0,_StackRouter.default)({Foo:{screen:FooTabNavigator},Bar:{getScreen:function getScreen(){return BarView;}}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Qux'});expect(state1.routes[0].key).toEqual('id-0');expect(state2.routes[0].key).toEqual('id-1');state1.routes[0].key=state2.routes[0].key;expect(state1).toEqual(state2);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,immediate:true,routeName:'Zap'},state2);expect(state2).toEqual(state3);});it('Does not switch tab index when TabRouter child handles COMPLETE_NAVIGATION or SET_PARAMS',function(){var FooStackNavigator=function FooStackNavigator(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:358}});};var BarView=function BarView(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:359}});};FooStackNavigator.router=(0,_StackRouter.default)({Foo:{screen:BarView},Bar:{screen:BarView}});var TestRouter=(0,_TabRouter.default)({Zap:{screen:FooStackNavigator},Zoo:{screen:FooStackNavigator}});var state1=TestRouter.getStateForAction({type:NavigationActions.INIT});var state2=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Bar'},state1);var state3=TestRouter.getStateForAction({type:NavigationActions.NAVIGATE,routeName:'Zoo'},state2);var stateAfterCompleteTransition=TestRouter.getStateForAction({type:StackActions.COMPLETE_TRANSITION,preserveFocus:true,key:state2.routes[0].key},state3);var stateAfterSetParams=TestRouter.getStateForAction({type:NavigationActions.SET_PARAMS,preserveFocus:true,key:state1.routes[0].routes[0].key,params:{key:'value'}},state3);expect(stateAfterCompleteTransition.index).toEqual(1);expect(stateAfterSetParams.index).toEqual(1);});it('Inner actions are only unpacked if the current tab matches',function(){var PlainScreen=function PlainScreen(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:417}});};var ScreenA=function ScreenA(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:418}});};var ScreenB=function ScreenB(){return _react.default.createElement("div",{__source:{fileName:_jsxFileName,lineNumber:419}});};ScreenB.router=(0,_StackRouter.default)({Baz:{screen:PlainScreen},Zoo:{screen:PlainScreen}});ScreenA.router=(0,_StackRouter.default)({Bar:{screen:PlainScreen},Boo:{screen:ScreenB}});var TestRouter=(0,_TabRouter.default)({Foo:{screen:ScreenA}});var screenApreState={index:0,key:'Init',isTransitioning:false,routeName:'Foo',routes:[{key:'Init',routeName:'Bar'}]};var preState={index:0,isTransitioning:false,routes:[screenApreState]};var comparable=function comparable(state){var result={};if(typeof state.routeName==='string'){result=(0,_objectSpread2.default)({},result,{routeName:state.routeName});}if(state.routes instanceof Array){result=(0,_objectSpread2.default)({},result,{routes:state.routes.map(comparable)});}return result;};var action=NavigationActions.navigate({routeName:'Boo',action:NavigationActions.navigate({routeName:'Zoo'})});var expectedState=ScreenA.router.getStateForAction(action,screenApreState);var state=TestRouter.getStateForAction(action,preState);var innerState=state?state.routes[0]:state;expect(expectedState&&comparable(expectedState)).toEqual(innerState&&comparable(innerState));});
2
2
  //# sourceMappingURL=Routers-test.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["Routers-test.js"],"names":["beforeEach","ROUTERS","TabRouter","StackRouter","SwitchRouter","dummyEventSubscriber","remove","Object","keys","forEach","routerName","Router","describe","it","FooView","React","Component","BarView","navigationOptions","title","BazView","navigation","state","params","id","router","Foo","screen","Bar","Baz","routes","key","routeName","expect","getScreenOptions","dispatch","addListener","toEqual","undefined","initState","getStateForAction","NavigationActions","init","initRoute","index","state0","setParams","foo","Leaf","First","First1","First2","Second","Second1","Second2","Main","TestRouter","Login","state1","type","INIT","state2","NAVIGATE","state3","state4","action","state5","FooTabNavigator","Zap","Zoo","expectedState","isTransitioning","immediate","Boo","SET_PARAMS","name","getScreen","FooStackNavigator","stateAfterCompleteTransition","StackActions","COMPLETE_TRANSITION","preserveFocus","stateAfterSetParams","PlainScreen","ScreenA","ScreenB","screenApreState","preState","comparable","result","Array","map","navigate","innerState"],"mappings":"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","sourcesContent":["/* eslint react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport StackRouter from '../StackRouter';\nimport TabRouter from '../TabRouter';\nimport SwitchRouter from '../SwitchRouter';\n\nimport * as NavigationActions from '../../NavigationActions';\nimport * as StackActions from '../StackActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst ROUTERS = {\n TabRouter,\n StackRouter,\n SwitchRouter,\n};\n\nconst dummyEventSubscriber = () => ({\n remove: () => {},\n});\n\nObject.keys(ROUTERS).forEach(routerName => {\n const Router = ROUTERS[routerName];\n\n describe(`General router features - ${routerName}`, () => {\n it(`title is configurable using navigationOptions and getScreenOptions - ${routerName}`, () => {\n class FooView extends React.Component {\n render() {\n return <div />;\n }\n }\n class BarView extends React.Component {\n render() {\n return <div />;\n }\n static navigationOptions = { title: 'BarTitle' };\n }\n class BazView extends React.Component {\n render() {\n return <div />;\n }\n static navigationOptions = ({ navigation }) => ({\n title: `Baz-${navigation.state.params.id}`,\n });\n }\n const router = Router({\n Foo: { screen: FooView },\n Bar: { screen: BarView },\n Baz: { screen: BazView },\n });\n const routes = [\n { key: 'A', routeName: 'Foo' },\n { key: 'B', routeName: 'Bar' },\n { key: 'A', routeName: 'Baz', params: { id: '123' } },\n ];\n expect(\n router.getScreenOptions(\n {\n state: routes[0],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual(undefined);\n expect(\n router.getScreenOptions(\n {\n state: routes[1],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual('BarTitle');\n expect(\n router.getScreenOptions(\n {\n state: routes[2],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual('Baz-123');\n });\n\n it(`set params works in ${routerName}`, () => {\n class FooView extends React.Component {\n render() {\n return <div />;\n }\n }\n const router = Router({\n Foo: { screen: FooView },\n Bar: { screen: FooView },\n });\n\n const initState = router.getStateForAction(NavigationActions.init());\n const initRoute = initState.routes[initState.index];\n expect(initRoute.params).toEqual(undefined);\n\n const state0 = router.getStateForAction(\n NavigationActions.setParams({\n params: { foo: 42 },\n key: initRoute.key,\n }),\n initState\n );\n expect(state0.routes[state0.index].params.foo).toEqual(42);\n });\n });\n});\n\nit('Nested navigate behavior test', () => {\n const Leaf = () => <div />;\n\n const First = () => <div />;\n First.router = StackRouter({\n First1: Leaf,\n First2: Leaf,\n });\n\n const Second = () => <div />;\n Second.router = StackRouter({\n Second1: Leaf,\n Second2: Leaf,\n });\n\n const Main = () => <div />;\n Main.router = StackRouter({\n First,\n Second,\n });\n const TestRouter = SwitchRouter({\n Login: Leaf,\n Main,\n });\n\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n\n const state2 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'First' },\n state1\n );\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].index).toEqual(0);\n expect(state2.routes[1].routes[0].index).toEqual(0);\n\n const state3 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Second2' },\n state2\n );\n expect(state3.index).toEqual(1);\n expect(state3.routes[1].index).toEqual(1); // second\n expect(state3.routes[1].routes[1].index).toEqual(1); //second.second2\n\n const state4 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'First',\n action: { type: NavigationActions.NAVIGATE, routeName: 'First2' },\n },\n state3,\n true\n );\n expect(state4.index).toEqual(1); // main\n expect(state4.routes[1].index).toEqual(0); // first\n expect(state4.routes[1].routes[0].index).toEqual(1); // first2\n\n const state5 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'First',\n action: { type: NavigationActions.NAVIGATE, routeName: 'First1' },\n },\n state3 // second.second2 is active on state3\n );\n expect(state5.index).toEqual(1); // main\n expect(state5.routes[1].index).toEqual(0); // first\n expect(state5.routes[1].routes[0].index).toEqual(0); // first.first1\n});\n\nit('Handles no-op actions with tabs within stack router', () => {\n const BarView = () => <div />;\n const FooTabNavigator = () => <div />;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Foo: {\n screen: FooTabNavigator,\n },\n Bar: {\n screen: BarView,\n },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Qux',\n });\n expect(state1.routes[0].key).toEqual('id-0');\n expect(state2.routes[0].key).toEqual('id-1');\n state1.routes[0].key = state2.routes[0].key;\n expect(state1).toEqual(state2);\n const state3 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state2\n );\n expect(state2).toEqual(state3);\n});\n\nit('Handles deep action', () => {\n const BarView = () => <div />;\n const FooTabNavigator = () => <div />;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Bar: { screen: BarView },\n Foo: { screen: FooTabNavigator },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Bar',\n },\n ],\n };\n expect(state1).toEqual(expectedState);\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n action: { type: NavigationActions.NAVIGATE, routeName: 'Zoo' },\n },\n state1\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].index).toEqual(1);\n});\n\nit('Handles the navigate action with params', () => {\n const FooTabNavigator = () => <div />;\n FooTabNavigator.router = TabRouter({\n Baz: { screen: () => <div /> },\n Boo: { screen: () => <div /> },\n });\n\n const TestRouter = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: FooTabNavigator },\n });\n const state = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.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 {\n key: 'Baz',\n routeName: 'Baz',\n params: { foo: '42' },\n },\n {\n key: 'Boo',\n routeName: 'Boo',\n params: { foo: '42' },\n },\n ]);\n});\n\nit('Handles the setParams action', () => {\n const FooTabNavigator = () => <div />;\n FooTabNavigator.router = TabRouter({\n Baz: { screen: () => <div /> },\n });\n const TestRouter = StackRouter({\n Foo: { screen: FooTabNavigator },\n Bar: { screen: () => <div /> },\n });\n const state = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'foobar' },\n key: 'Baz',\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routes).toEqual([\n {\n key: 'Baz',\n routeName: 'Baz',\n params: { name: 'foobar' },\n },\n ]);\n});\n\nit('Supports lazily-evaluated getScreen', () => {\n const BarView = () => <div />;\n const FooTabNavigator = () => <div />;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Foo: {\n screen: FooTabNavigator,\n },\n Bar: {\n getScreen: () => BarView,\n },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Qux',\n });\n expect(state1.routes[0].key).toEqual('id-0');\n expect(state2.routes[0].key).toEqual('id-1');\n state1.routes[0].key = state2.routes[0].key;\n expect(state1).toEqual(state2);\n const state3 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Zap',\n },\n state2\n );\n expect(state2).toEqual(state3);\n});\n\nit('Does not switch tab index when TabRouter child handles COMPLETE_NAVIGATION or SET_PARAMS', () => {\n const FooStackNavigator = () => <div />;\n const BarView = () => <div />;\n FooStackNavigator.router = StackRouter({\n Foo: {\n screen: BarView,\n },\n Bar: {\n screen: BarView,\n },\n });\n\n const TestRouter = TabRouter({\n Zap: { screen: FooStackNavigator },\n Zoo: { screen: FooStackNavigator },\n });\n\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n\n // Navigate to the second screen in the first tab\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state1\n );\n\n // Switch tabs\n const state3 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Zoo',\n },\n state2\n );\n\n const stateAfterCompleteTransition = TestRouter.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n preserveFocus: true,\n key: state2.routes[0].key,\n },\n state3\n );\n const stateAfterSetParams = TestRouter.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n preserveFocus: true,\n key: state1.routes[0].routes[0].key,\n params: { key: 'value' },\n },\n state3\n );\n\n expect(stateAfterCompleteTransition.index).toEqual(1);\n expect(stateAfterSetParams.index).toEqual(1);\n});\n\nit('Inner actions are only unpacked if the current tab matches', () => {\n const PlainScreen = () => <div />;\n const ScreenA = () => <div />;\n const ScreenB = () => <div />;\n ScreenB.router = StackRouter({\n Baz: { screen: PlainScreen },\n Zoo: { screen: PlainScreen },\n });\n ScreenA.router = StackRouter({\n Bar: { screen: PlainScreen },\n Boo: { screen: ScreenB },\n });\n const TestRouter = TabRouter({\n Foo: { screen: ScreenA },\n });\n const screenApreState = {\n index: 0,\n key: 'Init',\n isTransitioning: false,\n routeName: 'Foo',\n routes: [{ key: 'Init', routeName: 'Bar' }],\n };\n const preState = {\n index: 0,\n isTransitioning: false,\n routes: [screenApreState],\n };\n\n const comparable = state => {\n let result = {};\n if (typeof state.routeName === 'string') {\n result = { ...result, routeName: state.routeName };\n }\n if (state.routes instanceof Array) {\n result = {\n ...result,\n routes: state.routes.map(comparable),\n };\n }\n return result;\n };\n\n const action = NavigationActions.navigate({\n routeName: 'Boo',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n\n const expectedState = ScreenA.router.getStateForAction(\n action,\n screenApreState\n );\n const state = TestRouter.getStateForAction(action, preState);\n const innerState = state ? state.routes[0] : state;\n\n expect(expectedState && comparable(expectedState)).toEqual(\n innerState && comparable(innerState)\n );\n});\n"]}
1
+ {"version":3,"sources":["Routers-test.js"],"names":["beforeEach","ROUTERS","TabRouter","StackRouter","SwitchRouter","dummyEventSubscriber","remove","Object","keys","forEach","routerName","Router","describe","it","FooView","React","Component","BarView","navigationOptions","title","BazView","navigation","state","params","id","router","Foo","screen","Bar","Baz","routes","key","routeName","expect","getScreenOptions","dispatch","addListener","toEqual","undefined","initState","getStateForAction","NavigationActions","init","initRoute","index","state0","setParams","foo","Leaf","First","First1","First2","Second","Second1","Second2","Main","TestRouter","Login","state1","type","INIT","state2","NAVIGATE","state3","state4","action","state5","FooTabNavigator","Zap","Zoo","expectedState","isTransitioning","immediate","Boo","SET_PARAMS","name","getScreen","FooStackNavigator","stateAfterCompleteTransition","StackActions","COMPLETE_TRANSITION","preserveFocus","stateAfterSetParams","PlainScreen","ScreenA","ScreenB","screenApreState","preState","comparable","result","Array","map","navigate","innerState"],"mappings":"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","sourcesContent":["/* eslint react/no-multi-comp:0, react/display-name:0 */\n\nimport React from 'react';\n\nimport StackRouter from '../StackRouter';\nimport TabRouter from '../TabRouter';\nimport SwitchRouter from '../SwitchRouter';\n\nimport * as NavigationActions from '../../NavigationActions';\nimport * as StackActions from '../StackActions';\nimport { _TESTING_ONLY_normalize_keys } from '../KeyGenerator.ts';\n\nbeforeEach(() => {\n _TESTING_ONLY_normalize_keys();\n});\n\nconst ROUTERS = {\n TabRouter,\n StackRouter,\n SwitchRouter,\n};\n\nconst dummyEventSubscriber = () => ({\n remove: () => {},\n});\n\nObject.keys(ROUTERS).forEach(routerName => {\n const Router = ROUTERS[routerName];\n\n describe(`General router features - ${routerName}`, () => {\n it(`title is configurable using navigationOptions and getScreenOptions - ${routerName}`, () => {\n class FooView extends React.Component {\n render() {\n return <div />;\n }\n }\n class BarView extends React.Component {\n render() {\n return <div />;\n }\n static navigationOptions = { title: 'BarTitle' };\n }\n class BazView extends React.Component {\n render() {\n return <div />;\n }\n static navigationOptions = ({ navigation }) => ({\n title: `Baz-${navigation.state.params.id}`,\n });\n }\n const router = Router({\n Foo: { screen: FooView },\n Bar: { screen: BarView },\n Baz: { screen: BazView },\n });\n const routes = [\n { key: 'A', routeName: 'Foo' },\n { key: 'B', routeName: 'Bar' },\n { key: 'A', routeName: 'Baz', params: { id: '123' } },\n ];\n expect(\n router.getScreenOptions(\n {\n state: routes[0],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual(undefined);\n expect(\n router.getScreenOptions(\n {\n state: routes[1],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual('BarTitle');\n expect(\n router.getScreenOptions(\n {\n state: routes[2],\n dispatch: () => false,\n addListener: dummyEventSubscriber,\n },\n {}\n ).title\n ).toEqual('Baz-123');\n });\n\n it(`set params works in ${routerName}`, () => {\n class FooView extends React.Component {\n render() {\n return <div />;\n }\n }\n const router = Router({\n Foo: { screen: FooView },\n Bar: { screen: FooView },\n });\n\n const initState = router.getStateForAction(NavigationActions.init());\n const initRoute = initState.routes[initState.index];\n expect(initRoute.params).toEqual(undefined);\n\n const state0 = router.getStateForAction(\n NavigationActions.setParams({\n params: { foo: 42 },\n key: initRoute.key,\n }),\n initState\n );\n expect(state0.routes[state0.index].params.foo).toEqual(42);\n });\n });\n});\n\nit('Nested navigate behavior test', () => {\n const Leaf = () => <div />;\n\n const First = () => <div />;\n First.router = StackRouter({\n First1: Leaf,\n First2: Leaf,\n });\n\n const Second = () => <div />;\n Second.router = StackRouter({\n Second1: Leaf,\n Second2: Leaf,\n });\n\n const Main = () => <div />;\n Main.router = StackRouter({\n First,\n Second,\n });\n const TestRouter = SwitchRouter({\n Login: Leaf,\n Main,\n });\n\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n\n const state2 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'First' },\n state1\n );\n expect(state2.index).toEqual(1);\n expect(state2.routes[1].index).toEqual(0);\n expect(state2.routes[1].routes[0].index).toEqual(0);\n\n const state3 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Second2' },\n state2\n );\n expect(state3.index).toEqual(1);\n expect(state3.routes[1].index).toEqual(1); // second\n expect(state3.routes[1].routes[1].index).toEqual(1); //second.second2\n\n const state4 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'First',\n action: { type: NavigationActions.NAVIGATE, routeName: 'First2' },\n },\n state3,\n true\n );\n expect(state4.index).toEqual(1); // main\n expect(state4.routes[1].index).toEqual(0); // first\n expect(state4.routes[1].routes[0].index).toEqual(1); // first2\n\n const state5 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'First',\n action: { type: NavigationActions.NAVIGATE, routeName: 'First1' },\n },\n state3 // second.second2 is active on state3\n );\n expect(state5.index).toEqual(1); // main\n expect(state5.routes[1].index).toEqual(0); // first\n expect(state5.routes[1].routes[0].index).toEqual(0); // first.first1\n});\n\nit('Handles no-op actions with tabs within stack router', () => {\n const BarView = () => <div />;\n const FooTabNavigator = () => <div />;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Foo: {\n screen: FooTabNavigator,\n },\n Bar: {\n screen: BarView,\n },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n routeName: 'Qux',\n });\n expect(state1.routes[0].key).toEqual('id-0');\n expect(state2.routes[0].key).toEqual('id-1');\n state1.routes[0].key = state2.routes[0].key;\n expect(state1).toEqual(state2);\n const state3 = TestRouter.getStateForAction(\n { type: NavigationActions.NAVIGATE, routeName: 'Zap' },\n state2\n );\n expect(state2).toEqual(state3);\n});\n\nit('Handles deep action', () => {\n const BarView = () => <div />;\n const FooTabNavigator = () => <div />;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Bar: { screen: BarView },\n Foo: { screen: FooTabNavigator },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const expectedState = {\n index: 0,\n isTransitioning: false,\n key: 'StackRouterRoot',\n routes: [\n {\n key: 'id-0',\n routeName: 'Bar',\n },\n ],\n };\n expect(state1).toEqual(expectedState);\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Foo',\n immediate: true,\n action: { type: NavigationActions.NAVIGATE, routeName: 'Zoo' },\n },\n state1\n );\n expect(state2 && state2.index).toEqual(1);\n expect(state2 && state2.routes[1].index).toEqual(1);\n});\n\nit('Handles the navigate action with params', () => {\n const FooTabNavigator = () => <div />;\n FooTabNavigator.router = TabRouter({\n Baz: { screen: () => <div /> },\n Boo: { screen: () => <div /> },\n });\n\n const TestRouter = StackRouter({\n Foo: { screen: () => <div /> },\n Bar: { screen: FooTabNavigator },\n });\n const state = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.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 {\n key: 'Baz',\n routeName: 'Baz',\n params: { foo: '42' },\n },\n {\n key: 'Boo',\n routeName: 'Boo',\n params: { foo: '42' },\n },\n ]);\n});\n\nit('Handles the setParams action', () => {\n const FooTabNavigator = () => <div />;\n FooTabNavigator.router = TabRouter({\n Baz: { screen: () => <div /> },\n });\n const TestRouter = StackRouter({\n Foo: { screen: FooTabNavigator },\n Bar: { screen: () => <div /> },\n });\n const state = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n params: { name: 'foobar' },\n key: 'Baz',\n },\n state\n );\n expect(state2 && state2.index).toEqual(0);\n expect(state2 && state2.routes[0].routes).toEqual([\n {\n key: 'Baz',\n routeName: 'Baz',\n params: { name: 'foobar' },\n },\n ]);\n});\n\nit('Supports lazily-evaluated getScreen', () => {\n const BarView = () => <div />;\n const FooTabNavigator = () => <div />;\n FooTabNavigator.router = TabRouter({\n Zap: { screen: BarView },\n Zoo: { screen: BarView },\n });\n const TestRouter = StackRouter({\n Foo: {\n screen: FooTabNavigator,\n },\n Bar: {\n getScreen: () => BarView,\n },\n });\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n const state2 = TestRouter.getStateForAction({\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Qux',\n });\n expect(state1.routes[0].key).toEqual('id-0');\n expect(state2.routes[0].key).toEqual('id-1');\n state1.routes[0].key = state2.routes[0].key;\n expect(state1).toEqual(state2);\n const state3 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n immediate: true,\n routeName: 'Zap',\n },\n state2\n );\n expect(state2).toEqual(state3);\n});\n\nit('Does not switch tab index when TabRouter child handles COMPLETE_NAVIGATION or SET_PARAMS', () => {\n const FooStackNavigator = () => <div />;\n const BarView = () => <div />;\n FooStackNavigator.router = StackRouter({\n Foo: {\n screen: BarView,\n },\n Bar: {\n screen: BarView,\n },\n });\n\n const TestRouter = TabRouter({\n Zap: { screen: FooStackNavigator },\n Zoo: { screen: FooStackNavigator },\n });\n\n const state1 = TestRouter.getStateForAction({ type: NavigationActions.INIT });\n\n // Navigate to the second screen in the first tab\n const state2 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Bar',\n },\n state1\n );\n\n // Switch tabs\n const state3 = TestRouter.getStateForAction(\n {\n type: NavigationActions.NAVIGATE,\n routeName: 'Zoo',\n },\n state2\n );\n\n const stateAfterCompleteTransition = TestRouter.getStateForAction(\n {\n type: StackActions.COMPLETE_TRANSITION,\n preserveFocus: true,\n key: state2.routes[0].key,\n },\n state3\n );\n const stateAfterSetParams = TestRouter.getStateForAction(\n {\n type: NavigationActions.SET_PARAMS,\n preserveFocus: true,\n key: state1.routes[0].routes[0].key,\n params: { key: 'value' },\n },\n state3\n );\n\n expect(stateAfterCompleteTransition.index).toEqual(1);\n expect(stateAfterSetParams.index).toEqual(1);\n});\n\nit('Inner actions are only unpacked if the current tab matches', () => {\n const PlainScreen = () => <div />;\n const ScreenA = () => <div />;\n const ScreenB = () => <div />;\n ScreenB.router = StackRouter({\n Baz: { screen: PlainScreen },\n Zoo: { screen: PlainScreen },\n });\n ScreenA.router = StackRouter({\n Bar: { screen: PlainScreen },\n Boo: { screen: ScreenB },\n });\n const TestRouter = TabRouter({\n Foo: { screen: ScreenA },\n });\n const screenApreState = {\n index: 0,\n key: 'Init',\n isTransitioning: false,\n routeName: 'Foo',\n routes: [{ key: 'Init', routeName: 'Bar' }],\n };\n const preState = {\n index: 0,\n isTransitioning: false,\n routes: [screenApreState],\n };\n\n const comparable = state => {\n let result = {};\n if (typeof state.routeName === 'string') {\n result = { ...result, routeName: state.routeName };\n }\n if (state.routes instanceof Array) {\n result = {\n ...result,\n routes: state.routes.map(comparable),\n };\n }\n return result;\n };\n\n const action = NavigationActions.navigate({\n routeName: 'Boo',\n action: NavigationActions.navigate({ routeName: 'Zoo' }),\n });\n\n const expectedState = ScreenA.router.getStateForAction(\n action,\n screenApreState\n );\n const state = TestRouter.getStateForAction(action, preState);\n const innerState = state ? state.routes[0] : state;\n\n expect(expectedState && comparable(expectedState)).toEqual(\n innerState && comparable(innerState)\n );\n});\n"]}