briareus
Version:
Briareus assists with Feature Branch deploys to ECS
73 lines (62 loc) • 1.89 kB
JavaScript
const expect = require('expect.js');
const AWS = require('aws-sdk-mock');
const helpers = require('../../helpers');
const DestroySsmParameters = require('../../../lib/service/actions/destroy-ssm-parameters');
describe('Action:DestroySsmParameters', function () {
afterEach(helpers.afterEach);
it('should destroy all ssm parameters', function (done) {
let payload = {
assets: {
ssmParameters: {
a: {
arn: 'arn:parameter/briareus/x/web/API_KEY',
container: 'web',
id: 'web/API_KEY',
name: 'API_KEY',
path: '/briareus/x/web/API_KEY',
hashedId: 'a'
},
b: {
arn: 'arn:parameter/briareus/x/web/PASSWORD',
container: 'web',
id: 'web/PASSWORD',
name: 'PASSWORD',
path: '/briareus/x/web/PASSWORD',
hashedId: 'b'
}
},
},
};
AWS.mock('SSM', 'deleteParameters', function (params, cb) {
expect(params.Names).to.eql([
'/briareus/x/web/API_KEY',
'/briareus/x/web/PASSWORD'
]);
cb(null, {});
});
DestroySsmParameters({}, payload, (err, patches) => {
expect(err).to.equal(null);
expect(patches).to.eql([
{ op: 'remove', path: '/assets/ssmParameters/a' },
{ op: 'remove', path: '/assets/ssmParameters/b' }
]);
done();
})
});
it('should not try to delete parameters when there are none to delete', (done) => {
const payload = {
assets: {
ssmParameters: {}
},
};
AWS.mock('SSM', 'deleteParameters', function (params, cb) {
expect(true).to.equal(false);
});
DestroySsmParameters({}, payload, (err, patches) => {
expect(err).to.equal(null);
expect(patches.length).to.equal(0);
done();
});
});
});