Skip to content

Commit 4ba1a59

Browse files
committed
test: add test coverage for the next-auth url logic
1 parent b416d1b commit 4ba1a59

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

test/index.js

+49
Original file line numberDiff line numberDiff line change
@@ -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 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

Comments
 (0)