briareus
Version:
Briareus assists with Feature Branch deploys to ECS
81 lines (68 loc) • 1.9 kB
JavaScript
const expect = require('expect.js');
const AWS = require('aws-sdk-mock');
const helpers = require('../../helpers');
const AlbListener = require('../../../lib/service/recon/alb-listener');
describe('Recon:AlbListener', function () {
afterEach(helpers.afterEach);
it('should discover HTTPS listener on loadbalancer', function (done) {
let albArn = 'arn:alb:1';
let listenerArn = 'arn:listener:2';
let payload = {
slug: 'my-branch',
alb: {
arn: albArn
},
};
AWS.mock('ELBv2', 'describeListeners', function (params, cb) {
expect(params.LoadBalancerArn).to.equal(payload.alb.arn);
cb(null, {
Listeners: [
{
ListenerArn: 'arn:listener:1',
LoadBalancerArn: albArn,
Port: 80,
Protocol: 'HTTP'
},
{
ListenerArn: listenerArn,
LoadBalancerArn: albArn,
Port: 443,
Protocol: 'HTTPS'
}
]
});
});
AlbListener(payload, (err, patches) => {
expect(err).to.equal(null);
expect(patches[0]).to.eql({ op: 'add', path: '/alb/listenerArn', value: listenerArn });
done();
});
});
it('should return error if no HTTPS listener can be found', function (done) {
let albArn = 'arn:alb:1';
let payload = {
slug: 'my-branch',
alb: {
arn: albArn
},
};
AWS.mock('ELBv2', 'describeListeners', function (params, cb) {
expect(params.LoadBalancerArn).to.equal(payload.alb.arn);
cb(null, {
Listeners: [
{
ListenerArn: 'arn:listener:1',
LoadBalancerArn: albArn,
Port: 80,
Protocol: 'HTTP'
}
]
});
});
AlbListener(payload, (err, patches) => {
expect(err).to.not.equal(null);
done();
});
});
});