1+ jest . setMock ( '../Animations' , { FlatFloatFromRight :{ } , FlatFloatFromBottom :{ } , None :{ } } ) ;
2+ jest . setMock ( 'alt/components/AltNativeContainer' ) ;
3+ var React = require ( 'react/addons' ) ;
4+ var TestUtils = React . addons . TestUtils ;
5+ jest . dontMock ( '../store' ) ;
6+ jest . dontMock ( '../actions' ) ;
7+ jest . dontMock ( '../index' ) ;
8+
9+ var Actions = require ( '../actions' ) ;
10+
11+ var { Router, Route, Schema, Action} = require ( '../index' ) ;
12+
13+ describe ( 'Router' , function ( ) {
14+ it ( 'route' , function ( ) {
15+ var router = TestUtils . renderIntoDocument (
16+ < Router >
17+ < Schema name = "default" navBar = "navBar1" customProp = "a" />
18+ < Schema name = "modal" navBar = "navBar2" customProp = "b" ownProp = "c" />
19+
20+ < Route name = "launch" component = "launchComponent" hideNavBar = { true } customProp = "a" />
21+ < Route name = "signin" component = "signinComponent" schema = "modal" />
22+ < Route name = "signup" component = "signupComponent" />
23+ < Route name = "main" component = "mainComponent" />
24+ </ Router >
25+ ) ;
26+ expect ( router . refs . nav . props . initialRoute . name ) . toEqual ( 'launch' ) ;
27+ var len = router . refs . nav . getCurrentRoutes ( ) . length ;
28+ expect ( len ) . toEqual ( 1 ) ;
29+ var launchComponent = TestUtils . findRenderedDOMComponentWithTag (
30+ router , 'launchComponent' ) ;
31+
32+ expect ( launchComponent . props . customProp ) . toEqual ( "a" ) ;
33+
34+ expect ( function ( ) { TestUtils . findRenderedDOMComponentWithTag (
35+ router , 'navBar1' ) } ) . toThrow ( new Error ( "Did not find exactly one match for tag:navBar1" ) ) ;
36+ expect ( function ( ) { TestUtils . findRenderedDOMComponentWithTag (
37+ router , 'signinComponent' ) } ) . toThrow ( new Error ( "Did not find exactly one match for tag:signinComponent" ) ) ;
38+
39+ Actions . signin ( "Hello world!" ) ;
40+ len = router . refs . nav . getCurrentRoutes ( ) . length ;
41+ expect ( len ) . toEqual ( 2 ) ;
42+ expect ( router . refs . nav . getCurrentRoutes ( ) [ len - 1 ] . name ) . toEqual ( 'signin' ) ;
43+ expect ( router . refs . nav . getCurrentRoutes ( ) [ len - 1 ] . passProps . data ) . toEqual ( "Hello world!" ) ;
44+
45+ Actions . signin ( { data :"Hello world2!" , id :1 } ) ;
46+ len = router . refs . nav . getCurrentRoutes ( ) . length ;
47+ expect ( len ) . toEqual ( 3 ) ;
48+ expect ( router . refs . nav . getCurrentRoutes ( ) [ len - 1 ] . name ) . toEqual ( 'signin' ) ;
49+ expect ( router . refs . nav . getCurrentRoutes ( ) [ len - 1 ] . passProps . data ) . toEqual ( "Hello world2!" ) ;
50+ expect ( router . refs . nav . getCurrentRoutes ( ) [ len - 1 ] . passProps . id ) . toEqual ( 1 ) ;
51+
52+ var signinComponent = TestUtils . findRenderedDOMComponentWithTag (
53+ router , 'signinComponent' ) ;
54+
55+ var navBar = TestUtils . findRenderedDOMComponentWithTag (
56+ router , 'navBar2' ) ;
57+
58+ expect ( React . findDOMNode ( signinComponent ) . data ) . toEqual ( 'Hello world2!' ) ;
59+ expect ( navBar . props . customProp ) . toEqual ( "b" ) ;
60+ expect ( navBar . props . ownProp ) . toEqual ( "c" ) ;
61+ expect ( navBar . props . data ) . toEqual ( 'Hello world2!' ) ;
62+ expect ( navBar . props . id ) . toEqual ( 1 ) ;
63+
64+ Actions . main ( ) ;
65+ len = router . refs . nav . getCurrentRoutes ( ) . length ;
66+ expect ( len ) . toEqual ( 4 ) ;
67+ expect ( router . refs . nav . getCurrentRoutes ( ) [ len - 1 ] . name ) . toEqual ( 'main' ) ;
68+ expect ( router . refs . nav . getCurrentRoutes ( ) [ len - 1 ] . passProps . data ) . toEqual ( undefined ) ;
69+ expect ( router . refs . nav . getCurrentRoutes ( ) [ len - 1 ] . passProps . id ) . toEqual ( undefined ) ;
70+
71+ expect ( function ( ) { TestUtils . findRenderedDOMComponentWithTag (
72+ router , 'navBar2' ) } ) . toThrow ( new Error ( "Did not find exactly one match for tag:navBar2" ) ) ;
73+ navBar = TestUtils . findRenderedDOMComponentWithTag (
74+ router , 'navBar1' ) ;
75+
76+ expect ( navBar . props . customProp ) . toEqual ( "a" ) ;
77+ expect ( navBar . props . ownProp ) . toEqual ( undefined ) ;
78+
79+ Actions . pop ( 2 ) ;
80+ len = router . refs . nav . getCurrentRoutes ( ) . length ;
81+ expect ( len ) . toEqual ( 2 ) ;
82+
83+ expect ( router . refs . nav . getCurrentRoutes ( ) [ len - 1 ] . name ) . toEqual ( 'signin' ) ;
84+ expect ( router . refs . nav . getCurrentRoutes ( ) [ len - 1 ] . passProps . data ) . toEqual ( "Hello world!" ) ;
85+ expect ( router . refs . nav . getCurrentRoutes ( ) [ len - 1 ] . passProps . id ) . toEqual ( undefined ) ;
86+
87+ Actions . pop ( ) ;
88+ len = router . refs . nav . getCurrentRoutes ( ) . length ;
89+ expect ( len ) . toEqual ( 1 ) ;
90+
91+ expect ( router . refs . nav . getCurrentRoutes ( ) [ len - 1 ] . name ) . toEqual ( 'launch' ) ;
92+ launchComponent = TestUtils . findRenderedDOMComponentWithTag (
93+ router , 'launchComponent' ) ;
94+
95+ expect ( launchComponent . props . customProp ) . toEqual ( "a" ) ;
96+
97+ } ) ;
98+ } ) ;
0 commit comments