@@ -232,6 +232,88 @@ describe('WebpackConfigHelper', () => {
232
232
}
233
233
} ) ;
234
234
235
+ test ( 'does not set babel-loader for node_modules in dev mode per config' , ( ) => {
236
+ const newProjectConfig = { ...projectConfig } ;
237
+ newProjectConfig . compileNodeModules = {
238
+ dev : false ,
239
+ prod : true ,
240
+ } ;
241
+ const cwc = new WebpackConfigHelper (
242
+ newProjectConfig . files [ 0 ] ,
243
+ getConfigFromProjectAndServer ( newProjectConfig , serverConfig ) ,
244
+ '/foo/bar' ,
245
+ true
246
+ ) ;
247
+ const modules = cwc . getModule ( ) ;
248
+ if ( Array . isArray ( modules . rules ) ) {
249
+ const nmJsRules = findWpackIoBabelOnNm ( modules ) ;
250
+ expect ( nmJsRules ) . toHaveLength ( 0 ) ;
251
+ } else {
252
+ throw new Error ( 'Module is not an array' ) ;
253
+ }
254
+ } ) ;
255
+ test ( 'does set babel-loader for node_modules in dev mode per config' , ( ) => {
256
+ const newProjectConfig = { ...projectConfig } ;
257
+ newProjectConfig . compileNodeModules = {
258
+ dev : true ,
259
+ prod : false ,
260
+ } ;
261
+ const cwc = new WebpackConfigHelper (
262
+ newProjectConfig . files [ 0 ] ,
263
+ getConfigFromProjectAndServer ( newProjectConfig , serverConfig ) ,
264
+ '/foo/bar' ,
265
+ true
266
+ ) ;
267
+ const modules = cwc . getModule ( ) ;
268
+ if ( Array . isArray ( modules . rules ) ) {
269
+ const nmJsRules = findWpackIoBabelOnNm ( modules ) ;
270
+ expect ( nmJsRules ) . toHaveLength ( 1 ) ;
271
+ } else {
272
+ throw new Error ( 'Module is not an array' ) ;
273
+ }
274
+ } ) ;
275
+
276
+ test ( 'does not set babel-loader for node_modules in prod mode per config' , ( ) => {
277
+ const newProjectConfig = { ...projectConfig } ;
278
+ newProjectConfig . compileNodeModules = {
279
+ dev : true ,
280
+ prod : false ,
281
+ } ;
282
+ const cwc = new WebpackConfigHelper (
283
+ newProjectConfig . files [ 0 ] ,
284
+ getConfigFromProjectAndServer ( newProjectConfig , serverConfig ) ,
285
+ '/foo/bar' ,
286
+ false
287
+ ) ;
288
+ const modules = cwc . getModule ( ) ;
289
+ if ( Array . isArray ( modules . rules ) ) {
290
+ const nmJsRules = findWpackIoBabelOnNm ( modules ) ;
291
+ expect ( nmJsRules ) . toHaveLength ( 0 ) ;
292
+ } else {
293
+ throw new Error ( 'Module is not an array' ) ;
294
+ }
295
+ } ) ;
296
+ test ( 'does set babel-loader for node_modules in prod mode per config' , ( ) => {
297
+ const newProjectConfig = { ...projectConfig } ;
298
+ newProjectConfig . compileNodeModules = {
299
+ dev : false ,
300
+ prod : true ,
301
+ } ;
302
+ const cwc = new WebpackConfigHelper (
303
+ newProjectConfig . files [ 0 ] ,
304
+ getConfigFromProjectAndServer ( newProjectConfig , serverConfig ) ,
305
+ '/foo/bar' ,
306
+ false
307
+ ) ;
308
+ const modules = cwc . getModule ( ) ;
309
+ if ( Array . isArray ( modules . rules ) ) {
310
+ const nmJsRules = findWpackIoBabelOnNm ( modules ) ;
311
+ expect ( nmJsRules ) . toHaveLength ( 1 ) ;
312
+ } else {
313
+ throw new Error ( 'Module is not an array' ) ;
314
+ }
315
+ } ) ;
316
+
235
317
test ( 'obeys hasFlow & hasRect' , ( ) => {
236
318
const cwc = new WebpackConfigHelper (
237
319
projectConfig . files [ 0 ] ,
0 commit comments