@@ -530,6 +530,65 @@ describe("unittests:: services:: PreProcessFile:", () => {
530
530
isLibFile : false
531
531
} ) ;
532
532
} ) ;
533
+
534
+ it ( "Correctly handles dynamic imports with template literals" , ( ) => {
535
+ test ( "const m1 = import('mod1');" + "\n" +
536
+ "const m2 = import(`mod2`);" + "\n" +
537
+ "Promise.all([import('mod3'), import(`mod4`)]);" + "\n" +
538
+ "import(/* webpackChunkName: 'module5' */ `mod5`);" + "\n" ,
539
+ /*readImportFile*/ true ,
540
+ /*detectJavaScriptImports*/ false ,
541
+ {
542
+ referencedFiles : [ ] ,
543
+ typeReferenceDirectives : [ ] ,
544
+ libReferenceDirectives : [ ] ,
545
+ importedFiles : [
546
+ { fileName : "mod1" , pos : 18 , end : 22 } ,
547
+ { fileName : "mod2" , pos : 45 , end : 49 } ,
548
+ { fileName : "mod3" , pos : 74 , end : 78 } ,
549
+ { fileName : "mod4" , pos : 90 , end : 94 } ,
550
+ { fileName : "mod5" , pos : 142 , end : 146 }
551
+ ] ,
552
+ ambientExternalModules : undefined ,
553
+ isLibFile : false
554
+ } ) ;
555
+ } ) ;
556
+
557
+ it ( "Correctly handles require calls with template literals in JS files" , ( ) => {
558
+ test ( "const m1 = require(`mod1`);" + "\n" +
559
+ "f(require(`mod2`));" + "\n" +
560
+ "const a = { x: require(`mod3`) };" + "\n" ,
561
+ /*readImportFile*/ true ,
562
+ /*detectJavaScriptImports*/ true ,
563
+ {
564
+ referencedFiles : [ ] ,
565
+ typeReferenceDirectives : [ ] ,
566
+ libReferenceDirectives : [ ] ,
567
+ importedFiles : [
568
+ { fileName : "mod1" , pos : 19 , end : 23 } ,
569
+ { fileName : "mod2" , pos : 38 , end : 42 } ,
570
+ { fileName : "mod3" , pos : 71 , end : 75 }
571
+ ] ,
572
+ ambientExternalModules : undefined ,
573
+ isLibFile : false
574
+ } ) ;
575
+ } ) ;
576
+
577
+ it ( "Correctly handles dependency lists in define(modName, [deplist]) calls with template literals in JS files" , ( ) => {
578
+ test ( "define(`mod`, [`mod1`, `mod2`], (m1, m2) => {});" ,
579
+ /*readImportFile*/ true ,
580
+ /*detectJavaScriptImports*/ true ,
581
+ {
582
+ referencedFiles : [ ] ,
583
+ typeReferenceDirectives : [ ] ,
584
+ libReferenceDirectives : [ ] ,
585
+ importedFiles : [
586
+ { fileName : "mod1" , pos : 15 , end : 19 } ,
587
+ { fileName : "mod2" , pos : 23 , end : 27 } ,
588
+ ] ,
589
+ ambientExternalModules : undefined ,
590
+ isLibFile : false
591
+ } ) ;
592
+ } ) ;
533
593
} ) ;
534
594
} ) ;
535
-
0 commit comments