Skip to content

Built for people who want to own their automations. Join the waitlist for an invite.

Package listing

@kody/netlify

scripts/test-dry-run.mjs

73 lines · 2.0 KB · JavaScript
import assert from 'node:assert/strict'
import netlify, {
	createDeploy,
	createEnvVar,
	netlifyRequest,
	restoreDeploy,
	runSiteStatus,
	smokeTest,
} from '../src/netlify.js'

const smoke = await smokeTest({ dryRun: true })
assert.equal(smoke.ok, true)
assert.equal(smoke.live, false)
assert.equal(smoke.dryRun, true)
assert.equal(smoke.path, '/user')
assert.match(smoke.setup.tokenUrl, /name=netlifyToken/)
assert.doesNotMatch(JSON.stringify(smoke), /kentcdodds|epicweb/i)

const root = await netlify({ dryRun: true })
assert.equal(root.path, '/user')

const status = await runSiteStatus({ dryRun: true })
assert.equal(status.path, '/sites')
assert.equal(status.live, false)

const deploy = await createDeploy({
	site: 'example-site',
	draft: true,
	dryRun: true,
})
assert.equal(deploy.dryRun, true)
assert.equal(deploy.method, 'POST')
assert.equal(deploy.path, '/sites/example-site/deploys')
assert.deepEqual(deploy.body, { draft: true })

const restore = await restoreDeploy({
	site: 'example-site',
	deploy: 'deploy_123',
	dryRun: true,
})
assert.equal(restore.dryRun, true)
assert.equal(restore.method, 'POST')
assert.equal(restore.path, '/sites/example-site/deploys/deploy_123/restore')

const env = await createEnvVar({
	accountId: 'acme',
	site: 'example-site',
	key: 'EXAMPLE_FLAG',
	value: 'should-not-appear',
	context: 'production',
	dryRun: true,
})
assert.equal(env.dryRun, true)
assert.equal(env.path, '/accounts/acme/env')
assert.equal(env.body[0].key, 'EXAMPLE_FLAG')
assert.equal(env.body[0].values[0].value, '[redacted]')

const requestPreview = await netlifyRequest({
	path: '/sites/example-site/deploys',
	method: 'POST',
	body: { draft: true },
	dryRun: true,
})
assert.equal(requestPreview.dryRun, true)
assert.equal(requestPreview.method, 'POST')

await assert.rejects(() => createDeploy({ site: 'example-site', draft: true }), /confirm: true/)
await assert.rejects(
	() => restoreDeploy({ site: 'example-site', deploy: 'deploy_123' }),
	/confirm: true/,
)

console.log('dry-run helper checks passed')