From 03996bac8763e095df64bf59dea8b23518507988 Mon Sep 17 00:00:00 2001 From: Juan Perata Date: Thu, 18 Oct 2018 09:30:06 -0500 Subject: [PATCH] Send friendly message on virtual device error, log error to bst-debug --- ...nt-echo-test.ts => virtual-device-test.ts} | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) rename test/external/{silent-echo-test.ts => virtual-device-test.ts} (85%) diff --git a/test/external/silent-echo-test.ts b/test/external/virtual-device-test.ts similarity index 85% rename from test/external/silent-echo-test.ts rename to test/external/virtual-device-test.ts index d721c1b2..f77eb545 100644 --- a/test/external/silent-echo-test.ts +++ b/test/external/virtual-device-test.ts @@ -47,6 +47,29 @@ describe("VirtualDeviceClient", function() { } }); + it("Throws error if error is sent", async function () { + const globalClone = Object.assign({}, globalModule); + globalClone.Global.config = function () { + return { + virtualDeviceToken: () => "Token", + updateVirtualDeviceToken: () => { + }, + }; + }; + + mockery.registerMock("../core/global", globalClone); + mockery.registerMock("virtual-device-sdk", { + VirtualDevice: ExceptionThrowingVirtualDevice, + }); + + const VirtualDeviceClient = require("../../lib/external/virtual-device").VirtualDeviceClient; + try { + await VirtualDeviceClient.speak("Hello world"); + } catch (error) { + assert.equal(error.message, "Something broke"); + } + }); + it("Works when token exists on config", async function () { const globalClone = Object.assign({}, globalModule); @@ -177,3 +200,13 @@ class VirtualDevice { messageParam = utterance; } } + +class ExceptionThrowingVirtualDevice { + public constructor(token: string) { + constructorToken = token; + } + + public message = (utterance: string) => { + throw new Error("Something broke"); + } +}