briareus
Version:
Briareus assists with Feature Branch deploys to ECS
47 lines (38 loc) • 1.6 kB
JavaScript
const expect = require('expect.js');
const AWS = require('aws-sdk-mock');
const helpers = require('../../helpers');
const CreatePlaceholderEcsTaskDefinition = require('../../../lib/service/actions/create-placeholder-ecs-task-definition');
describe('Action:CreatePlaceholderEcsTaskDefinition', function () {
afterEach(helpers.afterEach);
it('should create a placeholder ecs task definition', function (done) {
let taskDefinitionArn = 'arn:task-definition:44'
let payload = {
name: 'briareus-variant',
slug: 'my-branch',
webContainerName: 'app',
webContainerPort: 3000,
};
AWS.mock('ECS', 'registerTaskDefinition', function (params, cb) {
expect(params.family).to.equal(payload.name);
let container = params.containerDefinitions[0];
expect(container.name).to.equal(payload.webContainerName);
expect(container.portMappings[0].containerPort).to.equal(payload.webContainerPort);
expect(container.environment[0]).to.eql({
name: 'PLACEHOLDER_PORT',
value: `${payload.webContainerPort}`
});
cb(null, {
taskDefinition: {
taskDefinitionArn: taskDefinitionArn
}
});
});
CreatePlaceholderEcsTaskDefinition({}, payload, (err, patches) => {
expect(err).to.equal(null);
expect(patches[0]).to.eql({ op: 'add', path: '/assets/placeholderTaskDefinition', value: { arn: taskDefinitionArn } });
expect(patches[1]).to.eql({ op: 'add', path: '/assets/taskDefinitions/-', value: { arn: taskDefinitionArn } });
done();
})
});
});