mail: move dkim keys into the database
This commit is contained in:
@@ -15,7 +15,13 @@ const common = require('./common.js'),
|
||||
describe('Mail API', function () {
|
||||
const { setup, cleanup, serverUrl, owner, dashboardDomain } = common;
|
||||
|
||||
before(setup);
|
||||
let publicKey;
|
||||
before(async () => {
|
||||
await setup();
|
||||
const d = await mail.getDomain(dashboardDomain);
|
||||
publicKey = d.dkimKey.publicKey.split('\n').slice(1, -2).join(''); // remove header, footer and new lines
|
||||
});
|
||||
|
||||
after(cleanup);
|
||||
|
||||
describe('crud', function () {
|
||||
@@ -111,7 +117,7 @@ describe('Mail API', function () {
|
||||
expect(response.body.dns.dkim.domain).to.eql(dkimDomain);
|
||||
expect(response.body.dns.dkim.type).to.eql('TXT');
|
||||
expect(response.body.dns.dkim.value).to.eql(null);
|
||||
expect(response.body.dns.dkim.expected).to.eql('v=DKIM1; t=s; p=' + mail._readDkimPublicKeySync(dashboardDomain));
|
||||
expect(response.body.dns.dkim.expected).to.eql('v=DKIM1; t=s; p=' + publicKey);
|
||||
expect(response.body.dns.dkim.status).to.eql(false);
|
||||
|
||||
expect(response.body.dns.spf).to.be.an('object');
|
||||
@@ -159,7 +165,7 @@ describe('Mail API', function () {
|
||||
expect(response.body.dns.spf.value).to.eql(null);
|
||||
|
||||
expect(response.body.dns.dkim).to.be.an('object');
|
||||
expect(response.body.dns.dkim.expected).to.eql('v=DKIM1; t=s; p=' + mail._readDkimPublicKeySync(dashboardDomain));
|
||||
expect(response.body.dns.dkim.expected).to.eql('v=DKIM1; t=s; p=' + publicKey);
|
||||
expect(response.body.dns.dkim.status).to.eql(false);
|
||||
expect(response.body.dns.dkim.value).to.eql(null);
|
||||
|
||||
@@ -184,7 +190,7 @@ describe('Mail API', function () {
|
||||
|
||||
dnsAnswerQueue[mxDomain].MX = [ { priority: '20', exchange: settings.mailFqdn() }, { priority: '10', exchange: 'some.other.server' } ];
|
||||
dnsAnswerQueue[dmarcDomain].TXT = [['v=DMARC2; p=reject; pct=100']];
|
||||
dnsAnswerQueue[dkimDomain].TXT = [['v=DKIM2; t=s; p=' + mail._readDkimPublicKeySync(dashboardDomain)]];
|
||||
dnsAnswerQueue[dkimDomain].TXT = [['v=DKIM2; t=s; p=' + publicKey]];
|
||||
dnsAnswerQueue[spfDomain].TXT = [['v=spf1 a:random.com ~all']];
|
||||
|
||||
const response = await superagent.get(`${serverUrl}/api/v1/mail/${dashboardDomain}` + '/status')
|
||||
@@ -198,9 +204,9 @@ describe('Mail API', function () {
|
||||
expect(response.body.dns.spf.value).to.eql('v=spf1 a:random.com ~all');
|
||||
|
||||
expect(response.body.dns.dkim).to.be.an('object');
|
||||
expect(response.body.dns.dkim.expected).to.eql('v=DKIM1; t=s; p=' + mail._readDkimPublicKeySync(dashboardDomain));
|
||||
expect(response.body.dns.dkim.expected).to.eql('v=DKIM1; t=s; p=' + publicKey);
|
||||
expect(response.body.dns.dkim.status).to.eql(true); // as long as p= matches we are good
|
||||
expect(response.body.dns.dkim.value).to.eql('v=DKIM2; t=s; p=' + mail._readDkimPublicKeySync(dashboardDomain));
|
||||
expect(response.body.dns.dkim.value).to.eql('v=DKIM2; t=s; p=' + publicKey);
|
||||
|
||||
expect(response.body.dns.dmarc).to.be.an('object');
|
||||
expect(response.body.dns.dmarc.expected).to.eql('v=DMARC1; p=reject; pct=100');
|
||||
@@ -259,7 +265,7 @@ describe('Mail API', function () {
|
||||
|
||||
dnsAnswerQueue[mxDomain].MX = [ { priority: '10', exchange: settings.mailFqdn() } ];
|
||||
dnsAnswerQueue[dmarcDomain].TXT = [['v=DMARC1; p=reject; pct=100']];
|
||||
dnsAnswerQueue[dkimDomain].TXT = [['v=DKIM1; t=s; p=', mail._readDkimPublicKeySync(dashboardDomain) ]];
|
||||
dnsAnswerQueue[dkimDomain].TXT = [['v=DKIM1; t=s; p=', publicKey ]];
|
||||
dnsAnswerQueue[spfDomain].TXT = [['v=spf1 a:' + settings.dashboardFqdn() + ' ~all']];
|
||||
|
||||
const response = await superagent.get(`${serverUrl}/api/v1/mail/${dashboardDomain}` + '/status')
|
||||
@@ -270,8 +276,8 @@ describe('Mail API', function () {
|
||||
expect(response.body.dns.dkim).to.be.an('object');
|
||||
expect(response.body.dns.dkim.domain).to.eql(dkimDomain);
|
||||
expect(response.body.dns.dkim.type).to.eql('TXT');
|
||||
expect(response.body.dns.dkim.value).to.eql('v=DKIM1; t=s; p=' + mail._readDkimPublicKeySync(dashboardDomain));
|
||||
expect(response.body.dns.dkim.expected).to.eql('v=DKIM1; t=s; p=' + mail._readDkimPublicKeySync(dashboardDomain));
|
||||
expect(response.body.dns.dkim.value).to.eql('v=DKIM1; t=s; p=' + publicKey);
|
||||
expect(response.body.dns.dkim.expected).to.eql('v=DKIM1; t=s; p=' + publicKey);
|
||||
expect(response.body.dns.dkim.status).to.eql(true);
|
||||
|
||||
expect(response.body.dns.spf).to.be.an('object');
|
||||
|
||||
Reference in New Issue
Block a user