diff --git a/tests/register-certificate.js b/tests/register-certificate.js new file mode 100644 index 0000000..4537f58 --- /dev/null +++ b/tests/register-certificate.js @@ -0,0 +1,71 @@ +'use strict'; + +var LE = require('../').LE; +var le = LE.create({ + server: 'staging' +, acme: require('le-acme-core').ACME.create() +, store: require('le-store-certbot').create({ + configDir: '~/letsencrypt.test/etc/' + , webrootPath: '~/letsencrypt.test/tmp/:hostname' + }) +, debug: true +}); + +// TODO test generateRsaKey code path separately +// and then provide opts.accountKeypair to create account + +//var testId = Math.round(Date.now() / 1000).toString(); +var testId = 'test1000'; +var testEmail = 'coolaj86+le.' + testId + '@gmail.com'; +// TODO integrate with Daplie Domains for junk domains to test with +var testDomains = [ 'pokemap.hellabit.com', 'www.pokemap.hellabit.com' ]; + +var tests = [ + function () { + return le.core.certificates.checkAsync({ + domains: [ 'example.com' ] + }).then(function (cert) { + if (cert) { + throw new Error("Bogus domain should not have certificate."); + } + }); + } + +, function () { + return le.core.certificates.checkAsync({ + email: testEmail + , domains: testDomains + }).then(function (account) { + if (!account) { + throw new Error("Test account should exist when searched by email."); + } + }); + } +]; + +function run() { + //var express = require(express); + var server = require('http').createServer(le.middleware()); + server.listen(80, function () { + console.log('Server running, proceeding to test.'); + + function next() { + var test = tests.shift(); + if (!test) { + console.info('All tests passed'); + return; + } + + test().then(next, function (err) { + console.error('ERROR'); + console.error(err.stack); + }).then(function () { + server.close(); + }); + } + + next(); + }); +} + +run();