aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2021-04-11 22:30:41 +0900
committerShin'ya Ueoka <ueokande@i-beam.org>2021-04-11 22:34:55 +0900
commit8a5bba1da639355a25da8c279a9f1cf0a7300a9f (patch)
tree2f82e9184e2a249cff4a607764f88b724fae1013 /test
parent6767b38c8e57c9f436936dc02ad1c8c4ffd043b2 (diff)
Replace app state with Custom Hooks
Diffstat (limited to 'test')
-rw-r--r--test/console/app/actions.test.ts (renamed from test/console/actions/console.test.ts)28
-rw-r--r--test/console/app/reducer.test.ts85
-rw-r--r--test/console/reducers/console.test.ts68
3 files changed, 99 insertions, 82 deletions
diff --git a/test/console/actions/console.test.ts b/test/console/app/actions.test.ts
index 736dd54..2f9dc71 100644
--- a/test/console/actions/console.test.ts
+++ b/test/console/app/actions.test.ts
@@ -1,12 +1,12 @@
-import * as consoleActions from "../../../src/console/actions/console";
+import * as consoleActions from "../../../src/console/app/actions";
import {
- CONSOLE_HIDE,
- CONSOLE_HIDE_COMMAND,
- CONSOLE_SHOW_COMMAND,
- CONSOLE_SHOW_ERROR,
- CONSOLE_SHOW_FIND,
- CONSOLE_SHOW_INFO,
-} from "../../../src/console/actions/console";
+ 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";
@@ -19,13 +19,13 @@ describe("console actions", () => {
describe("hide", () => {
it("create CONSOLE_HIDE action", () => {
const action = consoleActions.hide();
- expect(action.type).to.equal(CONSOLE_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(CONSOLE_SHOW_COMMAND);
+ expect(action.type).to.equal(SHOW_COMMAND);
expect(action.text).to.equal("hello");
});
});
@@ -33,14 +33,14 @@ describe("console actions", () => {
describe("showFind", () => {
it("create CONSOLE_SHOW_FIND action", () => {
const action = consoleActions.showFind();
- expect(action.type).to.equal(CONSOLE_SHOW_FIND);
+ 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(CONSOLE_SHOW_ERROR);
+ expect(action.type).to.equal(SHOW_ERROR);
expect(action.text).to.equal("an error");
});
});
@@ -48,7 +48,7 @@ describe("console actions", () => {
describe("showInfo", () => {
it("create CONSOLE_SHOW_INFO action", () => {
const action = consoleActions.showInfo("an info");
- expect(action.type).to.equal(CONSOLE_SHOW_INFO);
+ expect(action.type).to.equal(SHOW_INFO);
expect(action.text).to.equal("an info");
});
});
@@ -56,7 +56,7 @@ describe("console actions", () => {
describe("hideCommand", () => {
it("create CONSOLE_HIDE_COMMAND action", () => {
const action = consoleActions.hideCommand();
- expect(action.type).to.equal(CONSOLE_HIDE_COMMAND);
+ 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");
+ });
+ });
+ });
+});
diff --git a/test/console/reducers/console.test.ts b/test/console/reducers/console.test.ts
deleted file mode 100644
index 390dc66..0000000
--- a/test/console/reducers/console.test.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import reducer from "../../../src/console/reducers/console";
-import { expect } from "chai";
-import {
- CONSOLE_HIDE,
- CONSOLE_HIDE_COMMAND,
- CONSOLE_SHOW_COMMAND,
- CONSOLE_SHOW_ERROR,
- CONSOLE_SHOW_INFO,
- ConsoleAction,
-} from "../../../src/console/actions/console";
-
-describe("console reducer", () => {
- it("return the initial state", () => {
- const state = reducer(undefined, {} as any);
- expect(state).to.have.property("mode", "");
- expect(state).to.have.property("messageText", "");
- expect(state).to.have.property("consoleText", "");
- });
-
- it("return next state for CONSOLE_HIDE", () => {
- const initialState = reducer(undefined, {} as any);
- const action: ConsoleAction = { type: CONSOLE_HIDE };
- const state = reducer({ ...initialState, mode: "error" }, action);
- expect(state).to.have.property("mode", "");
- });
-
- it("return next state for CONSOLE_SHOW_COMMAND", () => {
- const action: ConsoleAction = {
- type: CONSOLE_SHOW_COMMAND,
- text: "open ",
- };
- const state = reducer(undefined, action);
- expect(state).to.have.property("mode", "command");
- expect(state).to.have.property("consoleText", "open ");
- });
-
- it("return next state for CONSOLE_SHOW_INFO", () => {
- const action: ConsoleAction = {
- type: CONSOLE_SHOW_INFO,
- text: "an info",
- };
- const state = reducer(undefined, action);
- expect(state).to.have.property("mode", "info");
- expect(state).to.have.property("messageText", "an info");
- });
-
- it("return next state for CONSOLE_SHOW_ERROR", () => {
- const action: ConsoleAction = {
- type: CONSOLE_SHOW_ERROR,
- text: "an error",
- };
- const state = reducer(undefined, action);
- expect(state).to.have.property("mode", "error");
- expect(state).to.have.property("messageText", "an error");
- });
-
- it("return next state for CONSOLE_HIDE_COMMAND", () => {
- const initialState = reducer(undefined, {} as any);
- const action: ConsoleAction = {
- type: CONSOLE_HIDE_COMMAND,
- };
- let state = reducer({ ...initialState, mode: "command" }, action);
- expect(state).to.have.property("mode", "");
-
- state = reducer({ ...initialState, mode: "error" }, action);
- expect(state).to.have.property("mode", "error");
- });
-});