aboutsummaryrefslogtreecommitdiff
path: root/test/console/app
diff options
context:
space:
mode:
Diffstat (limited to 'test/console/app')
-rw-r--r--test/console/app/actions.test.ts62
-rw-r--r--test/console/app/reducer.test.ts85
2 files changed, 147 insertions, 0 deletions
diff --git a/test/console/app/actions.test.ts b/test/console/app/actions.test.ts
new file mode 100644
index 0000000..2f9dc71
--- /dev/null
+++ b/test/console/app/actions.test.ts
@@ -0,0 +1,62 @@
+import * as consoleActions from "../../../src/console/app/actions";
+import {
+ HIDE,
+ HIDE_COMMAND,
+ SHOW_COMMAND,
+ SHOW_ERROR,
+ SHOW_FIND,
+ SHOW_INFO,
+} from "../../../src/console/app/actions";
+import { expect } from "chai";
+
+import browserFake from "webextensions-api-fake";
+
+describe("console actions", () => {
+ beforeEach(() => {
+ (global as any).browser = browserFake();
+ });
+
+ describe("hide", () => {
+ it("create CONSOLE_HIDE action", () => {
+ const action = consoleActions.hide();
+ expect(action.type).to.equal(HIDE);
+ });
+ });
+ describe("showCommand", () => {
+ it("create CONSOLE_SHOW_COMMAND action", async () => {
+ const action = await consoleActions.showCommand("hello");
+ expect(action.type).to.equal(SHOW_COMMAND);
+ expect(action.text).to.equal("hello");
+ });
+ });
+
+ describe("showFind", () => {
+ it("create CONSOLE_SHOW_FIND action", () => {
+ const action = consoleActions.showFind();
+ expect(action.type).to.equal(SHOW_FIND);
+ });
+ });
+
+ describe("showError", () => {
+ it("create CONSOLE_SHOW_ERROR action", () => {
+ const action = consoleActions.showError("an error");
+ expect(action.type).to.equal(SHOW_ERROR);
+ expect(action.text).to.equal("an error");
+ });
+ });
+
+ describe("showInfo", () => {
+ it("create CONSOLE_SHOW_INFO action", () => {
+ const action = consoleActions.showInfo("an info");
+ expect(action.type).to.equal(SHOW_INFO);
+ expect(action.text).to.equal("an info");
+ });
+ });
+
+ describe("hideCommand", () => {
+ it("create CONSOLE_HIDE_COMMAND action", () => {
+ const action = consoleActions.hideCommand();
+ expect(action.type).to.equal(HIDE_COMMAND);
+ });
+ });
+});
diff --git a/test/console/app/reducer.test.ts b/test/console/app/reducer.test.ts
new file mode 100644
index 0000000..4406adc
--- /dev/null
+++ b/test/console/app/reducer.test.ts
@@ -0,0 +1,85 @@
+import { expect } from "chai";
+import reducer, { defaultState, State } from "../../../src/console/app/recuer";
+import {
+ hide,
+ hideCommand,
+ showCommand,
+ showError,
+ showFind,
+ showInfo,
+} from "../../../src/console/app/actions";
+
+describe("app reducer", () => {
+ describe("hide", () => {
+ it("switches to none mode", () => {
+ const initialState: State = {
+ ...defaultState,
+ mode: "info",
+ };
+ const nextState = reducer(initialState, hide());
+
+ expect(nextState.mode).to.be.empty;
+ });
+ });
+
+ describe("showCommand", () => {
+ it("switches to command mode with a message", () => {
+ const nextState = reducer(defaultState, showCommand("open "));
+
+ expect(nextState.mode).equals("command");
+ expect(nextState.consoleText).equals("open ");
+ });
+ });
+
+ describe("showFind", () => {
+ it("switches to find mode with a message", () => {
+ const nextState = reducer(defaultState, showFind());
+
+ expect(nextState.mode).equals("find");
+ });
+ });
+
+ describe("showError", () => {
+ it("switches to error message mode with a message", () => {
+ const nextState = reducer(defaultState, showError("error occurs"));
+
+ expect(nextState.mode).equals("error");
+ expect(nextState.messageText).equals("error occurs");
+ });
+ });
+
+ describe("showInfo", () => {
+ it("switches to info message mode with a message", () => {
+ const nextState = reducer(defaultState, showInfo("what's up"));
+
+ expect(nextState.mode).equals("info");
+ expect(nextState.messageText).equals("what's up");
+ });
+ });
+
+ describe("hideCommand", () => {
+ describe("when command mode", () => {
+ it("switches to none mode", () => {
+ const initialState: State = {
+ ...defaultState,
+ mode: "command",
+ };
+ const nextState = reducer(initialState, hideCommand());
+
+ expect(nextState.mode).to.be.empty;
+ });
+ });
+
+ describe("when info message mode", () => {
+ it("does nothing", () => {
+ const initialState: State = {
+ ...defaultState,
+ mode: "info",
+ };
+ const nextState = reducer(initialState, hideCommand());
+
+ expect(nextState.mode).equals("info");
+ });
+ });
+ });
+});