@@ -67,6 +67,43 @@ describe('webpack-batteries-included-preprocessor', () => {
67
67
mock . stop ( '@cypress/webpack-preprocessor' )
68
68
} )
69
69
70
+ it ( 'correctly passes the options in the user\'s tsconfig.json options into ts-loader' , ( ) => {
71
+ getTsConfigMock . returns ( {
72
+ config : {
73
+ compilerOptions : {
74
+ module : 'ESNext' ,
75
+ moduleResolution : 'Bundler' ,
76
+ } ,
77
+ path : '/foo/tsconfig.json' ,
78
+ } ,
79
+ } )
80
+
81
+ const preprocessorCB = preprocessor ( {
82
+ typescript : true ,
83
+ webpackOptions,
84
+ } )
85
+
86
+ preprocessorCB ( {
87
+ filePath : 'foo.ts' ,
88
+ outputPath : '.js' ,
89
+ } )
90
+
91
+ const tsLoader = webpackOptions . module . rules [ 0 ] . use [ 0 ]
92
+
93
+ expect ( tsLoader . loader ) . to . contain ( 'ts-loader' )
94
+
95
+ expect ( tsLoader . options . compiler ) . to . be . true
96
+ expect ( tsLoader . options . logLevel ) . to . equal ( 'error' )
97
+ expect ( tsLoader . options . silent ) . to . be . true
98
+ expect ( tsLoader . options . transpileOnly ) . to . be . true
99
+
100
+ // compilerOptions are overridden (sourceMap=true) by `@cypress/webpack-preprocessor` if ts-loader is present
101
+ expect ( tsLoader . options . compilerOptions ) . to . deep . equal ( {
102
+ module : 'ESNext' ,
103
+ moduleResolution : 'Bundler' ,
104
+ } )
105
+ } )
106
+
70
107
it ( 'always returns loader options even if there is an error discovering the user\'s tsconfig.json' , ( ) => {
71
108
getTsConfigMock . returns ( null )
72
109
@@ -89,7 +126,7 @@ describe('webpack-batteries-included-preprocessor', () => {
89
126
expect ( tsLoader . options . silent ) . to . be . true
90
127
expect ( tsLoader . options . transpileOnly ) . to . be . true
91
128
92
- // compilerOptions are set by `@cypress/webpack-preprocessor` if ts-loader is present
129
+ // compilerOptions are overridden (sourceMap=true) by `@cypress/webpack-preprocessor` if ts-loader is present
93
130
expect ( tsLoader . options . compilerOptions ) . to . be . undefined
94
131
} )
95
132
} )
0 commit comments