mail: make status a tristate
status can be 'passed', 'failed' or 'skipped'. The motivation for this change is that when using a relay, we can provide a message indicating why the check was skipped.
This commit is contained in:
@@ -114,32 +114,32 @@ describe('Mail API', function () {
|
||||
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=${publicKey}`);
|
||||
expect(response.body.dns.dkim.status).to.eql(false);
|
||||
expect(response.body.dns.dkim.status).to.eql('failed');
|
||||
|
||||
expect(response.body.dns.spf).to.be.an('object');
|
||||
expect(response.body.dns.spf.domain).to.eql(spfDomain);
|
||||
expect(response.body.dns.spf.type).to.eql('TXT');
|
||||
expect(response.body.dns.spf.value).to.eql(null);
|
||||
expect(response.body.dns.spf.expected).to.eql(`v=spf1 a:${dashboardFqdn} ~all`);
|
||||
expect(response.body.dns.spf.status).to.eql(false);
|
||||
expect(response.body.dns.spf.status).to.eql('failed');
|
||||
|
||||
expect(response.body.dns.dmarc).to.be.an('object');
|
||||
expect(response.body.dns.dmarc.type).to.eql('TXT');
|
||||
expect(response.body.dns.dmarc.value).to.eql(null);
|
||||
expect(response.body.dns.dmarc.expected).to.eql('v=DMARC1; p=reject; pct=100');
|
||||
expect(response.body.dns.dmarc.status).to.eql(false);
|
||||
expect(response.body.dns.dmarc.status).to.eql('failed');
|
||||
|
||||
expect(response.body.dns.mx).to.be.an('object');
|
||||
expect(response.body.dns.mx.type).to.eql('MX');
|
||||
expect(response.body.dns.mx.value).to.eql(null);
|
||||
expect(response.body.dns.mx.expected).to.eql(`10 ${mailFqdn}.`);
|
||||
expect(response.body.dns.mx.status).to.eql(false);
|
||||
expect(response.body.dns.mx.status).to.eql('failed');
|
||||
|
||||
expect(response.body.dns.ptr4).to.be.an('object');
|
||||
expect(response.body.dns.ptr4.type).to.eql('PTR');
|
||||
// expect(response.body.ptr.value).to.eql(null); this will be anything random
|
||||
expect(response.body.dns.ptr4.expected).to.eql(mailFqdn);
|
||||
expect(response.body.dns.ptr4.status).to.eql(false);
|
||||
expect(response.body.dns.ptr4.status).to.eql('failed');
|
||||
});
|
||||
|
||||
it('succeeds with "undefined" spf, dkim, dmarc, mx, ptr records', async function () {
|
||||
@@ -157,27 +157,27 @@ describe('Mail API', function () {
|
||||
|
||||
expect(response.body.dns.spf).to.be.an('object');
|
||||
expect(response.body.dns.spf.expected).to.eql(`v=spf1 a:${dashboardFqdn} ~all`);
|
||||
expect(response.body.dns.spf.status).to.eql(false);
|
||||
expect(response.body.dns.spf.status).to.eql('failed');
|
||||
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=${publicKey}`);
|
||||
expect(response.body.dns.dkim.status).to.eql(false);
|
||||
expect(response.body.dns.dkim.status).to.eql('failed');
|
||||
expect(response.body.dns.dkim.value).to.eql(null);
|
||||
|
||||
expect(response.body.dns.dmarc).to.be.an('object');
|
||||
expect(response.body.dns.dmarc.expected).to.eql('v=DMARC1; p=reject; pct=100');
|
||||
expect(response.body.dns.dmarc.status).to.eql(false);
|
||||
expect(response.body.dns.dmarc.status).to.eql('failed');
|
||||
expect(response.body.dns.dmarc.value).to.eql(null);
|
||||
|
||||
expect(response.body.dns.mx).to.be.an('object');
|
||||
expect(response.body.dns.mx.status).to.eql(false);
|
||||
expect(response.body.dns.mx.status).to.eql('failed');
|
||||
expect(response.body.dns.mx.expected).to.eql(`10 ${mailFqdn}.`);
|
||||
expect(response.body.dns.mx.value).to.eql(null);
|
||||
|
||||
expect(response.body.dns.ptr4).to.be.an('object');
|
||||
expect(response.body.dns.ptr4.expected).to.eql(mailFqdn);
|
||||
expect(response.body.dns.ptr4.status).to.eql(false);
|
||||
expect(response.body.dns.ptr4.status).to.eql('failed');
|
||||
// expect(response.body.ptr.value).to.eql(null); this will be anything random
|
||||
});
|
||||
|
||||
@@ -196,27 +196,27 @@ describe('Mail API', function () {
|
||||
|
||||
expect(response.body.dns.spf).to.be.an('object');
|
||||
expect(response.body.dns.spf.expected).to.eql(`v=spf1 a:${dashboardFqdn} a:random.com ~all`);
|
||||
expect(response.body.dns.spf.status).to.eql(false);
|
||||
expect(response.body.dns.spf.status).to.eql('failed');
|
||||
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=' + publicKey);
|
||||
expect(response.body.dns.dkim.status).to.eql(true); // as long as p= matches we are good
|
||||
expect(response.body.dns.dkim.status).to.eql('passed'); // as long as p= matches we are good
|
||||
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');
|
||||
expect(response.body.dns.dmarc.status).to.eql(false);
|
||||
expect(response.body.dns.dmarc.status).to.eql('failed');
|
||||
expect(response.body.dns.dmarc.value).to.eql('v=DMARC2; p=reject; pct=100');
|
||||
|
||||
expect(response.body.dns.mx).to.be.an('object');
|
||||
expect(response.body.dns.mx.status).to.eql(true);
|
||||
expect(response.body.dns.mx.status).to.eql('passed');
|
||||
expect(response.body.dns.mx.expected).to.eql(`10 ${mailFqdn}.`);
|
||||
expect(response.body.dns.mx.value).to.eql(`20 ${mailFqdn}. 10 some.other.server.`);
|
||||
|
||||
expect(response.body.dns.ptr4).to.be.an('object');
|
||||
expect(response.body.dns.ptr4.expected).to.eql(mailFqdn);
|
||||
expect(response.body.dns.ptr4.status).to.eql(false);
|
||||
expect(response.body.dns.ptr4.status).to.eql('failed');
|
||||
// expect(response.body.ptr.value).to.eql(null); this will be anything random
|
||||
|
||||
expect(response.body.relay).to.be.an('object');
|
||||
@@ -237,7 +237,7 @@ describe('Mail API', function () {
|
||||
expect(response.body.dns.spf.type).to.eql('TXT');
|
||||
expect(response.body.dns.spf.value).to.eql(`v=spf1 a:example.com a:${mailFqdn} ~all`);
|
||||
expect(response.body.dns.spf.expected).to.eql(`v=spf1 a:example.com a:${mailFqdn} ~all`);
|
||||
expect(response.body.dns.spf.status).to.eql(true);
|
||||
expect(response.body.dns.spf.status).to.eql('passed');
|
||||
});
|
||||
|
||||
it('succeeds with modified DMARC1 values', async function () {
|
||||
@@ -252,7 +252,7 @@ describe('Mail API', function () {
|
||||
|
||||
expect(response.body.dns.dmarc).to.be.an('object');
|
||||
expect(response.body.dns.dmarc.expected).to.eql('v=DMARC1; p=reject; pct=100');
|
||||
expect(response.body.dns.dmarc.status).to.eql(true);
|
||||
expect(response.body.dns.dmarc.status).to.eql('passed');
|
||||
expect(response.body.dns.dmarc.value).to.eql('v=DMARC1; p=reject; rua=mailto:rua@example.com; pct=100');
|
||||
});
|
||||
|
||||
@@ -274,22 +274,22 @@ describe('Mail API', function () {
|
||||
expect(response.body.dns.dkim.type).to.eql('TXT');
|
||||
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.dkim.status).to.eql('passed');
|
||||
|
||||
expect(response.body.dns.spf).to.be.an('object');
|
||||
expect(response.body.dns.spf.domain).to.eql(spfDomain);
|
||||
expect(response.body.dns.spf.type).to.eql('TXT');
|
||||
expect(response.body.dns.spf.value).to.eql(`v=spf1 a:${dashboardFqdn} ~all`);
|
||||
expect(response.body.dns.spf.expected).to.eql(`v=spf1 a:${dashboardFqdn} ~all`);
|
||||
expect(response.body.dns.spf.status).to.eql(true);
|
||||
expect(response.body.dns.spf.status).to.eql('passed');
|
||||
|
||||
expect(response.body.dns.dmarc).to.be.an('object');
|
||||
expect(response.body.dns.dmarc.expected).to.eql('v=DMARC1; p=reject; pct=100');
|
||||
expect(response.body.dns.dmarc.status).to.eql(true);
|
||||
expect(response.body.dns.dmarc.status).to.eql('passed');
|
||||
expect(response.body.dns.dmarc.value).to.eql('v=DMARC1; p=reject; pct=100');
|
||||
|
||||
expect(response.body.dns.mx).to.be.an('object');
|
||||
expect(response.body.dns.mx.status).to.eql(true);
|
||||
expect(response.body.dns.mx.status).to.eql('passed');
|
||||
expect(response.body.dns.mx.expected).to.eql(`10 ${mailFqdn}.`);
|
||||
expect(response.body.dns.mx.value).to.eql(`10 ${mailFqdn}.`);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user