118 lines
2.9 KiB
JavaScript
118 lines
2.9 KiB
JavaScript
'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/'
|
|
})
|
|
});
|
|
|
|
var testId = Math.round(Date.now() / 1000).toString();
|
|
var fakeEmail = 'coolaj86+le.' + testId + '@example.com';
|
|
var testEmail = 'coolaj86+le.' + testId + '@example.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 () {
|
|
throw new Error('NOT IMPLEMENTED');
|
|
return le.core.accounts.registerAsync({
|
|
email: 'coolaj86+le.' + testId + '@example.com'
|
|
, agreeTos: true
|
|
, rsaKeySize: 2048
|
|
}).then(function (account) {
|
|
testAccount = account;
|
|
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 () {
|
|
return le.core.accounts.checkAsync({
|
|
email: testAccount.email
|
|
}).then(function (account) {
|
|
if (!account) {
|
|
throw new Error("Test account should exist when searched by email.");
|
|
}
|
|
});
|
|
}
|
|
, function () {
|
|
return le.core.accounts.checkAsync({
|
|
accountId: testAccount.id
|
|
}).then(function (account) {
|
|
if (!account) {
|
|
throw new Error("Test account should exist when searched by account id.");
|
|
}
|
|
});
|
|
}
|
|
];
|
|
|
|
function run() {
|
|
var test = tests.shift();
|
|
if (!test) {
|
|
console.info('All tests passed');
|
|
return;
|
|
}
|
|
|
|
test().then(run);
|
|
}
|
|
|
|
run();
|