aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/console/actions/completion.test.ts28
-rw-r--r--test/console/actions/console.test.ts9
-rw-r--r--test/console/completion/reducer.test.ts168
-rw-r--r--test/console/reducers/completion.test.ts102
-rw-r--r--test/console/reducers/console.test.ts11
5 files changed, 168 insertions, 150 deletions
diff --git a/test/console/actions/completion.test.ts b/test/console/actions/completion.test.ts
deleted file mode 100644
index cd6899a..0000000
--- a/test/console/actions/completion.test.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-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 f5f102b..736dd54 100644
--- a/test/console/actions/console.test.ts
+++ b/test/console/actions/console.test.ts
@@ -2,7 +2,6 @@ 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,
@@ -60,12 +59,4 @@ describe("console actions", () => {
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(CONSOLE_SET_CONSOLE_TEXT);
- expect(action.consoleText).to.equal("hello world");
- });
- });
});
diff --git a/test/console/completion/reducer.test.ts b/test/console/completion/reducer.test.ts
new file mode 100644
index 0000000..b742872
--- /dev/null
+++ b/test/console/completion/reducer.test.ts
@@ -0,0 +1,168 @@
+import reducer, {
+ defaultState,
+ State,
+} from "../../../src/console/completion/reducer";
+import { expect } from "chai";
+import {
+ initCompletion,
+ selectNext,
+ selectPrev,
+ setCompletions,
+ setCompletionSource,
+} from "../../../src/console/completion/actions";
+import CompletionType from "../../../src/shared/CompletionType";
+
+describe("completion reducer", () => {
+ describe("initCompletion", () => {
+ it("initializes completions", () => {
+ const nextState = reducer(
+ defaultState,
+ initCompletion([CompletionType.Bookmarks, CompletionType.History])
+ );
+
+ expect(nextState.completionTypes).deep.equals([
+ CompletionType.Bookmarks,
+ CompletionType.History,
+ ]);
+ });
+ });
+
+ describe("setCompletionSource", () => {
+ it("sets a completion source", () => {
+ const nextState = reducer(defaultState, setCompletionSource("open "));
+
+ expect(nextState.completionSource).equals("open ");
+ });
+ });
+
+ describe("setCompletions", () => {
+ it("sets completions", () => {
+ const nextState = reducer(
+ defaultState,
+ setCompletions([
+ {
+ name: "Apple",
+ items: [{}, {}],
+ },
+ {
+ name: "Banana",
+ items: [{}],
+ },
+ ])
+ );
+
+ expect(nextState.completions).deep.equals([
+ {
+ name: "Apple",
+ items: [{}, {}],
+ },
+ {
+ name: "Banana",
+ items: [{}],
+ },
+ ]);
+ });
+ });
+
+ describe("selectNext", () => {
+ context("when no completion groups", () => {
+ it("does nothing", () => {
+ const nextState = reducer(defaultState, selectNext());
+ expect(nextState.select).equals(-1);
+ });
+ });
+
+ context("when no completion items", () => {
+ it("does nothing", () => {
+ const state = {
+ ...defaultState,
+ completions: [{ name: "apple", items: [] }],
+ };
+ const nextState = reducer(state, selectNext());
+ expect(nextState.select).equals(-1);
+ });
+ });
+
+ context("when completions exist", () => {
+ it("selects next selection", () => {
+ let state: State = {
+ ...defaultState,
+ select: -1,
+ completions: [
+ {
+ name: "Apple",
+ items: [{}, {}],
+ },
+ {
+ name: "Banana",
+ items: [{}],
+ },
+ ],
+ };
+
+ state = reducer(state, selectNext());
+ expect(state.select).equals(0);
+
+ state = reducer(state, selectNext());
+ expect(state.select).equals(1);
+
+ state = reducer(state, selectNext());
+ expect(state.select).equals(2);
+
+ state = reducer(state, selectNext());
+ expect(state.select).equals(-1);
+ });
+ });
+ });
+
+ describe("selectPrev", () => {
+ context("when no completion groups", () => {
+ it("does nothing", () => {
+ const nextState = reducer(defaultState, selectPrev());
+ expect(nextState.select).equals(-1);
+ });
+
+ context("when no completion items", () => {
+ it("does nothing", () => {
+ const state = {
+ ...defaultState,
+ completions: [{ name: "apple", items: [] }],
+ };
+ const nextState = reducer(state, selectPrev());
+ expect(nextState.select).equals(-1);
+ });
+ });
+ });
+
+ context("when completions exist", () => {
+ it("selects a previous completion", () => {
+ let state: State = {
+ ...defaultState,
+ select: -1,
+ completions: [
+ {
+ name: "Apple",
+ items: [{}, {}],
+ },
+ {
+ name: "Banana",
+ items: [{}],
+ },
+ ],
+ };
+
+ state = reducer(state, selectPrev());
+ expect(state).to.have.property("select", 2);
+
+ state = reducer(state, selectPrev());
+ expect(state).to.have.property("select", 1);
+
+ state = reducer(state, selectPrev());
+ expect(state).to.have.property("select", 0);
+
+ state = reducer(state, selectPrev());
+ expect(state).to.have.property("select", -1);
+ });
+ });
+ });
+});
diff --git a/test/console/reducers/completion.test.ts b/test/console/reducers/completion.test.ts
deleted file mode 100644
index 6c76369..0000000
--- a/test/console/reducers/completion.test.ts
+++ /dev/null
@@ -1,102 +0,0 @@
-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 4d4859d..390dc66 100644
--- a/test/console/reducers/console.test.ts
+++ b/test/console/reducers/console.test.ts
@@ -3,7 +3,6 @@ import { expect } from "chai";
import {
CONSOLE_HIDE,
CONSOLE_HIDE_COMMAND,
- CONSOLE_SET_CONSOLE_TEXT,
CONSOLE_SHOW_COMMAND,
CONSOLE_SHOW_ERROR,
CONSOLE_SHOW_INFO,
@@ -66,14 +65,4 @@ describe("console reducer", () => {
state = reducer({ ...initialState, mode: "error" }, action);
expect(state).to.have.property("mode", "error");
});
-
- it("return next state for 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");
- });
});