PASSES ALL TESTSgit status!
This commit is contained in:
parent
9c4b1fd43e
commit
54416f7a0b
|
@ -270,6 +270,7 @@ module.exports.create = function (le) {
|
||||||
// Certificates
|
// Certificates
|
||||||
, renewAsync: function (args, certs) {
|
, renewAsync: function (args, certs) {
|
||||||
var renewableAt = core.certificates._getRenewableAt(args, certs);
|
var renewableAt = core.certificates._getRenewableAt(args, certs);
|
||||||
|
var err;
|
||||||
//var halfLife = (certs.expiresAt - certs.issuedAt) / 2;
|
//var halfLife = (certs.expiresAt - certs.issuedAt) / 2;
|
||||||
//var renewable = (Date.now() - certs.issuedAt) > halfLife;
|
//var renewable = (Date.now() - certs.issuedAt) > halfLife;
|
||||||
|
|
||||||
|
@ -277,12 +278,14 @@ module.exports.create = function (le) {
|
||||||
log(args.debug, "(Renew) Renewable At", new Date(renewableAt).toISOString());
|
log(args.debug, "(Renew) Renewable At", new Date(renewableAt).toISOString());
|
||||||
|
|
||||||
if (!args.duplicate && Date.now() < renewableAt) {
|
if (!args.duplicate && Date.now() < renewableAt) {
|
||||||
return PromiseA.reject(new Error(
|
err = new Error(
|
||||||
"[ERROR] Certificate issued at '"
|
"[ERROR] Certificate issued at '"
|
||||||
+ new Date(certs.issuedAt).toISOString() + "' and expires at '"
|
+ new Date(certs.issuedAt).toISOString() + "' and expires at '"
|
||||||
+ new Date(certs.expiresAt).toISOString() + "'. Ignoring renewal attempt until '"
|
+ new Date(certs.expiresAt).toISOString() + "'. Ignoring renewal attempt until '"
|
||||||
+ new Date(renewableAt).toISOString() + "'. Set { duplicate: true } to force."
|
+ new Date(renewableAt).toISOString() + "'. Set { duplicate: true } to force."
|
||||||
));
|
);
|
||||||
|
err.code = 'E_NOT_RENEWABLE';
|
||||||
|
return PromiseA.reject(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Either the cert has entered its renewal period
|
// Either the cert has entered its renewal period
|
||||||
|
@ -318,7 +321,7 @@ module.exports.create = function (le) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
, _getRenewableAt: function (args, certs) {
|
, _getRenewableAt: function (args, certs) {
|
||||||
return certs.expiresAt - le.renewWithin;
|
return certs.expiresAt - (args.renewWithin || le.renewWithin);
|
||||||
}
|
}
|
||||||
, checkAsync: function (args) {
|
, checkAsync: function (args) {
|
||||||
var copy = utils.merge(args, le);
|
var copy = utils.merge(args, le);
|
||||||
|
|
|
@ -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