briareus
Version:
Briareus assists with Feature Branch deploys to ECS
78 lines (69 loc) • 2.09 kB
JavaScript
const expect = require('expect.js');
const AWS = require('aws-sdk-mock');
const helpers = require('../../helpers');
const DestroyDNSRecords = require('../../../lib/service/actions/destroy-dns-records');
describe('Action:DestroyDNSRecords', function () {
afterEach(helpers.afterEach);
it('should destroy all dns records', function (done) {
let payload = {
hostedZoneId: '444',
uuid: 'uuid',
assets: {
dnsRecords: [
{
Name: 'verification-record.briareus.',
ResourceRecords: [
{
Value: 'x.aws.'
}
],
TTL: 60,
Type: 'CNAME'
},
{
AliasTarget: {
DNSName: "x.elb.amazonaws.com",
EvaluateTargetHealth: false,
HostedZoneId: "xyz"
},
Name: "x.briareus.",
Type: "A"
}
],
},
};
AWS.mock('Route53', 'changeResourceRecordSets', function (params, cb) {
expect(params.HostedZoneId).to.equal(payload.hostedZoneId);
expect(params.ChangeBatch.Changes.length).to.equal(2);
const changeSet = params.ChangeBatch.Changes[0];
expect(changeSet.Action).to.equal('DELETE');
expect(changeSet.ResourceRecordSet.Type).to.equal('CNAME');
cb(null, {});
});
DestroyDNSRecords({}, payload, (err, patches) => {
expect(err).to.equal(null);
expect(patches).to.eql([
{ op: 'add', path: '/assets/dnsRecords', value: [] }
]);
done();
})
});
it('should not try to delete dns records when there are none to delete', function (done) {
let payload = {
hostedZoneId: '444',
uuid: 'uuid',
assets: {
dnsRecords: [],
},
};
AWS.mock('Route53', 'changeResourceRecordSets', function (params, cb) {
expect(true).to.equal(false);
});
DestroyDNSRecords({}, payload, (err, patches) => {
expect(err).to.equal(null);
expect(patches.length).to.equal(0);
done();
})
});
});