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).toHaveLength(0); }); }); describe("showCommand", () => { it("switches to command mode with a message", () => { const nextState = reducer(defaultState, showCommand("open ")); expect(nextState.mode).toEqual("command"); expect(nextState.consoleText).toEqual("open "); }); }); describe("showFind", () => { it("switches to find mode with a message", () => { const nextState = reducer(defaultState, showFind()); expect(nextState.mode).toEqual("find"); }); }); describe("showError", () => { it("switches to error message mode with a message", () => { const nextState = reducer(defaultState, showError("error occurs")); expect(nextState.mode).toEqual("error"); expect(nextState.messageText).toEqual("error occurs"); }); }); describe("showInfo", () => { it("switches to info message mode with a message", () => { const nextState = reducer(defaultState, showInfo("what's up")); expect(nextState.mode).toEqual("info"); expect(nextState.messageText).toEqual("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).toHaveLength(0); }); }); describe("when info message mode", () => { it("does nothing", () => { const initialState: State = { ...defaultState, mode: "info", }; const nextState = reducer(initialState, hideCommand()); expect(nextState.mode).toEqual("info"); }); }); }); });