aboutsummaryrefslogtreecommitdiff
path: root/test/console
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2021-04-04 21:34:13 +0900
committerShin'ya Ueoka <ueokande@i-beam.org>2021-04-05 22:21:33 +0900
commit3a7e55fd292196f600c11fad36425014677a1351 (patch)
tree53827f62aaea916cf8c76f6d3e08866f1db0d716 /test/console
parent39f96db5a3187b4ce2e7df529eaa456ee862dd68 (diff)
Separate Command and Completion reducer
Diffstat (limited to 'test/console')
-rw-r--r--test/console/actions/completion.test.ts28
-rw-r--r--test/console/actions/console.test.ts38
-rw-r--r--test/console/reducers/completion.test.ts102
-rw-r--r--test/console/reducers/console.test.ts127
4 files changed, 167 insertions, 128 deletions
diff --git a/test/console/actions/completion.test.ts b/test/console/actions/completion.test.ts
new file mode 100644
index 0000000..cd6899a
--- /dev/null
+++ b/test/console/actions/completion.test.ts
@@ -0,0 +1,28 @@
+import * as completionActions from "../../../src/console/actions/completion";
+import {
+ COMPLETION_COMPLETION_NEXT,
+ COMPLETION_COMPLETION_PREV,
+} from "../../../src/console/actions/completion";
+import { expect } from "chai";
+
+import browserFake from "webextensions-api-fake";
+
+describe("completion actions", () => {
+ beforeEach(() => {
+ (global as any).browser = browserFake();
+ });
+
+ describe("completionPrev", () => {
+ it("create COMPLETION_COMPLETION_PREV action", () => {
+ const action = completionActions.completionPrev();
+ expect(action.type).to.equal(COMPLETION_COMPLETION_PREV);
+ });
+ });
+
+ describe("completionNext", () => {
+ it("create COMPLETION_COMPLETION_NEXT action", () => {
+ const action = completionActions.completionNext();
+ expect(action.type).to.equal(COMPLETION_COMPLETION_NEXT);
+ });
+ });
+});
diff --git a/test/console/actions/console.test.ts b/test/console/actions/console.test.ts
index a03117a..f5f102b 100644
--- a/test/console/actions/console.test.ts
+++ b/test/console/actions/console.test.ts
@@ -1,5 +1,13 @@
-import * as actions from "../../../src/console/actions";
import * as consoleActions from "../../../src/console/actions/console";
+import {
+ CONSOLE_HIDE,
+ CONSOLE_HIDE_COMMAND,
+ CONSOLE_SET_CONSOLE_TEXT,
+ CONSOLE_SHOW_COMMAND,
+ CONSOLE_SHOW_ERROR,
+ CONSOLE_SHOW_FIND,
+ CONSOLE_SHOW_INFO,
+} from "../../../src/console/actions/console";
import { expect } from "chai";
import browserFake from "webextensions-api-fake";
@@ -12,13 +20,13 @@ describe("console actions", () => {
describe("hide", () => {
it("create CONSOLE_HIDE action", () => {
const action = consoleActions.hide();
- expect(action.type).to.equal(actions.CONSOLE_HIDE);
+ expect(action.type).to.equal(CONSOLE_HIDE);
});
});
describe("showCommand", () => {
it("create CONSOLE_SHOW_COMMAND action", async () => {
const action = await consoleActions.showCommand("hello");
- expect(action.type).to.equal(actions.CONSOLE_SHOW_COMMAND);
+ expect(action.type).to.equal(CONSOLE_SHOW_COMMAND);
expect(action.text).to.equal("hello");
});
});
@@ -26,14 +34,14 @@ describe("console actions", () => {
describe("showFind", () => {
it("create CONSOLE_SHOW_FIND action", () => {
const action = consoleActions.showFind();
- expect(action.type).to.equal(actions.CONSOLE_SHOW_FIND);
+ expect(action.type).to.equal(CONSOLE_SHOW_FIND);
});
});
describe("showError", () => {
it("create CONSOLE_SHOW_ERROR action", () => {
const action = consoleActions.showError("an error");
- expect(action.type).to.equal(actions.CONSOLE_SHOW_ERROR);
+ expect(action.type).to.equal(CONSOLE_SHOW_ERROR);
expect(action.text).to.equal("an error");
});
});
@@ -41,7 +49,7 @@ describe("console actions", () => {
describe("showInfo", () => {
it("create CONSOLE_SHOW_INFO action", () => {
const action = consoleActions.showInfo("an info");
- expect(action.type).to.equal(actions.CONSOLE_SHOW_INFO);
+ expect(action.type).to.equal(CONSOLE_SHOW_INFO);
expect(action.text).to.equal("an info");
});
});
@@ -49,29 +57,15 @@ describe("console actions", () => {
describe("hideCommand", () => {
it("create CONSOLE_HIDE_COMMAND action", () => {
const action = consoleActions.hideCommand();
- expect(action.type).to.equal(actions.CONSOLE_HIDE_COMMAND);
+ expect(action.type).to.equal(CONSOLE_HIDE_COMMAND);
});
});
describe("setConsoleText", () => {
it("create CONSOLE_SET_CONSOLE_TEXT action", () => {
const action = consoleActions.setConsoleText("hello world");
- expect(action.type).to.equal(actions.CONSOLE_SET_CONSOLE_TEXT);
+ expect(action.type).to.equal(CONSOLE_SET_CONSOLE_TEXT);
expect(action.consoleText).to.equal("hello world");
});
});
-
- describe("completionPrev", () => {
- it("create CONSOLE_COMPLETION_PREV action", () => {
- const action = consoleActions.completionPrev();
- expect(action.type).to.equal(actions.CONSOLE_COMPLETION_PREV);
- });
- });
-
- describe("completionNext", () => {
- it("create CONSOLE_COMPLETION_NEXT action", () => {
- const action = consoleActions.completionNext();
- expect(action.type).to.equal(actions.CONSOLE_COMPLETION_NEXT);
- });
- });
});
diff --git a/test/console/reducers/completion.test.ts b/test/console/reducers/completion.test.ts
new file mode 100644
index 0000000..6c76369
--- /dev/null
+++ b/test/console/reducers/completion.test.ts
@@ -0,0 +1,102 @@
+import reducer, { State } from "../../../src/console/reducers/completion";
+import { expect } from "chai";
+import {
+ COMPLETION_COMPLETION_NEXT,
+ COMPLETION_COMPLETION_PREV,
+ COMPLETION_SET_COMPLETIONS,
+ CompletionAction,
+} from "../../../src/console/actions/completion";
+
+describe("completion reducer", () => {
+ it("return next state for CONSOLE_SET_COMPLETIONS", () => {
+ const initialState = reducer(undefined, {} as any);
+ let state: State = {
+ ...initialState,
+ select: 0,
+ completions: [],
+ };
+ const action: CompletionAction = {
+ type: COMPLETION_SET_COMPLETIONS,
+ completions: [
+ {
+ name: "Apple",
+ items: [{}, {}, {}],
+ },
+ {
+ name: "Banana",
+ items: [{}, {}, {}],
+ },
+ ],
+ completionSource: "",
+ };
+ state = reducer(state, action);
+ expect(state).to.have.property("completions", action.completions);
+ expect(state).to.have.property("select", -1);
+ });
+
+ it("return next state for CONSOLE_COMPLETION_NEXT", () => {
+ const initialState = reducer(undefined, {} as any);
+ const action: CompletionAction = {
+ type: COMPLETION_COMPLETION_NEXT,
+ };
+ let state = {
+ ...initialState,
+ select: -1,
+ completions: [
+ {
+ name: "Apple",
+ items: [{}, {}],
+ },
+ {
+ name: "Banana",
+ items: [{}],
+ },
+ ],
+ };
+
+ state = reducer(state, action);
+ expect(state).to.have.property("select", 0);
+
+ state = reducer(state, action);
+ expect(state).to.have.property("select", 1);
+
+ state = reducer(state, action);
+ expect(state).to.have.property("select", 2);
+
+ state = reducer(state, action);
+ expect(state).to.have.property("select", -1);
+ });
+
+ it("return next state for CONSOLE_COMPLETION_PREV", () => {
+ const initialState = reducer(undefined, {} as any);
+ const action: CompletionAction = {
+ type: COMPLETION_COMPLETION_PREV,
+ };
+ let state = {
+ ...initialState,
+ select: -1,
+ completions: [
+ {
+ name: "Apple",
+ items: [{}, {}],
+ },
+ {
+ name: "Banana",
+ items: [{}],
+ },
+ ],
+ };
+
+ state = reducer(state, action);
+ expect(state).to.have.property("select", 2);
+
+ state = reducer(state, action);
+ expect(state).to.have.property("select", 1);
+
+ state = reducer(state, action);
+ expect(state).to.have.property("select", 0);
+
+ state = reducer(state, action);
+ expect(state).to.have.property("select", -1);
+ });
+});
diff --git a/test/console/reducers/console.test.ts b/test/console/reducers/console.test.ts
index 64e8eb3..4d4859d 100644
--- a/test/console/reducers/console.test.ts
+++ b/test/console/reducers/console.test.ts
@@ -1,8 +1,14 @@
-import * as actions from "../../../src/console/actions";
-import reducer, { State } from "../../../src/console/reducers";
+import reducer from "../../../src/console/reducers/console";
import { expect } from "chai";
-import CompletionType from "../../../src/shared/CompletionType";
-import { ConsoleAction } from "../../../src/console/actions";
+import {
+ CONSOLE_HIDE,
+ CONSOLE_HIDE_COMMAND,
+ CONSOLE_SET_CONSOLE_TEXT,
+ CONSOLE_SHOW_COMMAND,
+ CONSOLE_SHOW_ERROR,
+ CONSOLE_SHOW_INFO,
+ ConsoleAction,
+} from "../../../src/console/actions/console";
describe("console reducer", () => {
it("return the initial state", () => {
@@ -10,21 +16,18 @@ describe("console reducer", () => {
expect(state).to.have.property("mode", "");
expect(state).to.have.property("messageText", "");
expect(state).to.have.property("consoleText", "");
- expect(state).to.have.deep.property("completions", []);
- expect(state).to.have.property("select", -1);
});
it("return next state for CONSOLE_HIDE", () => {
const initialState = reducer(undefined, {} as any);
- const action: actions.ConsoleAction = { type: actions.CONSOLE_HIDE };
+ 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: actions.ConsoleAction = {
- type: actions.CONSOLE_SHOW_COMMAND,
- completionTypes: [CompletionType.SearchEngines, CompletionType.History],
+ const action: ConsoleAction = {
+ type: CONSOLE_SHOW_COMMAND,
text: "open ",
};
const state = reducer(undefined, action);
@@ -33,8 +36,8 @@ describe("console reducer", () => {
});
it("return next state for CONSOLE_SHOW_INFO", () => {
- const action: actions.ConsoleAction = {
- type: actions.CONSOLE_SHOW_INFO,
+ const action: ConsoleAction = {
+ type: CONSOLE_SHOW_INFO,
text: "an info",
};
const state = reducer(undefined, action);
@@ -43,8 +46,8 @@ describe("console reducer", () => {
});
it("return next state for CONSOLE_SHOW_ERROR", () => {
- const action: actions.ConsoleAction = {
- type: actions.CONSOLE_SHOW_ERROR,
+ const action: ConsoleAction = {
+ type: CONSOLE_SHOW_ERROR,
text: "an error",
};
const state = reducer(undefined, action);
@@ -54,8 +57,8 @@ describe("console reducer", () => {
it("return next state for CONSOLE_HIDE_COMMAND", () => {
const initialState = reducer(undefined, {} as any);
- const action: actions.ConsoleAction = {
- type: actions.CONSOLE_HIDE_COMMAND,
+ const action: ConsoleAction = {
+ type: CONSOLE_HIDE_COMMAND,
};
let state = reducer({ ...initialState, mode: "command" }, action);
expect(state).to.have.property("mode", "");
@@ -65,100 +68,12 @@ describe("console reducer", () => {
});
it("return next state for CONSOLE_SET_CONSOLE_TEXT", () => {
- const action: actions.ConsoleAction = {
- type: actions.CONSOLE_SET_CONSOLE_TEXT,
+ const action: ConsoleAction = {
+ type: CONSOLE_SET_CONSOLE_TEXT,
consoleText: "hello world",
};
const state = reducer(undefined, action);
expect(state).to.have.property("consoleText", "hello world");
});
-
- it("return next state for CONSOLE_SET_COMPLETIONS", () => {
- const initialState = reducer(undefined, {} as any);
- let state: State = {
- ...initialState,
- select: 0,
- completions: [],
- };
- const action: actions.ConsoleAction = {
- type: actions.CONSOLE_SET_COMPLETIONS,
- completions: [
- {
- name: "Apple",
- items: [{}, {}, {}],
- },
- {
- name: "Banana",
- items: [{}, {}, {}],
- },
- ],
- completionSource: "",
- };
- state = reducer(state, action);
- expect(state).to.have.property("completions", action.completions);
- expect(state).to.have.property("select", -1);
- });
-
- it("return next state for CONSOLE_COMPLETION_NEXT", () => {
- const initialState = reducer(undefined, {} as any);
- const action: ConsoleAction = { type: actions.CONSOLE_COMPLETION_NEXT };
- let state = {
- ...initialState,
- select: -1,
- completions: [
- {
- name: "Apple",
- items: [{}, {}],
- },
- {
- name: "Banana",
- items: [{}],
- },
- ],
- };
-
- state = reducer(state, action);
- expect(state).to.have.property("select", 0);
-
- state = reducer(state, action);
- expect(state).to.have.property("select", 1);
-
- state = reducer(state, action);
- expect(state).to.have.property("select", 2);
-
- state = reducer(state, action);
- expect(state).to.have.property("select", -1);
- });
-
- it("return next state for CONSOLE_COMPLETION_PREV", () => {
- const initialState = reducer(undefined, {} as any);
- const action: ConsoleAction = { type: actions.CONSOLE_COMPLETION_PREV };
- let state = {
- ...initialState,
- select: -1,
- completions: [
- {
- name: "Apple",
- items: [{}, {}],
- },
- {
- name: "Banana",
- items: [{}],
- },
- ],
- };
-
- state = reducer(state, action);
- expect(state).to.have.property("select", 2);
-
- state = reducer(state, action);
- expect(state).to.have.property("select", 1);
-
- state = reducer(state, action);
- expect(state).to.have.property("select", 0);
-
- state = reducer(state, action);
- expect(state).to.have.property("select", -1);
- });
});