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); | ||||||
|  | |||||||
							
								
								
									
										102
									
								
								tests/renew-certificate.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								tests/renew-certificate.js
									
									
									
									
									
										Normal file
									
								
							| @ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user