@incdevco/framework
Version:
node.js lambda framework
146 lines (81 loc) • 2.83 kB
JavaScript
var Expect = require('chai').expect;
var Mock = require('../../mock');
var sinon = require('sinon');
var Lambda = require('./index');
var sandbox = sinon.sandbox.create();
describe('lambda cognito-sync', function () {
'use strict';
var config, lambda, mock;
beforeEach(function () {
config = {};
lambda = new Lambda(config);
mock = new Mock();
sandbox.stub(lambda, 'log');
});
afterEach(function() {
sandbox.verifyAndRestore();
});
describe('handler', function() {
it('should', function (done) {
var context, event, expected;
context = {
fail: done,
succeed: function (result) {
Expect(result).to.deep.equal(expected, 'result');
mock.done(done);
}
};
event = require('./example-event.json');
expected = JSON.parse(JSON.stringify(event));
expected.datasetRecords.test = {
newValue: 'edited',
op: 'replace'
};
lambda.register('datasetName', function (event) {
event.datasetRecords.test = expected.datasetRecords.test;
return true;
});
lambda.handler(event, context);
});
it('should resolve if no handler for dataset', function (done) {
var context, event, expected;
context = {
fail: done,
succeed: function (result) {
Expect(result).to.deep.equal(expected, 'result');
mock.done(done);
}
};
event = require('./example-event.json');
expected = JSON.parse(JSON.stringify(event));
lambda.handler(event, context);
});
it('should catch any exception thrown by handler', function (done) {
var context, event, expected;
context = {
succeed: done,
fail: function (exception) {
Expect(exception).to.deep.equal(expected, 'exception');
mock.done(done);
}
};
event = require('./example-event.json');
expected = new Error('expected');
lambda.register('datasetName', function (event) {
throw expected;
});
lambda.handler(event, context);
});
});
describe('register', function() {
it('should', function () {
var dataset = 'dataset';
var handler = 'handler';
lambda.register(dataset, handler);
Expect(lambda.handlers[dataset]).to.equal(handler, 'handler');
});
});
afterEach(function () {
mock.restore();
});
});