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')