UNPKG

briareus

Version:

Briareus assists with Feature Branch deploys to ECS

82 lines (69 loc) 2.07 kB
'use strict' const expect = require('expect.js'); const AWS = require('aws-sdk-mock'); const _ = require('lodash'); const helpers = require('../../helpers'); const CreateAlbRule = require('../../../lib/service/actions/create-alb-rule'); describe('Action:AddAlbRule', function () { afterEach(helpers.afterEach); let host = 'build.bugcrowd.engineering'; let targetGroupArn = 'arn:target-group:1'; let albListenerArn = 'arn:alb:listener:1'; let albRuleArn = 'arn:alb:rule:1'; let payloadData = { slug: 'my-branch', alb: { listenerArn: albListenerArn, }, assets: { targetGroup: { arn: targetGroupArn }, } } it('should add rule to ALB listener', function (done) { AWS.mock('ELBv2', 'createRule', function (params, cb) { expect(params.Actions[0].TargetGroupArn).to.equal(targetGroupArn); expect(params.Conditions[0].Values[0]).to.equal(`*${host}`); expect(params.ListenerArn).to.equal(albListenerArn); expect(params.Priority).to.be.a('number'); cb(null, { Rules: [ { RuleArn: albRuleArn } ] }); }); let payload = _.clone(payloadData); payload.endpoint = { host }; CreateAlbRule({}, payload, (err, patches) => { expect(err).to.equal(null); expect(patches[0]).to.eql({ op: 'add', path: '/assets/albRule', value: { arn: albRuleArn } }); done(); }) }); it('should select another priority if first priority is taken', function (done) { let calls = 0; AWS.mock('ELBv2', 'createRule', function (params, cb) { let err = null; if (calls === 0) { err = new Error(); err.code = 'PriorityInUse'; } calls++; cb(err, { Rules: [ { RuleArn: albRuleArn } ] }); }); let payload = _.clone(payloadData); payload.endpoint = { host }; CreateAlbRule({}, payload, (err, patches) => { expect(err).to.equal(null); expect(calls).to.equal(2); done(); }) }); });