From bce8472c3b5eb7dc7b1ccdb1e61b8e1edb2e93cd Mon Sep 17 00:00:00 2001 From: Wisen Tanasa Date: Thu, 6 Jun 2019 06:07:10 +0100 Subject: [PATCH] GH-47 Make acceptance test consistently green --- .../acceptance-test/acceptance.spec.js | 11 ++++++++--- .../laconia-acceptance-test/src/WebSocketClient.js | 2 +- .../src/update-user-receipt.js | 8 +++++--- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/laconia-acceptance-test/acceptance-test/acceptance.spec.js b/packages/laconia-acceptance-test/acceptance-test/acceptance.spec.js index e3029dfa..18693c82 100644 --- a/packages/laconia-acceptance-test/acceptance-test/acceptance.spec.js +++ b/packages/laconia-acceptance-test/acceptance-test/acceptance.spec.js @@ -90,7 +90,6 @@ class WebSocketOrderMessenger { _waitForMessage(messageType) { return new Promise((resolve, reject) => { const timeout = setTimeout(() => { - this.ws.close(); reject( new Error(`Did not get any ${messageType} message from web socket`) ); @@ -104,7 +103,6 @@ class WebSocketOrderMessenger { this.ws.on("error", err => { console.log("websocket error", err); clearTimeout(timeout); - this.ws.close(); reject(err); }); }); @@ -120,6 +118,9 @@ class WebSocketOrderMessenger { orderReceived() { this.ws.send(JSON.stringify({ message: "order received" })); + } + + close() { this.ws.close(); } } @@ -192,6 +193,10 @@ describe("order flow", () => { orderMessagePromise = orderMessenger.waitForOrderAcceptedMessage(); }); + afterAll(() => { + orderMessenger.close(); + }); + describe("happy path", () => { it("should store all placed orders in Order Table", async () => { Object.keys(orderMap).forEach(async orderId => { @@ -224,7 +229,7 @@ describe("order flow", () => { expect(JSON.parse(thankYouMessage).message).toEqual( "thank you for your order" ); - }, 20000); + }, 10000); it("should capture all card payments", async () => { await laconiaTest(name("process-card-payments")).fireAndForget(); diff --git a/packages/laconia-acceptance-test/src/WebSocketClient.js b/packages/laconia-acceptance-test/src/WebSocketClient.js index 5c15787d..c8aed119 100644 --- a/packages/laconia-acceptance-test/src/WebSocketClient.js +++ b/packages/laconia-acceptance-test/src/WebSocketClient.js @@ -14,7 +14,7 @@ module.exports = class WebSocketClient { } send(message) { - console.log("send", message, this.connectionId, message); + console.log("Sending to websocket client", this.connectionId, message); return this.client .postToConnection({ ConnectionId: this.connectionId, diff --git a/packages/laconia-acceptance-test/src/update-user-receipt.js b/packages/laconia-acceptance-test/src/update-user-receipt.js index c290aa8b..3f65eb15 100644 --- a/packages/laconia-acceptance-test/src/update-user-receipt.js +++ b/packages/laconia-acceptance-test/src/update-user-receipt.js @@ -9,12 +9,14 @@ const instances = ({ event, env }) => ({ ) }); -const app = async (messageBody, { wsClient }) => { - if (messageBody.message === "order accepted") { +const app = async (message, { wsClient }) => { + if (message.body.message === "order received") { return wsClient.send({ message: "thank you for your order" }); } }; const webSocket = adapterApi.webSocket(); -exports.handler = laconia(webSocket(app)).register(instances); +exports.handler = laconia(webSocket(app)).register(instances, { + cache: { enabled: false } +});