/** * Firehose Unit Tests */ import * as AWS from "aws-sdk-mock"; import * as Firehose from "aws-sdk/clients/firehose"; import { IDENTIFIERS } from "constant/Identifiers"; import { CONTAINER } from "infrastructure/Container"; import { IFirehoseGateway } from "repository/IFirehoseGateway"; import { createSandbox, SinonSandbox, SinonStub } from "sinon"; let gGateway: IFirehoseGateway; let gSandbox: SinonSandbox; describe("Firehose Gateway", () => { beforeEach(async () => { gSandbox = createSandbox(); const firehose_stub: SinonStub = gSandbox .stub() .callsFake( ( params: Firehose.PutRecordBatchInput, callback: (err: AWS.AWSError, data: object) => void ) => { callback(null, params); } ); AWS.mock("Firehose", "putRecordBatch", firehose_stub); gGateway = CONTAINER.get(IDENTIFIERS.FirehoseGateway); }); afterEach(() => { gSandbox.restore(); AWS.restore(); }); it("test put", (done: Mocha.Done) => { process.env.SLS_REGION = "us-east-1"; gGateway .put("ci_transfer_transaction", { test: "hi!!", test2: "hello world" }) .subscribe((data: boolean) => { data ? done() : done("this test must return true"); }, done); }); });