@@ -70,6 +70,102 @@ export function getSharedIonicModule() {
70
70
expect ( results [ 4 ] . namedExport ) . toBe ( null ) ;
71
71
} ) ;
72
72
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
+
73
169
it ( 'should throw an exception when there is an invalid deep link config' , ( ) => {
74
170
// arrange
75
171
const fileContent = `
0 commit comments