@@ -70,6 +70,102 @@ export function getSharedIonicModule() {
7070 expect ( results [ 4 ] . namedExport ) . toBe ( null ) ;
7171 } ) ;
7272
73+ it ( 'should handle configs with arrays in them' , ( ) => {
74+ const knownContent = `
75+ @NgModule({
76+ declarations: [
77+ E2EApp,
78+ FirstPage,
79+ RedirectPage,
80+ AnotherPage,
81+ MyCmpTest,
82+ MyCmpTest2,
83+ PrimaryHeaderPage,
84+ TabsPage,
85+ Tab1,
86+ Tab2,
87+ Tab3,
88+ TabItemPage
89+ ],
90+ imports: [
91+ BrowserModule,
92+ IonicModule.forRoot(E2EApp, {
93+ swipeBackEnabled: true
94+ }, {
95+ links: [
96+ { component: FirstPage, name: 'first-page' },
97+ { component: AnotherPage, name: 'another-page' },
98+ { component: MyCmpTest, name: 'tab1-page1' },
99+
100+ { loadChildren: './pages/full-page/full-page.module#LinkModule', name: 'full-page', defaultHistory: ['first-page', 'another-page'] },
101+
102+ { component: PrimaryHeaderPage, name: 'primary-header-page', defaultHistory: ['first-page', 'full-page'] },
103+ { component: Tabs, name: 'tabs' },
104+ { component: Tab1, name: 'tab1' },
105+ { component: TabItemPage, name: 'item' }
106+ ]
107+ })
108+ ],
109+ bootstrap: [IonicApp],
110+ entryComponents: [
111+ E2EApp,
112+ FirstPage,
113+ RedirectPage,
114+ AnotherPage,
115+ PrimaryHeaderPage,
116+ TabsPage,
117+ Tab1,
118+ Tab2,
119+ Tab3,
120+ TabItemPage
121+ ]
122+ })
123+ export class AppModule {}
124+ ` ;
125+
126+ const results = util . extractDeepLinkPathData ( knownContent ) ;
127+
128+ expect ( results [ 0 ] . component ) . toEqual ( 'FirstPage' ) ;
129+ expect ( results [ 0 ] . name ) . toEqual ( 'first-page' ) ;
130+ expect ( results [ 0 ] . modulePath ) . toEqual ( null ) ;
131+ expect ( results [ 0 ] . namedExport ) . toEqual ( null ) ;
132+
133+ expect ( results [ 1 ] . component ) . toEqual ( 'AnotherPage' ) ;
134+ expect ( results [ 1 ] . name ) . toEqual ( 'another-page' ) ;
135+ expect ( results [ 1 ] . modulePath ) . toEqual ( null ) ;
136+ expect ( results [ 1 ] . namedExport ) . toEqual ( null ) ;
137+
138+ expect ( results [ 2 ] . component ) . toEqual ( 'MyCmpTest' ) ;
139+ expect ( results [ 2 ] . name ) . toEqual ( 'tab1-page1' ) ;
140+ expect ( results [ 2 ] . modulePath ) . toEqual ( null ) ;
141+ expect ( results [ 2 ] . namedExport ) . toEqual ( null ) ;
142+
143+ expect ( results [ 3 ] . component ) . toEqual ( null ) ;
144+ expect ( results [ 3 ] . name ) . toEqual ( 'full-page' ) ;
145+ expect ( results [ 3 ] . modulePath ) . toEqual ( './pages/full-page/full-page.module' ) ;
146+ expect ( results [ 3 ] . namedExport ) . toEqual ( 'LinkModule' ) ;
147+
148+ expect ( results [ 4 ] . component ) . toEqual ( 'PrimaryHeaderPage' ) ;
149+ expect ( results [ 4 ] . name ) . toEqual ( 'primary-header-page' ) ;
150+ expect ( results [ 4 ] . modulePath ) . toEqual ( null ) ;
151+ expect ( results [ 4 ] . namedExport ) . toEqual ( null ) ;
152+
153+ expect ( results [ 5 ] . component ) . toEqual ( 'Tabs' ) ;
154+ expect ( results [ 5 ] . name ) . toEqual ( 'tabs' ) ;
155+ expect ( results [ 5 ] . modulePath ) . toEqual ( null ) ;
156+ expect ( results [ 5 ] . namedExport ) . toEqual ( null ) ;
157+
158+ expect ( results [ 6 ] . component ) . toEqual ( 'Tab1' ) ;
159+ expect ( results [ 6 ] . name ) . toEqual ( 'tab1' ) ;
160+ expect ( results [ 6 ] . modulePath ) . toEqual ( null ) ;
161+ expect ( results [ 6 ] . namedExport ) . toEqual ( null ) ;
162+
163+ expect ( results [ 7 ] . component ) . toEqual ( 'TabItemPage' ) ;
164+ expect ( results [ 7 ] . name ) . toEqual ( 'item' ) ;
165+ expect ( results [ 7 ] . modulePath ) . toEqual ( null ) ;
166+ expect ( results [ 7 ] . namedExport ) . toEqual ( null ) ;
167+ } ) ;
168+
73169 it ( 'should throw an exception when there is an invalid deep link config' , ( ) => {
74170 // arrange
75171 const fileContent = `
0 commit comments