diff options
author | Shin'ya Ueoka <ueokande@i-beam.org> | 2021-04-04 21:34:13 +0900 |
---|---|---|
committer | Shin'ya Ueoka <ueokande@i-beam.org> | 2021-04-05 22:21:33 +0900 |
commit | 3a7e55fd292196f600c11fad36425014677a1351 (patch) | |
tree | 53827f62aaea916cf8c76f6d3e08866f1db0d716 /test/console | |
parent | 39f96db5a3187b4ce2e7df529eaa456ee862dd68 (diff) |
Separate Command and Completion reducer
Diffstat (limited to 'test/console')
-rw-r--r-- | test/console/actions/completion.test.ts | 28 | ||||
-rw-r--r-- | test/console/actions/console.test.ts | 38 | ||||
-rw-r--r-- | test/console/reducers/completion.test.ts | 102 | ||||
-rw-r--r-- | test/console/reducers/console.test.ts | 127 |
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); - }); }); |