1
1
import { join } from 'path' ;
2
2
import * as util from './util' ;
3
3
4
+ import * as Constants from '../util/constants' ;
4
5
import { FileCache } from '../util/file-cache' ;
5
6
import * as helpers from '../util/helpers' ;
6
7
import { DeepLinkConfigEntry } from '../util/interfaces' ;
7
8
import * as tsUtils from '../util/typescript-utils' ;
8
9
9
10
describe ( 'util' , ( ) => {
11
+ describe ( 'filterTypescriptFilesForDeepLinks' , ( ) => {
12
+ it ( 'should return a list of files that are in the directory specified for deeplinking' , ( ) => {
13
+ const pagesDir = join ( 'Users' , 'dan' , 'myApp' , 'src' , 'pages' ) ;
14
+
15
+ const knownFileContent = 'Some string' ;
16
+ const pageOneTs = join ( pagesDir , 'page-one' , 'page-one.ts' ) ;
17
+ const pageOneHtml = join ( pagesDir , 'page-one' , 'page-one.html' ) ;
18
+ const pageOneModule = join ( pagesDir , 'page-one' , 'page-one.module.ts' ) ;
19
+
20
+ const pageTwoTs = join ( pagesDir , 'page-two' , 'page-two.ts' ) ;
21
+ const pageTwoHtml = join ( pagesDir , 'page-two' , 'page-two.html' ) ;
22
+ const pageTwoModule = join ( pagesDir , 'page-two' , 'page-two.module.ts' ) ;
23
+
24
+ const pageThreeTs = join ( pagesDir , 'page-three' , 'page-three.ts' ) ;
25
+ const pageThreeHtml = join ( pagesDir , 'page-three' , 'page-three.html' ) ;
26
+ const pageThreeModule = join ( pagesDir , 'page-three' , 'page-three.module.ts' ) ;
27
+
28
+ const someOtherFile = join ( 'Users' , 'hans-gruber' , 'test.ts' ) ;
29
+
30
+ const fileCache = new FileCache ( ) ;
31
+ fileCache . set ( pageOneTs , { path : pageOneTs , content : knownFileContent } ) ;
32
+ fileCache . set ( pageOneHtml , { path : pageOneHtml , content : knownFileContent } ) ;
33
+ fileCache . set ( pageOneModule , { path : pageOneModule , content : knownFileContent } ) ;
34
+ fileCache . set ( pageTwoTs , { path : pageTwoTs , content : knownFileContent } ) ;
35
+ fileCache . set ( pageTwoHtml , { path : pageTwoHtml , content : knownFileContent } ) ;
36
+ fileCache . set ( pageTwoModule , { path : pageTwoModule , content : knownFileContent } ) ;
37
+ fileCache . set ( pageThreeTs , { path : pageThreeTs , content : knownFileContent } ) ;
38
+ fileCache . set ( pageThreeHtml , { path : pageThreeHtml , content : knownFileContent } ) ;
39
+ fileCache . set ( pageThreeModule , { path : pageThreeModule , content : knownFileContent } ) ;
40
+ fileCache . set ( someOtherFile , { path : someOtherFile , content : knownFileContent } ) ;
41
+
42
+ spyOn ( helpers , helpers . getStringPropertyValue . name ) . and . returnValues ( pagesDir , '.module.ts' ) ;
43
+
44
+ const results = util . filterTypescriptFilesForDeepLinks ( fileCache ) ;
45
+ expect ( results . length ) . toEqual ( 3 ) ;
46
+ expect ( results [ 0 ] . path ) . toEqual ( pageOneTs ) ;
47
+ expect ( results [ 1 ] . path ) . toEqual ( pageTwoTs ) ;
48
+ expect ( results [ 2 ] . path ) . toEqual ( pageThreeTs ) ;
49
+ } ) ;
50
+ } ) ;
10
51
describe ( 'parseDeepLinkDecorator' , ( ) => {
11
52
it ( 'should return the decorator content from fully hydrated decorator' , ( ) => {
12
53
const knownContent = `
@@ -1062,14 +1103,14 @@ export class PageThreeModule {
1062
1103
1063
1104
` ;
1064
1105
1065
- const prefix = join ( 'Users' , 'dan' , 'myApp' , 'src' ) ;
1066
- const appNgModulePath = join ( prefix , 'app' , 'app.module.ts' ) ;
1067
- const pageOneNgModulePath = join ( prefix , 'pages' , 'page-one' , 'page-one.module.ts' ) ;
1068
- const pageOnePath = join ( prefix , 'pages' , 'page-one' , 'page-one.ts' ) ;
1069
- const pageTwoNgModulePath = join ( prefix , 'pages' , 'page-two' , 'page-two.module.ts' ) ;
1070
- const pageTwoPath = join ( prefix , 'pages' , 'page-two' , 'page-two.ts' ) ;
1071
- const pageSettingsNgModulePath = join ( prefix , 'pages' , 'settings-page' , 'settings-page.module.ts' ) ;
1072
- const pageSettingsPath = join ( prefix , 'pages' , 'settings-page' , 'settings-page.ts' ) ;
1106
+ const srcDir = join ( 'Users' , 'dan' , 'myApp' , 'src' ) ;
1107
+ const appNgModulePath = join ( srcDir , 'app' , 'app.module.ts' ) ;
1108
+ const pageOneNgModulePath = join ( srcDir , 'pages' , 'page-one' , 'page-one.module.ts' ) ;
1109
+ const pageOnePath = join ( srcDir , 'pages' , 'page-one' , 'page-one.ts' ) ;
1110
+ const pageTwoNgModulePath = join ( srcDir , 'pages' , 'page-two' , 'page-two.module.ts' ) ;
1111
+ const pageTwoPath = join ( srcDir , 'pages' , 'page-two' , 'page-two.ts' ) ;
1112
+ const pageSettingsNgModulePath = join ( srcDir , 'pages' , 'settings-page' , 'settings-page.module.ts' ) ;
1113
+ const pageSettingsPath = join ( srcDir , 'pages' , 'settings-page' , 'settings-page.ts' ) ;
1073
1114
1074
1115
const fileCache = new FileCache ( ) ;
1075
1116
fileCache . set ( pageOnePath , { path : pageOnePath , content : pageOneContent } ) ;
@@ -1081,7 +1122,13 @@ export class PageThreeModule {
1081
1122
fileCache . set ( pageSettingsPath , { path : pageSettingsPath , content : pageSettingsContent } ) ;
1082
1123
fileCache . set ( pageSettingsNgModulePath , { path : pageSettingsNgModulePath , content : pageSettingsNgModuleContent } ) ;
1083
1124
1084
- spyOn ( helpers , helpers . getStringPropertyValue . name ) . and . returnValue ( '.module.ts' ) ;
1125
+ spyOn ( helpers , helpers . getStringPropertyValue . name ) . and . callFake ( ( input : string ) => {
1126
+ if ( input === Constants . ENV_VAR_DEEPLINKS_DIR ) {
1127
+ return srcDir ;
1128
+ } else {
1129
+ return '.module.ts' ;
1130
+ }
1131
+ } ) ;
1085
1132
1086
1133
const results = util . getDeepLinkData ( appNgModulePath , fileCache , false ) ;
1087
1134
expect ( results . length ) . toEqual ( 2 ) ;
@@ -1249,14 +1296,14 @@ export class PageThreeModule {
1249
1296
1250
1297
` ;
1251
1298
1252
- const prefix = join ( '/Users' , 'dan' , 'myApp' , 'src' ) ;
1253
- const appNgModulePath = join ( prefix , 'app' , 'app.module.ts' ) ;
1254
- const pageOneNgModulePath = join ( prefix , 'pages' , 'page-one' , 'page-one.module.ts' ) ;
1255
- const pageOnePath = join ( prefix , 'pages' , 'page-one' , 'page-one.ts' ) ;
1256
- const pageTwoNgModulePath = join ( prefix , 'pages' , 'page-two' , 'page-two.module.ts' ) ;
1257
- const pageTwoPath = join ( prefix , 'pages' , 'page-two' , 'page-two.ts' ) ;
1258
- const pageSettingsNgModulePath = join ( prefix , 'pages' , 'settings-page' , 'fake-dir' , 'settings-page.module.ts' ) ;
1259
- const pageSettingsPath = join ( prefix , 'pages' , 'settings-page' , 'fake-dir' , 'settings-page.ts' ) ;
1299
+ const srcDir = join ( '/Users' , 'dan' , 'myApp' , 'src' ) ;
1300
+ const appNgModulePath = join ( srcDir , 'app' , 'app.module.ts' ) ;
1301
+ const pageOneNgModulePath = join ( srcDir , 'pages' , 'page-one' , 'page-one.module.ts' ) ;
1302
+ const pageOnePath = join ( srcDir , 'pages' , 'page-one' , 'page-one.ts' ) ;
1303
+ const pageTwoNgModulePath = join ( srcDir , 'pages' , 'page-two' , 'page-two.module.ts' ) ;
1304
+ const pageTwoPath = join ( srcDir , 'pages' , 'page-two' , 'page-two.ts' ) ;
1305
+ const pageSettingsNgModulePath = join ( srcDir , 'pages' , 'settings-page' , 'fake-dir' , 'settings-page.module.ts' ) ;
1306
+ const pageSettingsPath = join ( srcDir , 'pages' , 'settings-page' , 'fake-dir' , 'settings-page.ts' ) ;
1260
1307
1261
1308
const fileCache = new FileCache ( ) ;
1262
1309
fileCache . set ( pageOnePath , { path : pageOnePath , content : pageOneContent } ) ;
@@ -1268,7 +1315,13 @@ export class PageThreeModule {
1268
1315
fileCache . set ( pageSettingsPath , { path : pageSettingsPath , content : pageSettingsContent } ) ;
1269
1316
fileCache . set ( pageSettingsNgModulePath , { path : pageSettingsNgModulePath , content : pageSettingsNgModuleContent } ) ;
1270
1317
1271
- spyOn ( helpers , helpers . getStringPropertyValue . name ) . and . returnValue ( '.module.ts' ) ;
1318
+ spyOn ( helpers , helpers . getStringPropertyValue . name ) . and . callFake ( ( input : string ) => {
1319
+ if ( input === Constants . ENV_VAR_DEEPLINKS_DIR ) {
1320
+ return srcDir ;
1321
+ } else {
1322
+ return '.module.ts' ;
1323
+ }
1324
+ } ) ;
1272
1325
1273
1326
const results = util . getDeepLinkData ( appNgModulePath , fileCache , false ) ;
1274
1327
expect ( results . length ) . toEqual ( 3 ) ;
@@ -1461,14 +1514,14 @@ export class PageThreeModule {
1461
1514
1462
1515
` ;
1463
1516
1464
- const prefix = join ( '/Users' , 'dan' , 'myApp' , 'src' ) ;
1465
- const appNgModulePath = join ( prefix , 'app' , 'app.module.ts' ) ;
1466
- const pageOneNgModulePath = join ( prefix , 'pages' , 'page-one' , 'page-one.not-module.ts' ) ;
1467
- const pageOnePath = join ( prefix , 'pages' , 'page-one' , 'page-one.ts' ) ;
1468
- const pageTwoNgModulePath = join ( prefix , 'pages' , 'page-two' , 'page-two.module.ts' ) ;
1469
- const pageTwoPath = join ( prefix , 'pages' , 'page-two' , 'page-two.ts' ) ;
1470
- const pageSettingsNgModulePath = join ( prefix , 'pages' , 'settings-page' , 'fake-dir' , 'settings-page.module.ts' ) ;
1471
- const pageSettingsPath = join ( prefix , 'pages' , 'settings-page' , 'fake-dir' , 'settings-page.ts' ) ;
1517
+ const srcDir = join ( '/Users' , 'dan' , 'myApp' , 'src' ) ;
1518
+ const appNgModulePath = join ( srcDir , 'app' , 'app.module.ts' ) ;
1519
+ const pageOneNgModulePath = join ( srcDir , 'pages' , 'page-one' , 'page-one.not-module.ts' ) ;
1520
+ const pageOnePath = join ( srcDir , 'pages' , 'page-one' , 'page-one.ts' ) ;
1521
+ const pageTwoNgModulePath = join ( srcDir , 'pages' , 'page-two' , 'page-two.module.ts' ) ;
1522
+ const pageTwoPath = join ( srcDir , 'pages' , 'page-two' , 'page-two.ts' ) ;
1523
+ const pageSettingsNgModulePath = join ( srcDir , 'pages' , 'settings-page' , 'fake-dir' , 'settings-page.module.ts' ) ;
1524
+ const pageSettingsPath = join ( srcDir , 'pages' , 'settings-page' , 'fake-dir' , 'settings-page.ts' ) ;
1472
1525
1473
1526
const fileCache = new FileCache ( ) ;
1474
1527
fileCache . set ( pageOnePath , { path : pageOnePath , content : pageOneContent } ) ;
@@ -1480,7 +1533,13 @@ export class PageThreeModule {
1480
1533
fileCache . set ( pageSettingsPath , { path : pageSettingsPath , content : pageSettingsContent } ) ;
1481
1534
fileCache . set ( pageSettingsNgModulePath , { path : pageSettingsNgModulePath , content : pageSettingsNgModuleContent } ) ;
1482
1535
1483
- spyOn ( helpers , helpers . getStringPropertyValue . name ) . and . returnValue ( '.module.ts' ) ;
1536
+ spyOn ( helpers , helpers . getStringPropertyValue . name ) . and . callFake ( ( input : string ) => {
1537
+ if ( input === Constants . ENV_VAR_DEEPLINKS_DIR ) {
1538
+ return srcDir ;
1539
+ } else {
1540
+ return '.module.ts' ;
1541
+ }
1542
+ } ) ;
1484
1543
1485
1544
const knownError = 'should never get here' ;
1486
1545
0 commit comments