@@ -232,6 +232,8 @@ describe('onBuild()', () => {
232232
233233 afterEach ( ( ) => {
234234 delete process . env . DEPLOY_PRIME_URL
235+ delete process . env . URL
236+ delete process . env . CONTEXT
235237 } )
236238
237239 test ( 'does not set NEXTAUTH_URL if value is already set' , async ( ) => {
@@ -253,6 +255,53 @@ describe('onBuild()', () => {
253255 expect ( config . config . env . NEXTAUTH_URL ) . toEqual ( mockUserDefinedSiteUrl )
254256 } )
255257
258+ test ( 'sets the NEXTAUTH_URL to the DEPLOY_PRIME_URL when CONTEXT env variable is not \'production\'' , async ( ) => {
259+ const mockUserDefinedSiteUrl = chance . url ( )
260+ process . env . DEPLOY_PRIME_URL = mockUserDefinedSiteUrl
261+ process . env . URL = chance . url ( )
262+
263+ // See https://docs.netlify.com/configure-builds/environment-variables/#build-metadata for all possible values
264+ process . env . CONTEXT = 'deploy-preview'
265+
266+ await moveNextDist ( )
267+
268+ const initialConfig = await getRequiredServerFiles ( netlifyConfig . build . publish )
269+
270+ initialConfig . config . env . NEXTAUTH_URL = mockUserDefinedSiteUrl
271+ await updateRequiredServerFiles ( netlifyConfig . build . publish , initialConfig )
272+
273+ await nextRuntime . onBuild ( defaultArgs )
274+
275+ expect ( onBuildHasRun ( netlifyConfig ) ) . toBe ( true )
276+ const config = await getRequiredServerFiles ( netlifyConfig . build . publish )
277+
278+ expect ( config . config . env . NEXTAUTH_URL ) . toEqual ( mockUserDefinedSiteUrl )
279+ } )
280+
281+ test ( 'sets the NEXTAUTH_URL to the user defined site URL when CONTEXT env variable is \'production\'' , async ( ) => {
282+ const mockUserDefinedSiteUrl = chance . url ( )
283+ process . env . DEPLOY_PRIME_URL = chance . url ( )
284+ process . env . URL = mockUserDefinedSiteUrl
285+
286+ // See https://docs.netlify.com/configure-builds/environment-variables/#build-metadata for all possible values
287+ process . env . CONTEXT = 'production'
288+
289+ await moveNextDist ( )
290+
291+ const initialConfig = await getRequiredServerFiles ( netlifyConfig . build . publish )
292+
293+ initialConfig . config . env . NEXTAUTH_URL = mockUserDefinedSiteUrl
294+ await updateRequiredServerFiles ( netlifyConfig . build . publish , initialConfig )
295+
296+ await nextRuntime . onBuild ( defaultArgs )
297+
298+ expect ( onBuildHasRun ( netlifyConfig ) ) . toBe ( true )
299+ const config = await getRequiredServerFiles ( netlifyConfig . build . publish )
300+
301+ expect ( config . config . env . NEXTAUTH_URL ) . toEqual ( mockUserDefinedSiteUrl )
302+ } )
303+
304+
256305 test ( 'sets the NEXTAUTH_URL specified in the netlify.toml or in the Netlify UI' , async ( ) => {
257306 const mockSiteUrl = chance . url ( )
258307 process . env . NEXTAUTH_URL = mockSiteUrl
0 commit comments