@@ -232,6 +232,8 @@ describe('onBuild()', () => {
232
232
233
233
afterEach ( ( ) => {
234
234
delete process . env . DEPLOY_PRIME_URL
235
+ delete process . env . URL
236
+ delete process . env . CONTEXT
235
237
} )
236
238
237
239
test ( 'does not set NEXTAUTH_URL if value is already set' , async ( ) => {
@@ -253,6 +255,53 @@ describe('onBuild()', () => {
253
255
expect ( config . config . env . NEXTAUTH_URL ) . toEqual ( mockUserDefinedSiteUrl )
254
256
} )
255
257
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
+
256
305
test ( 'sets the NEXTAUTH_URL specified in the netlify.toml or in the Netlify UI' , async ( ) => {
257
306
const mockSiteUrl = chance . url ( )
258
307
process . env . NEXTAUTH_URL = mockSiteUrl
0 commit comments