briareus
Version:
Briareus assists with Feature Branch deploys to ECS
53 lines (44 loc) • 1.75 kB
JavaScript
const expect = require('expect.js');
const AWS = require('aws-sdk-mock');
const helpers = require('../../helpers');
const CreateEcsService = require('../../../lib/service/actions/create-ecs-service');
describe('Action:CreateEcsService', function () {
afterEach(helpers.afterEach);
it('should create ecs service', function (done) {
let serviceArn = 'arn:ecs:service:1';
let payload = {
name: 'briareus-variant',
slug: 'my-branch',
ecsClusterArn: 'arn:ecs:cluster:1',
webContainerName: 'app',
webContainerPort: '3000',
assets: {
targetGroup: { arn: 'arn:target-group:1' },
placeholderTaskDefinition: { arn: 'arn:ecs:task-definition:1' }
},
healthcheck: {
gracePeriod: 60
}
};
AWS.mock('ECS', 'createService', function (params, cb) {
expect(params.cluster).to.equal(payload.ecsClusterArn);
expect(params.serviceName).to.equal(payload.name);
expect(params.taskDefinition).to.equal(payload.assets.placeholderTaskDefinition.arn);
expect(params.healthCheckGracePeriodSeconds).to.equal(payload.healthcheck.gracePeriod);
expect(params.loadBalancers[0].containerName).to.equal(payload.webContainerName);
expect(params.loadBalancers[0].containerPort).to.equal(payload.webContainerPort);
expect(params.loadBalancers[0].targetGroupArn).to.equal(payload.assets.targetGroup.arn);
cb(null, {
service: {
serviceArn: serviceArn
}
});
});
CreateEcsService({}, payload, (err, patches) => {
expect(err).to.equal(null);
expect(patches[0]).to.eql({ op: 'add', path: '/assets/ecsService', value: { arn: serviceArn } });
done();
})
});
});