From 7783c69369e9c5f96f86bc02a392e3c0b6480f30 Mon Sep 17 00:00:00 2001 From: Trivikram Kamat <16024985+trivikr@users.noreply.github.com> Date: Thu, 6 Aug 2020 13:45:35 -0700 Subject: [PATCH] feat(eventstream-serde-config-resolver): simplify and add tests (#1403) --- .../jest.config.js | 5 +++++ .../src/EventStreamSerdeConfig.spec.ts | 19 ++++++++++++++++ .../src/EventStreamSerdeConfig.ts | 18 +++++++++++++++ .../src/index.ts | 22 +------------------ 4 files changed, 43 insertions(+), 21 deletions(-) create mode 100644 packages/eventstream-serde-config-resolver/jest.config.js create mode 100644 packages/eventstream-serde-config-resolver/src/EventStreamSerdeConfig.spec.ts create mode 100644 packages/eventstream-serde-config-resolver/src/EventStreamSerdeConfig.ts diff --git a/packages/eventstream-serde-config-resolver/jest.config.js b/packages/eventstream-serde-config-resolver/jest.config.js new file mode 100644 index 000000000000..a8d1c2e49912 --- /dev/null +++ b/packages/eventstream-serde-config-resolver/jest.config.js @@ -0,0 +1,5 @@ +const base = require("../../jest.config.base.js"); + +module.exports = { + ...base, +}; diff --git a/packages/eventstream-serde-config-resolver/src/EventStreamSerdeConfig.spec.ts b/packages/eventstream-serde-config-resolver/src/EventStreamSerdeConfig.spec.ts new file mode 100644 index 000000000000..c89eb402b5ac --- /dev/null +++ b/packages/eventstream-serde-config-resolver/src/EventStreamSerdeConfig.spec.ts @@ -0,0 +1,19 @@ +import { resolveEventStreamSerdeConfig } from "./EventStreamSerdeConfig"; + +describe("resolveEventStreamSerdeConfig", () => { + const eventStreamSerdeProvider = jest.fn(); + + afterEach(() => { + jest.clearAllMocks(); + }); + + it("sets value returned by eventStreamSerdeProvider", () => { + const mockReturn = "mockReturn"; + eventStreamSerdeProvider.mockReturnValueOnce(mockReturn); + + const input = { eventStreamSerdeProvider }; + expect(resolveEventStreamSerdeConfig(input).eventStreamMarshaller).toStrictEqual(mockReturn); + expect(eventStreamSerdeProvider).toHaveBeenCalledTimes(1); + expect(eventStreamSerdeProvider).toHaveBeenCalledWith(input); + }); +}); diff --git a/packages/eventstream-serde-config-resolver/src/EventStreamSerdeConfig.ts b/packages/eventstream-serde-config-resolver/src/EventStreamSerdeConfig.ts new file mode 100644 index 000000000000..0af8474173e8 --- /dev/null +++ b/packages/eventstream-serde-config-resolver/src/EventStreamSerdeConfig.ts @@ -0,0 +1,18 @@ +import { EventStreamMarshaller, EventStreamSerdeProvider } from "@aws-sdk/types"; + +export interface EventStreamSerdeInputConfig {} + +export interface EventStreamSerdeResolvedConfig { + eventStreamMarshaller: EventStreamMarshaller; +} + +interface PreviouslyResolved { + eventStreamSerdeProvider: EventStreamSerdeProvider; +} + +export const resolveEventStreamSerdeConfig = ( + input: T & PreviouslyResolved & EventStreamSerdeInputConfig +): T & EventStreamSerdeResolvedConfig => ({ + ...input, + eventStreamMarshaller: input.eventStreamSerdeProvider(input), +}); diff --git a/packages/eventstream-serde-config-resolver/src/index.ts b/packages/eventstream-serde-config-resolver/src/index.ts index f479b391e92e..515a9c61d848 100644 --- a/packages/eventstream-serde-config-resolver/src/index.ts +++ b/packages/eventstream-serde-config-resolver/src/index.ts @@ -1,21 +1 @@ -import { Decoder, Encoder, EventStreamMarshaller, EventStreamSerdeProvider } from "@aws-sdk/types"; -export interface EventStreamSerdeInputConfig {} - -export interface EventStreamSerdeResolvedConfig { - eventStreamMarshaller: EventStreamMarshaller; -} - -interface PreviouslyResolved { - utf8Encoder: Encoder; - utf8Decoder: Decoder; - eventStreamSerdeProvider: EventStreamSerdeProvider; -} - -export function resolveEventStreamSerdeConfig( - input: T & PreviouslyResolved & EventStreamSerdeInputConfig -): T & EventStreamSerdeResolvedConfig { - return { - ...input, - eventStreamMarshaller: input.eventStreamSerdeProvider({ ...input }), - }; -} +export * from "./EventStreamSerdeConfig";