smartacme/test/test.ts
2017-04-28 18:56:55 +02:00

91 lines
2.5 KiB
TypeScript

import { expect, tap } from 'tapbundle'
import * as cflare from 'cflare'
import * as qenv from 'qenv'
let testQenv = new qenv.Qenv(process.cwd(), process.cwd() + '/.nogit')
// import the module to test
import * as smartacme from '../dist/index'
let myCflareAccount = new cflare.CflareAccount()
myCflareAccount.auth({
email: process.env.CF_EMAIL,
key: process.env.CF_KEY
})
let testSmartAcme: smartacme.SmartAcme
let testAcmeAccount: smartacme.AcmeAccount
let testAcmeCert: smartacme.AcmeCert
let testChallenge: smartacme.ISmartAcmeChallengeChosen
tap.test('smartacme -> should create a valid instance', async (tools) => {
tools.timeout(10000)
testSmartAcme = new smartacme.SmartAcme(false)
await testSmartAcme.init().then(async () => {
expect(testSmartAcme).to.be.instanceOf(smartacme.SmartAcme)
})
})
tap.test('smartacme -> should have created keyPair', async () => {
expect(testSmartAcme.acmeUrl).to.be.a('string')
})
tap.test('smartacme -> should register a new account', async (tools) => {
tools.timeout(10000)
await testSmartAcme.createAcmeAccount().then(async x => {
testAcmeAccount = x
})
})
tap.test('smartacme -> should create a AcmeCert', async () => {
await testAcmeAccount.createAcmeCert('test2.bleu.de').then(async x => {
testAcmeCert = x
expect(testAcmeAccount).to.be.instanceOf(smartacme.AcmeCert)
})
})
tap.test('smartacme -> should get a challenge for a AcmeCert', async (tools) => {
tools.timeout(10000)
await testAcmeCert.requestChallenge().then(async (challengeChosen) => {
console.log(challengeChosen)
testChallenge = challengeChosen
})
})
tap.test('smartacme -> should set the challenge', async (tools) => {
tools.timeout(20000)
await myCflareAccount.createRecord(
testChallenge.domainNamePrefixed,
'TXT', testChallenge.dnsKeyHash
)
})
tap.test('smartacme -> should check for a DNS record', async (tools) => {
tools.timeout(20000)
await testAcmeCert.checkDns().then(x => {
console.log(x)
})
})
tap.test('smartacme -> should accept the challenge', async (tools) => {
tools.timeout(10000)
await testAcmeCert.acceptChallenge()
})
tap.test('smartacme -> should poll for validation of a challenge', async (tools) => {
tools.timeout(10000)
await testAcmeCert.requestValidation().then(async x => {
console.log(x)
})
})
tap.test('smartacme -> should remove the challenge', async (tools) => {
tools.timeout(20000)
await myCflareAccount.removeRecord(
testChallenge.domainNamePrefixed,
'TXT'
)
})
tap.start()