icinga-aws-autoscaling
Version:
Dynamic management of AWS Auto-Scaling Group inventory in Icinga.
56 lines (47 loc) • 1.8 kB
JavaScript
;
const expect = require('chai').expect;
const eventParser = require('../../../lib/event_parser');
describe('Event Parser', () => {
it('should return null due to invalid event payload', () => {
const eventObjects = [
undefined,
{ missing_Records: 5 },
{ Records: [] },
{ Records: [ { missing_Sns: 'blah' } ] },
{ Records: [ { Sns: { missing_Message: 1.4 } } ] }
];
for (let event of eventObjects) {
expect(eventParser(event)).to.equal(null);
}
});
it('should return null due to invalid event message payload', () => {
const eventObjects = [
{ Records: [ { Sns: { Message: '{ "missing_Event": true }' } } ] },
{ Records: [ { Sns: { Message: '{ "missing_Details": 12 }' } } ] },
{ Records: [ { Sns: { Message: '{ "missing_EC2InstanceId": "eleventy five" }' } } ] },
{ Records: [ { Sns: { Message: '{ "Details": { "Missing Availability Zone": "yeppers" } }' } } ] }
];
for ( let event of eventObjects) {
expect(eventParser(event)).to.equal(null);
}
});
it('should return valid message body with all properties', () => {
const expectedMessageBody = {
Event: 'autoscaling:EC2_INSTANCE_LAUNCH',
Details: {
'Availability Zone': 'us-west-2'
},
EC2InstanceId: 'i-294848282821'
};
const event = {
Records: [
{
Sns: {
Message: JSON.stringify(expectedMessageBody)
}
}
]
};
expect(eventParser(event)).to.deep.equal(expectedMessageBody);
});
});