/* * @license * Copyright 2018 Brigham Young University * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import * as AWS from 'aws-sdk'; import { expect } from 'chai'; import 'mocha'; import * as sinon from 'sinon'; import * as lambdaCalls from '../../src/aws/lambda-calls'; describe('lambda calls module', () => { let sandbox: sinon.SinonSandbox; beforeEach(async () => { sandbox = sinon.sandbox.create(); }); afterEach(() => { sandbox.restore(); }); describe('getSecurityGroupsByNameTag', () => { let invokeStub: sinon.SinonStub; beforeEach(() => { invokeStub = sandbox.stub(); sandbox.stub(AWS, 'Lambda').returns({ invoke: () => ({ promise: invokeStub }) }); }); it('should call the lambda and return the repsonse', async () => { invokeStub.resolves({ Payload: '{}' }); const response = await lambdaCalls.invokeLambda('FakeFunction', {}); expect(invokeStub.callCount).to.equal(1); expect(response).to.deep.equal({}); }); it('should call the lambda and return undefined if no response came back', async () => { invokeStub.resolves({}); const response = await lambdaCalls.invokeLambda('FakeFunction', {}); expect(invokeStub.callCount).to.equal(1); expect(response).to.equal(undefined); }); }); });