From 8b67c676fafa99a94bf767473d3a57b3bbbf756b Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Wed, 2 Aug 2023 16:46:30 +0200 Subject: [PATCH] feat(workflow): Add pipe tests (#4675) * feat(workflow): Add pipe tests * improve tests --- .../src/helper/__tests__/pipe.spec.ts | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 packages/workflows/src/helper/__tests__/pipe.spec.ts diff --git a/packages/workflows/src/helper/__tests__/pipe.spec.ts b/packages/workflows/src/helper/__tests__/pipe.spec.ts new file mode 100644 index 0000000000..8a7712d6c8 --- /dev/null +++ b/packages/workflows/src/helper/__tests__/pipe.spec.ts @@ -0,0 +1,48 @@ +import { pipe } from "../pipe" + +describe("Pipe", function () { + it("should evaluate the input object and append the values to the data object and return the result from the handler", async function () { + const payload = { input: "input" } + const output = { test: "test" } + const invoke = { + input: payload, + step1: { ...payload, step1Data: { test: "test" } }, + step2: { ...payload, step2Data: { test: "test" } }, + } + + const handler = jest.fn().mockImplementation(async () => output) + const input = { + inputAlias: "payload", + invoke: [ + { + from: "payload", + alias: "input", + }, + { + from: "step1", + alias: "previousDataStep1", + }, + { + from: "step2", + alias: "previousDataStep2", + }, + ], + } + + const result = await pipe(input, handler)({ invoke, payload } as any) + + expect(handler).toHaveBeenCalled() + expect(handler).toHaveBeenCalledWith( + expect.objectContaining({ + data: { + input: payload, + previousDataStep1: invoke.step1, + previousDataStep2: invoke.step2, + }, + }) + ) + + expect(result).toBeDefined() + expect(result).toEqual(output) + }) +})