Skip to content
This repository has been archived by the owner on Feb 22, 2023. It is now read-only.

Commit

Permalink
updates to use virtual-device
Browse files Browse the repository at this point in the history
  • Loading branch information
chris-ramon committed Nov 17, 2017
1 parent 2243ad2 commit 0bb3360
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 61 deletions.
8 changes: 4 additions & 4 deletions bin/bst-speak.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env node
import * as program from "commander";
import {Global} from "../lib/core/global";
import {SilentEchoClient} from "../lib/external/silent-echo";
import {VirtualDeviceClient} from "../lib/external/virtual-device";

program.version(Global.version());

Expand Down Expand Up @@ -38,9 +38,9 @@ Global.initializeCLI().then(
const options: any = program;
const token = options.token;

let silentEchoResponse;
let virtualDeviceResponse;
try {
silentEchoResponse = await SilentEchoClient.speak(utterance, token);
virtualDeviceResponse = await VirtualDeviceClient.speak(utterance, token);
} catch (error) {
if (error.message === "Token Required") {
console.log("You need a token for this option to work, get it here:");
Expand All @@ -63,7 +63,7 @@ Global.initializeCLI().then(
console.log("Your token is saved, you can now use this command without providing a token");
}

console.log(SilentEchoClient.renderResult(silentEchoResponse));
console.log(VirtualDeviceClient.renderResult(virtualDeviceResponse));
});

program.parse(process.argv);
Expand Down
10 changes: 5 additions & 5 deletions lib/client/bst-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,13 @@ export class BSTConfig {
this.commit();
}

public updateSilentEchoToken(silentEchoToken: string): void {
this.configuration.silentEchoToken = silentEchoToken;
public updateVirtualDeviceToken(virtualDeviceToken: string): void {
this.configuration.virtualDeviceToken = virtualDeviceToken;
this.commit();
}

public silentEchoToken(): string {
return this.configuration.silentEchoToken;
public virtualDeviceToken(): string {
return this.configuration.virtualDeviceToken;
}

public commit() {
Expand Down Expand Up @@ -282,4 +282,4 @@ export class BSTProcess {
// http://stackoverflow.com/questions/9080085/node-js-find-home-directory-in-platform-agnostic-way
function getUserHome(): string {
return process.env[(process.platform === "win32") ? "USERPROFILE" : "HOME"];
}
}
16 changes: 8 additions & 8 deletions lib/external/silent-echo.ts → lib/external/virtual-device.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
import {ISilentResult, SilentEcho} from "silent-echo-sdk";
import {IVirtualDeviceResult, VirtualDevice} from "virtual-device-sdk";
import {Global} from "../core/global";

export class SilentEchoClient {
public static speak(utterance: string, token?: string): Promise<ISilentResult> {
export class VirtualDeviceClient {
public static speak(utterance: string, token?: string): Promise<IVirtualDeviceResult> {
if (token) {
if (Global.config()) {
Global.config().updateSilentEchoToken(token);
Global.config().updateVirtualDeviceToken(token);
}
}

const tokenToUse = token ? token : Global.config().silentEchoToken();
const tokenToUse = token ? token : Global.config().virtualDeviceToken();

if (!tokenToUse) {
throw new Error("Token Required");
}

const silentEcho = new SilentEcho(tokenToUse);
return silentEcho.message(utterance);
const virtualDevice = new VirtualDevice(tokenToUse);
return virtualDevice.message(utterance);
}

public static renderResult(result: ISilentResult): string {
public static renderResult(result: IVirtualDeviceResult): string {
let stringResult = "";
if (result.transcript) {
stringResult = "Transcript:\n";
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"properties-reader": "0.0.15",
"request": "^2.83.0",
"request-promise-native": "^1.0.5",
"silent-echo-sdk": "^0.3.5",
"virtual-device-sdk": "^1.0.0",
"uuid": "3.0.0",
"virtual-alexa": "^0.3.8",
"winston": "^2.4.0"
Expand Down
14 changes: 7 additions & 7 deletions test/bin/bst-speak-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ describe("bst-speak", function() {
it("Send message without token warning", function() {
return new Promise((resolve, reject) => {
process.argv = command("node bst-speak.js Hello");
mockery.registerMock("../lib/external/silent-echo", {
SilentEchoClient: {
mockery.registerMock("../lib/external/virtual-device", {
VirtualDeviceClient: {
speak: function() {
return {
transcript: "Response"
Expand Down Expand Up @@ -88,8 +88,8 @@ describe("bst-speak", function() {
return new Promise((resolve, reject) => {
let tokenErrorWasPrinted = false;
process.argv = command("node bst-speak.js Hello");
mockery.registerMock("../lib/external/silent-echo", {
SilentEchoClient: {
mockery.registerMock("../lib/external/virtual-device", {
VirtualDeviceClient: {
speak: function() {
throw new Error("Token Required");
},
Expand Down Expand Up @@ -123,8 +123,8 @@ describe("bst-speak", function() {
return new Promise((resolve, reject) => {

process.argv = command("node bst-speak.js --token Token Hello");
mockery.registerMock("../lib/external/silent-echo", {
SilentEchoClient: {
mockery.registerMock("../lib/external/virtual-device", {
VirtualDeviceClient: {
speak: function() {
return {
transcript: "Response"
Expand Down Expand Up @@ -164,4 +164,4 @@ describe("bst-speak", function() {

let command = function (command: string): Array<string> {
return command.split(" ");
};
};
72 changes: 36 additions & 36 deletions test/external/silent-echo-test.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
import * as assert from "assert";
import * as mockery from "mockery";
import * as sinon from "sinon";
import {SilentEchoClient} from "../../lib/external/silent-echo";
import {VirtualDeviceClient} from "../../lib/external/virtual-device";

let messageParam: string;
let constructorToken: string;
describe("SilentEchoClient", function() {
describe("VirtualDeviceClient", function() {
let sandbox: sinon.SinonSandbox = null;

const globalModule = {
Global: {
config: function () {
return {
updateSilentEchoToken: () => {
updateVirtualDeviceToken: () => {
},
silentEchoToken: () => {
virtualDeviceToken: () => {
},
};
},
Expand All @@ -38,10 +38,10 @@ describe("SilentEchoClient", function() {

describe("Speak", function () {
it("Throws error when no token provided", async function () {
const SilentEchoClient = require("../../lib/external/silent-echo").SilentEchoClient;
const VirtualDeviceClient = require("../../lib/external/virtual-device").VirtualDeviceClient;

try {
await SilentEchoClient.speak("Hello world");
await VirtualDeviceClient.speak("Hello world");
} catch (error) {
assert.equal(error.message, "Token Required");
}
Expand All @@ -52,19 +52,19 @@ describe("SilentEchoClient", function() {
const globalClone = Object.assign({}, globalModule);
globalClone.Global.config = function () {
return {
silentEchoToken: () => "Token",
updateSilentEchoToken: () => {
virtualDeviceToken: () => "Token",
updateVirtualDeviceToken: () => {
},
};
};

mockery.registerMock("../core/global", globalClone);
mockery.registerMock("silent-echo-sdk", {
SilentEcho: SilentEcho,
mockery.registerMock("virtual-device-sdk", {
VirtualDevice: VirtualDevice,
});

const SilentEchoClient = require("../../lib/external/silent-echo").SilentEchoClient;
await SilentEchoClient.speak("Hello world");
const VirtualDeviceClient = require("../../lib/external/virtual-device").VirtualDeviceClient;
await VirtualDeviceClient.speak("Hello world");
assert.equal(constructorToken, "Token");
assert.equal(messageParam, "Hello world");
});
Expand All @@ -75,20 +75,20 @@ describe("SilentEchoClient", function() {
const globalClone = Object.assign({}, globalModule);
globalClone.Global.config = function () {
return {
silentEchoToken: () => "Token",
updateSilentEchoToken: (token?: string) => {
virtualDeviceToken: () => "Token",
updateVirtualDeviceToken: (token?: string) => {
savedToken = token;
},
};
};

mockery.registerMock("../core/global", globalClone);
mockery.registerMock("silent-echo-sdk", {
SilentEcho: SilentEcho,
mockery.registerMock("virtual-device-sdk", {
VirtualDevice: VirtualDevice,
});

const SilentEchoClient = require("../../lib/external/silent-echo").SilentEchoClient;
await SilentEchoClient.speak("Hello world", "newToken");
const VirtualDeviceClient = require("../../lib/external/virtual-device").VirtualDeviceClient;
await VirtualDeviceClient.speak("Hello world", "newToken");
assert.equal(savedToken, "newToken");
assert.equal(constructorToken, "newToken");
assert.equal(messageParam, "Hello world");
Expand All @@ -101,41 +101,41 @@ describe("SilentEchoClient", function() {
};

mockery.registerMock("../core/global", globalClone);
mockery.registerMock("silent-echo-sdk", {
SilentEcho: SilentEcho,
mockery.registerMock("virtual-device-sdk", {
VirtualDevice: VirtualDevice,
});

const SilentEchoClient = require("../../lib/external/silent-echo").SilentEchoClient;
await SilentEchoClient.speak("Hello world", "newToken");
const VirtualDeviceClient = require("../../lib/external/virtual-device").VirtualDeviceClient;
await VirtualDeviceClient.speak("Hello world", "newToken");
assert.equal(constructorToken, "newToken");
assert.equal(messageParam, "Hello world");
});
});

describe("renderResult", function () {
it("Renders Transcript correctly", function () {
const silentEchoResponse = {
const virtualDeviceResponse = {
transcript: "Transcript Text",
} as any;

let expectedRenderedResult = "Transcript:\nTranscript Text\n\n";

assert.equal(SilentEchoClient.renderResult(silentEchoResponse), expectedRenderedResult);
assert.equal(VirtualDeviceClient.renderResult(virtualDeviceResponse), expectedRenderedResult);
});

it("Renders Stream correctly", function () {
const silentEchoResponse = {
const virtualDeviceResponse = {
streamURL: "https://stream.url",
} as any;

let expectedRenderedResult = "Stream:\nhttps://stream.url\n\n";

assert.equal(SilentEchoClient.renderResult(silentEchoResponse), expectedRenderedResult);
assert.equal(VirtualDeviceClient.renderResult(virtualDeviceResponse), expectedRenderedResult);

});

describe("Renders Card correctly", function () {
const silentEchoResponse = {
const virtualDeviceResponse = {
card: {
mainTitle: "Title"
},
Expand All @@ -144,36 +144,36 @@ describe("SilentEchoClient", function() {
let expectedRenderedResult = "Card:\nTitle\n";

it("Renders Title", function () {
assert.equal(SilentEchoClient.renderResult(silentEchoResponse), expectedRenderedResult);
assert.equal(VirtualDeviceClient.renderResult(virtualDeviceResponse), expectedRenderedResult);
});

it("Renders SubTitle", function () {
silentEchoResponse.card.subTitle = "SubTitle";
virtualDeviceResponse.card.subTitle = "SubTitle";
expectedRenderedResult += "SubTitle\n";
assert.equal(SilentEchoClient.renderResult(silentEchoResponse), expectedRenderedResult);
assert.equal(VirtualDeviceClient.renderResult(virtualDeviceResponse), expectedRenderedResult);
});

it("Renders TextField", function () {
silentEchoResponse.card.textField = "TextField";
virtualDeviceResponse.card.textField = "TextField";
expectedRenderedResult += "TextField\n";
assert.equal(SilentEchoClient.renderResult(silentEchoResponse), expectedRenderedResult);
assert.equal(VirtualDeviceClient.renderResult(virtualDeviceResponse), expectedRenderedResult);
});

it("Renders ImageUrl", function () {
silentEchoResponse.card.imageURL = "http://image.url";
virtualDeviceResponse.card.imageURL = "http://image.url";
expectedRenderedResult += "http://image.url\n";
assert.equal(SilentEchoClient.renderResult(silentEchoResponse), expectedRenderedResult);
assert.equal(VirtualDeviceClient.renderResult(virtualDeviceResponse), expectedRenderedResult);
});
});
});
});

class SilentEcho {
class VirtualDevice {
public constructor(token: string) {
constructorToken = token;
}

public message = (utterance: string) => {
messageParam = utterance;
}
}
}

0 comments on commit 0bb3360

Please sign in to comment.