@@ -273,6 +273,253 @@ describe('mergeConfig', () => {
273273 ) ,
274274 ) . toThrowError ( 'Cannot merge config in form of callback' )
275275 } )
276+
277+ test ( 'handles `rollupOptions`' , ( ) => {
278+ const baseConfig = defineConfig ( {
279+ build : {
280+ rollupOptions : {
281+ treeshake : false ,
282+ } ,
283+ } ,
284+ worker : {
285+ rollupOptions : {
286+ treeshake : false ,
287+ } ,
288+ } ,
289+ optimizeDeps : {
290+ rollupOptions : {
291+ treeshake : false ,
292+ } ,
293+ } ,
294+ ssr : {
295+ optimizeDeps : {
296+ rollupOptions : {
297+ treeshake : false ,
298+ } ,
299+ } ,
300+ } ,
301+ } )
302+
303+ const newConfig = defineConfig ( {
304+ build : {
305+ rollupOptions : {
306+ output : {
307+ minifyInternalExports : true ,
308+ } ,
309+ } ,
310+ } ,
311+ worker : {
312+ rollupOptions : {
313+ output : {
314+ minifyInternalExports : true ,
315+ } ,
316+ } ,
317+ } ,
318+ optimizeDeps : {
319+ rollupOptions : {
320+ output : {
321+ minifyInternalExports : true ,
322+ } ,
323+ } ,
324+ } ,
325+ ssr : {
326+ optimizeDeps : {
327+ rollupOptions : {
328+ output : {
329+ minifyInternalExports : true ,
330+ } ,
331+ } ,
332+ } ,
333+ } ,
334+ } )
335+
336+ const mergedConfig = mergeConfig ( baseConfig , newConfig )
337+
338+ const expected = {
339+ treeshake : false ,
340+ output : {
341+ minifyInternalExports : true ,
342+ } ,
343+ }
344+ expect ( mergedConfig . build . rollupOptions ) . toStrictEqual ( expected )
345+ expect ( mergedConfig . build . rolldownOptions ) . toStrictEqual ( expected )
346+ expect ( mergedConfig . worker . rollupOptions ) . toStrictEqual ( expected )
347+ expect ( mergedConfig . worker . rolldownOptions ) . toStrictEqual ( expected )
348+ expect ( mergedConfig . optimizeDeps . rollupOptions ) . toStrictEqual ( expected )
349+ expect ( mergedConfig . optimizeDeps . rolldownOptions ) . toStrictEqual ( expected )
350+ expect ( mergedConfig . ssr . optimizeDeps . rollupOptions ) . toStrictEqual ( expected )
351+ expect ( mergedConfig . ssr . optimizeDeps . rolldownOptions ) . toStrictEqual (
352+ expected ,
353+ )
354+ } )
355+
356+ test ( 'handles `build.rolldownOptions`' , ( ) => {
357+ const baseConfig = defineConfig ( {
358+ build : {
359+ rolldownOptions : {
360+ treeshake : false ,
361+ } ,
362+ } ,
363+ worker : {
364+ rolldownOptions : {
365+ treeshake : false ,
366+ } ,
367+ } ,
368+ optimizeDeps : {
369+ rolldownOptions : {
370+ treeshake : false ,
371+ } ,
372+ } ,
373+ ssr : {
374+ optimizeDeps : {
375+ rolldownOptions : {
376+ treeshake : false ,
377+ } ,
378+ } ,
379+ } ,
380+ } )
381+
382+ const newConfig = defineConfig ( {
383+ build : {
384+ rolldownOptions : {
385+ output : {
386+ minifyInternalExports : true ,
387+ } ,
388+ } ,
389+ } ,
390+ worker : {
391+ rolldownOptions : {
392+ output : {
393+ minifyInternalExports : true ,
394+ } ,
395+ } ,
396+ } ,
397+ optimizeDeps : {
398+ rolldownOptions : {
399+ output : {
400+ minifyInternalExports : true ,
401+ } ,
402+ } ,
403+ } ,
404+ ssr : {
405+ optimizeDeps : {
406+ rolldownOptions : {
407+ output : {
408+ minifyInternalExports : true ,
409+ } ,
410+ } ,
411+ } ,
412+ } ,
413+ } )
414+
415+ const mergedConfig = mergeConfig ( baseConfig , newConfig )
416+
417+ const expected = {
418+ treeshake : false ,
419+ output : {
420+ minifyInternalExports : true ,
421+ } ,
422+ }
423+ expect ( mergedConfig . build . rollupOptions ) . toStrictEqual ( expected )
424+ expect ( mergedConfig . build . rolldownOptions ) . toStrictEqual ( expected )
425+ expect ( mergedConfig . worker . rollupOptions ) . toStrictEqual ( expected )
426+ expect ( mergedConfig . worker . rolldownOptions ) . toStrictEqual ( expected )
427+ expect ( mergedConfig . optimizeDeps . rollupOptions ) . toStrictEqual ( expected )
428+ expect ( mergedConfig . optimizeDeps . rolldownOptions ) . toStrictEqual ( expected )
429+ expect ( mergedConfig . ssr . optimizeDeps . rollupOptions ) . toStrictEqual ( expected )
430+ expect ( mergedConfig . ssr . optimizeDeps . rolldownOptions ) . toStrictEqual (
431+ expected ,
432+ )
433+ } )
434+
435+ test ( 'syncs `build.rollupOptions` and `build.rolldownOptions`' , ( ) => {
436+ const baseConfig = defineConfig ( {
437+ build : {
438+ rollupOptions : {
439+ treeshake : false ,
440+ } ,
441+ } ,
442+ worker : {
443+ rollupOptions : {
444+ treeshake : false ,
445+ } ,
446+ } ,
447+ optimizeDeps : {
448+ rollupOptions : {
449+ treeshake : false ,
450+ } ,
451+ } ,
452+ ssr : {
453+ optimizeDeps : {
454+ rollupOptions : {
455+ treeshake : false ,
456+ } ,
457+ } ,
458+ } ,
459+ } )
460+
461+ const newConfig = defineConfig ( {
462+ build : {
463+ rolldownOptions : {
464+ output : {
465+ minifyInternalExports : true ,
466+ } ,
467+ } ,
468+ } ,
469+ worker : {
470+ rolldownOptions : {
471+ output : {
472+ minifyInternalExports : true ,
473+ } ,
474+ } ,
475+ } ,
476+ optimizeDeps : {
477+ rolldownOptions : {
478+ output : {
479+ minifyInternalExports : true ,
480+ } ,
481+ } ,
482+ } ,
483+ ssr : {
484+ optimizeDeps : {
485+ rollupOptions : {
486+ output : {
487+ minifyInternalExports : true ,
488+ } ,
489+ } ,
490+ } ,
491+ } ,
492+ } )
493+
494+ const mergedConfig = mergeConfig ( baseConfig , newConfig ) as UserConfig
495+
496+ const expected = {
497+ treeshake : false ,
498+ output : {
499+ minifyInternalExports : true ,
500+ } ,
501+ }
502+ expect ( mergedConfig . build ! . rollupOptions ) . toStrictEqual ( expected )
503+ expect ( mergedConfig . build ! . rolldownOptions ) . toStrictEqual ( expected )
504+ expect ( mergedConfig . worker ! . rollupOptions ) . toStrictEqual ( expected )
505+ expect ( mergedConfig . worker ! . rolldownOptions ) . toStrictEqual ( expected )
506+ expect ( mergedConfig . optimizeDeps ! . rollupOptions ) . toStrictEqual ( expected )
507+ expect ( mergedConfig . optimizeDeps ! . rolldownOptions ) . toStrictEqual ( expected )
508+ expect ( mergedConfig . ssr ! . optimizeDeps ! . rollupOptions ) . toStrictEqual (
509+ expected ,
510+ )
511+ expect ( mergedConfig . ssr ! . optimizeDeps ! . rolldownOptions ) . toStrictEqual (
512+ expected ,
513+ )
514+
515+ const upOutput = mergedConfig . build ! . rollupOptions ! . output !
516+ if ( Array . isArray ( upOutput ) ) throw new Error ( )
517+ const downOutput = mergedConfig . build ! . rolldownOptions ! . output !
518+ if ( Array . isArray ( downOutput ) ) throw new Error ( )
519+ upOutput . hashCharacters = 'base36'
520+ expect ( upOutput . hashCharacters ) . toBe ( 'base36' )
521+ expect ( downOutput . hashCharacters ) . toBe ( 'base36' )
522+ } )
276523} )
277524
278525describe ( 'resolveEnvPrefix' , ( ) => {
0 commit comments