@@ -232,6 +232,88 @@ describe('WebpackConfigHelper', () => {
232232 }
233233 } ) ;
234234
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+
235317 test ( 'obeys hasFlow & hasRect' , ( ) => {
236318 const cwc = new WebpackConfigHelper (
237319 projectConfig . files [ 0 ] ,
0 commit comments