AJ ONeal
8 years ago
2 changed files with 108 additions and 3 deletions
@ -0,0 +1,102 @@ |
|||
'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/var/:hostname' |
|||
}) |
|||
, challenge: require('le-challenge-fs').create({ |
|||
webrootPath: '~/letsencrypt.test/var/: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 testCerts; |
|||
|
|||
var tests = [ |
|||
function () { |
|||
// TODO test that an altname also fetches the proper certificate
|
|||
return le.core.certificates.checkAsync({ |
|||
domains: testDomains |
|||
}).then(function (certs) { |
|||
if (!certs) { |
|||
throw new Error("Either certificates.registerAsync (in previous test)" |
|||
+ " or certificates.checkAsync (in this test) failed."); |
|||
} |
|||
|
|||
testCerts = certs; |
|||
console.log('Issued At', new Date(certs.issuedAt).toISOString()); |
|||
console.log('Expires At', new Date(certs.expiresAt).toISOString()); |
|||
|
|||
if (certs.expiresAt <= Date.now()) { |
|||
throw new Error("Certificates are already expired. They cannot be tested for duplicate or forced renewal."); |
|||
} |
|||
}); |
|||
} |
|||
|
|||
, function () { |
|||
return le.core.certificates.renewAsync({ |
|||
email: testEmail |
|||
, domains: testDomains |
|||
}, testCerts).then(function () { |
|||
throw new Error("Should not have renewed non-expired certificates."); |
|||
}, function (err) { |
|||
if ('E_NOT_RENEWABLE' !== err.code) { |
|||
throw err; |
|||
} |
|||
}); |
|||
} |
|||
|
|||
, function () { |
|||
return le.core.certificates.renewAsync({ |
|||
email: testEmail |
|||
, domains: testDomains |
|||
, renewWithin: 720 * 24 * 60 * 60 * 1000 |
|||
}, testCerts).then(function (certs) { |
|||
console.log('Issued At', new Date(certs.issuedAt).toISOString()); |
|||
console.log('Expires At', new Date(certs.expiresAt).toISOString()); |
|||
|
|||
if (certs.issuedAt === testCerts.issuedAt) { |
|||
throw new Error("Should not have returned existing certificates."); |
|||
} |
|||
}); |
|||
} |
|||
]; |
|||
|
|||
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) { |
|||
server.close(); |
|||
console.info('All tests passed'); |
|||
return; |
|||
} |
|||
|
|||
test().then(next, function (err) { |
|||
console.error('ERROR'); |
|||
console.error(err.stack); |
|||
server.close(); |
|||
}); |
|||
} |
|||
|
|||
next(); |
|||
}); |
|||
} |
|||
|
|||
run(); |
Loading…
Reference in new issue