add console actions/reducer tests and fix targets

jh-changes
Shin'ya Ueoka 7 years ago
parent e8056d2a70
commit 7e35d11f65
  1. 4
      src/console/console.js
  2. 12
      src/reducers/console.js
  3. 37
      test/actions/console.test.js
  4. 43
      test/reducers/console.test.js

@ -1,12 +1,12 @@
import './console.scss'; import './console.scss';
import Completion from './completion'; import Completion from './completion';
import consoleReducer, { defaultState } from '../reducers/console'; import consoleReducer from '../reducers/console';
// TODO consider object-oriented // TODO consider object-oriented
var prevValue = ""; var prevValue = "";
var completion = null; var completion = null;
var completionOrigin = ""; var completionOrigin = "";
let state = defaultState; let state = consoleReducer(undefined, {});
const blurMessage = () => { const blurMessage = () => {
return { return {

@ -1,10 +1,10 @@
import actions from '../actions'; import actions from '../actions';
export const defaultState = { const defaultState = {
errorText: '',
errorShown: false, errorShown: false,
commandText: '', errorText: '',
commandShown: false, commandShown: false,
commandText: '',
completions: [], completions: [],
}; };
@ -14,7 +14,7 @@ export default function reducer(state = defaultState, action = {}) {
return Object.assign({}, state, { return Object.assign({}, state, {
commandShown: true, commandShown: true,
commandText: action.text, commandText: action.text,
errorShow: false, errorShown: false,
completions: [] completions: []
}); });
case actions.CONSOLE_SET_COMPLETIONS: case actions.CONSOLE_SET_COMPLETIONS:
@ -23,8 +23,8 @@ export default function reducer(state = defaultState, action = {}) {
}); });
case actions.CONSOLE_SHOW_ERROR: case actions.CONSOLE_SHOW_ERROR:
return Object.assign({}, state, { return Object.assign({}, state, {
errorText: action.message, errorText: action.text,
errorShow: true, errorShown: true,
commandShown: false, commandShown: false,
}); });
case actions.CONSOLE_HIDE: case actions.CONSOLE_HIDE:

@ -0,0 +1,37 @@
import { expect } from "chai";
import actions from '../../src/actions';
import * as consoleActions from '../../src/actions/console';
describe("console actions", () => {
describe("showCommand", () => {
it('create CONSOLE_SHOW_COMMAND action', () => {
let action = consoleActions.showCommand('hello');
expect(action.type).to.equal(actions.CONSOLE_SHOW_COMMAND);
expect(action.text).to.equal('hello');
});
});
describe("setCompletions", () => {
it('create CONSOLE_SET_COMPLETIONS action', () => {
let action = consoleActions.setCompletions([1,2,3]);
expect(action.type).to.equal(actions.CONSOLE_SET_COMPLETIONS);
expect(action.completions).to.deep.equal([1, 2, 3]);
});
});
describe("showError", () => {
it('create CONSOLE_SHOW_ERROR action', () => {
let action = consoleActions.showError('an error');
expect(action.type).to.equal(actions.CONSOLE_SHOW_ERROR);
expect(action.text).to.equal('an error');
});
});
describe("hide", () => {
it('create CONSOLE_HIDE action', () => {
let action = consoleActions.hide();
expect(action.type).to.equal(actions.CONSOLE_HIDE);
});
});
});

@ -0,0 +1,43 @@
import { expect } from "chai";
import actions from '../../src/actions';
import consoleReducer from '../../src/reducers/console';
describe("console reducer", () => {
it('return the initial state', () => {
let state = consoleReducer(undefined, {});
expect(state).to.have.property('errorShown', false);
expect(state).to.have.property('errorText', '');
expect(state).to.have.property('commandShown', false);
expect(state).to.have.property('commandText', '');
expect(state).to.have.deep.property('completions', []);
});
it('return next state for CONSOLE_SHOW_COMMAND', () => {
let action = { type: actions.CONSOLE_SHOW_COMMAND, text: 'open ' };
let state = consoleReducer({}, action);
expect(state).to.have.property('commandShown', true);
expect(state).to.have.property('commandText', 'open ');
expect(state).to.have.property('errorShown', false);
});
it('return next state for CONSOLE_SET_COMPLETIONS', () => {
let action = { type: actions.CONSOLE_SET_COMPLETIONS, completions: [1, 2, 3] };
let state = consoleReducer({}, action);
expect(state).to.have.deep.property('completions', [1, 2, 3]);
});
it('return next state for CONSOLE_SHOW_ERROR', () => {
let action = { type: actions.CONSOLE_SHOW_ERROR, text: 'an error' };
let state = consoleReducer({}, action);
expect(state).to.have.property('errorShown', true);
expect(state).to.have.property('errorText', 'an error');
expect(state).to.have.property('commandShown', false);
});
it('return next state for CONSOLE_HIDE', () => {
let action = { type: actions.CONSOLE_HIDE };
let state = consoleReducer({}, action);
expect(state).to.have.property('errorShown', false);
expect(state).to.have.property('commandShown', false);
});
});