@@ -315,11 +315,11 @@ describe('webpack config', () => {
315
315
316
316
expect ( finalWebpackConfig . entry ) . toEqual (
317
317
expect . objectContaining ( {
318
- // original entry point value is a string
318
+ // original entrypoint value is a string
319
319
// (was 'private-next-pages/api/dogs/[name].js')
320
320
'pages/api/dogs/[name]' : [ rewriteFramesHelper , serverConfigFilePath , 'private-next-pages/api/dogs/[name].js' ] ,
321
321
322
- // original entry point value is a string array
322
+ // original entrypoint value is a string array
323
323
// (was ['./node_modules/smellOVision/index.js', 'private-next-pages/_app.js'])
324
324
'pages/_app' : [
325
325
rewriteFramesHelper ,
@@ -328,14 +328,14 @@ describe('webpack config', () => {
328
328
'private-next-pages/_app.js' ,
329
329
] ,
330
330
331
- // original entry point value is an object containing a string `import` value
332
- // (`import` was 'private-next-pages/api/simulator/dogStats/[name].js')
331
+ // original entrypoint value is an object containing a string `import` value
332
+ // (was { import: 'private-next-pages/api/simulator/dogStats/[name].js' } )
333
333
'pages/api/simulator/dogStats/[name]' : {
334
334
import : [ rewriteFramesHelper , serverConfigFilePath , 'private-next-pages/api/simulator/dogStats/[name].js' ] ,
335
335
} ,
336
336
337
- // original entry point value is an object containing a string array `import` value
338
- // (`import` was ['./node_modules/dogPoints/converter.js', 'private-next-pages/api/simulator/leaderboard.js'])
337
+ // original entrypoint value is an object containing a string array `import` value
338
+ // (was { import: ['./node_modules/dogPoints/converter.js', 'private-next-pages/api/simulator/leaderboard.js'] } )
339
339
'pages/api/simulator/leaderboard' : {
340
340
import : [
341
341
rewriteFramesHelper ,
@@ -345,16 +345,64 @@ describe('webpack config', () => {
345
345
] ,
346
346
} ,
347
347
348
- // original entry point value is an object containg properties besides `import`
349
- // (` dependOn` remains untouched )
348
+ // original entrypoint value is an object containg properties besides `import`
349
+ // (was { import: 'private-next-pages/api/tricks/[trickName].js', dependOn: 'treats', } )
350
350
'pages/api/tricks/[trickName]' : {
351
351
import : [ rewriteFramesHelper , serverConfigFilePath , 'private-next-pages/api/tricks/[trickName].js' ] ,
352
- dependOn : 'treats' ,
352
+ dependOn : 'treats' , // untouched
353
353
} ,
354
354
} ) ,
355
355
) ;
356
356
} ) ;
357
357
358
+ it ( 'injects user config file into `_app` in both server and client bundles' , async ( ) => {
359
+ const finalServerWebpackConfig = await materializeFinalWebpackConfig ( {
360
+ userNextConfig,
361
+ incomingWebpackConfig : serverWebpackConfig ,
362
+ incomingWebpackBuildContext : serverBuildContext ,
363
+ } ) ;
364
+ const finalClientWebpackConfig = await materializeFinalWebpackConfig ( {
365
+ userNextConfig,
366
+ incomingWebpackConfig : clientWebpackConfig ,
367
+ incomingWebpackBuildContext : clientBuildContext ,
368
+ } ) ;
369
+
370
+ expect ( finalServerWebpackConfig . entry ) . toEqual (
371
+ expect . objectContaining ( {
372
+ 'pages/_app' : expect . arrayContaining ( [ serverConfigFilePath ] ) ,
373
+ } ) ,
374
+ ) ;
375
+ expect ( finalClientWebpackConfig . entry ) . toEqual (
376
+ expect . objectContaining ( {
377
+ 'pages/_app' : expect . arrayContaining ( [ clientConfigFilePath ] ) ,
378
+ } ) ,
379
+ ) ;
380
+ } ) ;
381
+
382
+ it ( 'injects user config file into API routes' , async ( ) => {
383
+ const finalWebpackConfig = await materializeFinalWebpackConfig ( {
384
+ userNextConfig,
385
+ incomingWebpackConfig : serverWebpackConfig ,
386
+ incomingWebpackBuildContext : serverBuildContext ,
387
+ } ) ;
388
+
389
+ expect ( finalWebpackConfig . entry ) . toEqual (
390
+ expect . objectContaining ( {
391
+ 'pages/api/simulator/dogStats/[name]' : {
392
+ import : expect . arrayContaining ( [ serverConfigFilePath ] ) ,
393
+ } ,
394
+
395
+ 'pages/api/simulator/leaderboard' : {
396
+ import : expect . arrayContaining ( [ serverConfigFilePath ] ) ,
397
+ } ,
398
+
399
+ 'pages/api/tricks/[trickName]' : expect . objectContaining ( {
400
+ import : expect . arrayContaining ( [ serverConfigFilePath ] ) ,
401
+ } ) ,
402
+ } ) ,
403
+ ) ;
404
+ } ) ;
405
+
358
406
it ( 'does not inject anything into non-_app, non-API routes' , async ( ) => {
359
407
const finalWebpackConfig = await materializeFinalWebpackConfig ( {
360
408
userNextConfig,
0 commit comments