'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 }); //var testId = Math.round(Date.now() / 1000).toString(); var testId = 'test1000'; var fakeEmail = 'coolaj86+le.' + testId + '@example.com'; var testEmail = 'coolaj86+le.' + testId + '@gmail.com'; var testAccount; var tests = [ function () { return le.core.accounts.checkAsync({ email: testEmail }).then(function (account) { if (account) { console.error(account); throw new Error("Test account should not exist."); } }); } , function () { return le.core.accounts.registerAsync({ email: testEmail , agreeTos: false , rsaKeySize: 2048 }).then(function (/*account*/) { throw new Error("Should not register if 'agreeTos' is not truthy."); }, function (err) { if (err.code !== 'E_ARGS') { throw err; } }); } , function () { return le.core.accounts.registerAsync({ email: testEmail , agreeTos: true , rsaKeySize: 1024 }).then(function (/*account*/) { throw new Error("Should not register if 'rsaKeySize' is less than 2048."); }, function (err) { if (err.code !== 'E_ARGS') { throw err; } }); } , function () { return le.core.accounts.registerAsync({ email: fakeEmail , agreeTos: true , rsaKeySize: 2048 }).then(function (/*account*/) { // TODO test mx record throw new Error("Registration should NOT succeed with a bad email address."); }, function (err) { if (err.code !== 'E_EMAIL') { throw err; } }); } , function () { return le.core.accounts.registerAsync({ email: testEmail , agreeTos: true , rsaKeySize: 2048 }).then(function (account) { testAccount = account; console.log(testEmail); console.log(testAccount); if (!account) { throw new Error("Registration should always return a new account."); } if (!account.email) { throw new Error("Registration should return the email."); } if (!account.id) { throw new Error("Registration should return the account id."); } }); } ]; function run() { var test = tests.shift(); if (!test) { console.info('All tests passed'); return; } test().then(run); } run();