@@ -87,6 +87,86 @@ describe('constructWebpackConfigFunction()', () => {
8787 getBuildPluginOptionsSpy . mockRestore ( ) ;
8888 } ) ;
8989
90+ it ( 'passes useRunAfterProductionCompileHook to getBuildPluginOptions when enabled' , async ( ) => {
91+ const getBuildPluginOptionsSpy = vi . spyOn ( getBuildPluginOptionsModule , 'getBuildPluginOptions' ) ;
92+ vi . spyOn ( core , 'loadModule' ) . mockImplementation ( ( ) => ( {
93+ sentryWebpackPlugin : ( ) => ( {
94+ _name : 'sentry-webpack-plugin' ,
95+ } ) ,
96+ } ) ) ;
97+
98+ await materializeFinalWebpackConfig ( {
99+ exportedNextConfig,
100+ incomingWebpackConfig : serverWebpackConfig ,
101+ incomingWebpackBuildContext : serverBuildContext ,
102+ sentryBuildTimeOptions : {
103+ _experimental : {
104+ useRunAfterProductionCompileHook : true ,
105+ } ,
106+ } ,
107+ } ) ;
108+
109+ expect ( getBuildPluginOptionsSpy ) . toHaveBeenCalledWith (
110+ expect . objectContaining ( {
111+ useRunAfterProductionCompileHook : true ,
112+ } ) ,
113+ ) ;
114+
115+ getBuildPluginOptionsSpy . mockRestore ( ) ;
116+ } ) ;
117+
118+ it ( 'passes useRunAfterProductionCompileHook to getBuildPluginOptions when disabled' , async ( ) => {
119+ const getBuildPluginOptionsSpy = vi . spyOn ( getBuildPluginOptionsModule , 'getBuildPluginOptions' ) ;
120+ vi . spyOn ( core , 'loadModule' ) . mockImplementation ( ( ) => ( {
121+ sentryWebpackPlugin : ( ) => ( {
122+ _name : 'sentry-webpack-plugin' ,
123+ } ) ,
124+ } ) ) ;
125+
126+ await materializeFinalWebpackConfig ( {
127+ exportedNextConfig,
128+ incomingWebpackConfig : serverWebpackConfig ,
129+ incomingWebpackBuildContext : serverBuildContext ,
130+ sentryBuildTimeOptions : {
131+ _experimental : {
132+ useRunAfterProductionCompileHook : false ,
133+ } ,
134+ } ,
135+ } ) ;
136+
137+ expect ( getBuildPluginOptionsSpy ) . toHaveBeenCalledWith (
138+ expect . objectContaining ( {
139+ useRunAfterProductionCompileHook : false ,
140+ } ) ,
141+ ) ;
142+
143+ getBuildPluginOptionsSpy . mockRestore ( ) ;
144+ } ) ;
145+
146+ it ( 'passes useRunAfterProductionCompileHook as undefined when not specified' , async ( ) => {
147+ const getBuildPluginOptionsSpy = vi . spyOn ( getBuildPluginOptionsModule , 'getBuildPluginOptions' ) ;
148+ vi . spyOn ( core , 'loadModule' ) . mockImplementation ( ( ) => ( {
149+ sentryWebpackPlugin : ( ) => ( {
150+ _name : 'sentry-webpack-plugin' ,
151+ } ) ,
152+ } ) ) ;
153+
154+ await materializeFinalWebpackConfig ( {
155+ exportedNextConfig,
156+ incomingWebpackConfig : serverWebpackConfig ,
157+ incomingWebpackBuildContext : serverBuildContext ,
158+ sentryBuildTimeOptions : { } ,
159+ } ) ;
160+
161+ expect ( getBuildPluginOptionsSpy ) . toHaveBeenCalledWith (
162+ expect . objectContaining ( {
163+ useRunAfterProductionCompileHook : undefined ,
164+ } ) ,
165+ ) ;
166+
167+ getBuildPluginOptionsSpy . mockRestore ( ) ;
168+ } ) ;
169+
90170 it ( 'preserves unrelated webpack config options' , async ( ) => {
91171 const finalWebpackConfig = await materializeFinalWebpackConfig ( {
92172 exportedNextConfig,
0 commit comments