@@ -13,26 +13,31 @@ describe('Top router', () => {
1313 it ( 'should render Route components' , async ( ) => {
1414 expect ( await page . $eval ( 'body' , tag => tag . innerHTML . trim ( ) ) ) . toBe (
1515 '<nav><a href="#list/1">List page</a>' +
16- '<a href="#detail/2?edit=true">Detail page</a></nav>' +
17- '<main class="router"><cell-route path="#list/:id" start-class="start" end-class="end"></cell-route>' +
18- '<cell-route path="#detail/:id" start-class="start" end-class="end"></cell-route></main>'
16+ '<a href="#detail/2?edit=true">Detail page</a>' +
17+ '<a href="#async/3?edit=true">Async page</a></nav>' +
18+ '<main class="router">' +
19+ '<cell-route path="#"><div>Home Page</div></cell-route>' +
20+ '<cell-route path="#list/:id"></cell-route>' +
21+ '<cell-route path="#detail/:id"></cell-route>' +
22+ '<cell-route path="#async/:id"></cell-route>' +
23+ '</main>'
1924 ) ;
2025 } ) ;
2126
2227 it ( 'should turn to a page after clicking a link' , async ( ) => {
23- await page . click ( 'nav a:first -child' ) ;
28+ await page . click ( 'nav a:nth -child(1) ' ) ;
2429
2530 await expectPage (
26- 'cell-route:first-of-type ' ,
31+ 'cell-route:nth-child(2) ' ,
2732 'Path: #list/1' + 'Data: {"id":"1"}' ,
2833 'List page' ,
2934 '#list/1'
3035 ) ;
3136
32- await page . click ( 'nav a:last -child' ) ;
37+ await page . click ( 'nav a:nth -child(2) ' ) ;
3338
3439 await expectPage (
35- 'cell-route:last-of-type ' ,
40+ 'cell-route:nth-child(3) ' ,
3641 'Path: #detail/2?edit=true' + 'Data: {"id":"2","edit":true}' ,
3742 'Detail page' ,
3843 '#detail/2?edit=true'
@@ -43,17 +48,17 @@ describe('Top router', () => {
4348 await page . goBack ( ) ;
4449
4550 await expectPage (
46- 'cell-route:first-of-type ' ,
47- 'Path: / #list/1' + 'Data: {"id":"1"}' ,
51+ 'cell-route:nth-child(2) ' ,
52+ 'Path: #list/1' + 'Data: {"id":"1"}' ,
4853 'List page' ,
4954 '#list/1'
5055 ) ;
5156
5257 await page . goForward ( ) ;
5358
5459 await expectPage (
55- 'cell-route:last-of-type ' ,
56- 'Path: / #detail/2?edit=true' + 'Data: {"id":"2","edit":true}' ,
60+ 'cell-route:nth-child(3) ' ,
61+ 'Path: #detail/2?edit=true' + 'Data: {"id":"2","edit":true}' ,
5762 'Detail page' ,
5863 '#detail/2?edit=true'
5964 ) ;
@@ -63,34 +68,45 @@ describe('Top router', () => {
6368 await page . reload ( ) ;
6469
6570 await expectPage (
66- 'cell-route:last-of-type ' ,
67- 'Path: / #detail/2?edit=true' + 'Data: {"id":"2","edit":true}' ,
71+ 'cell-route:nth-child(3) ' ,
72+ 'Path: #detail/2?edit=true' + 'Data: {"id":"2","edit":true}' ,
6873 'Detail page' ,
6974 '#detail/2?edit=true'
7075 ) ;
7176
7277 await page . goBack ( ) ;
7378
7479 await expectPage (
75- 'cell-route:first-of-type ' ,
76- 'Path: / #list/1' + 'Data: {"id":"1"}' ,
80+ 'cell-route:nth-child(2) ' ,
81+ 'Path: #list/1' + 'Data: {"id":"1"}' ,
7782 'List page' ,
7883 '#list/1'
7984 ) ;
8085
8186 await page . goBack ( ) ;
8287
83- await expectPage ( 'cell-route' , '' , 'Cell Router' , '' ) ;
88+ await expectPage ( 'cell-route' , 'Home Page ' , 'Cell Router' , '' ) ;
8489 } ) ;
8590
8691 it ( 'should render a page based on Changed Hash' , async ( ) => {
8792 await page . evaluate ( ( ) => ( location . hash = '#list/1' ) ) ;
8893
8994 await expectPage (
90- 'cell-route:first-of-type ' ,
91- 'Path: / #list/1' + 'Data: {"id":"1"}' ,
95+ 'cell-route:nth-child(2) ' ,
96+ 'Path: #list/1' + 'Data: {"id":"1"}' ,
9297 'List page' ,
9398 '#list/1'
9499 ) ;
95100 } ) ;
101+
102+ it ( 'should load an Async Page component' , async ( ) => {
103+ await page . click ( 'nav a:nth-child(3)' ) ;
104+
105+ await expectPage (
106+ 'cell-route:nth-child(4) h1' ,
107+ 'Async' ,
108+ 'Async page' ,
109+ '#async/3?edit=true'
110+ ) ;
111+ } ) ;
96112} ) ;
0 commit comments