add console actions/reducer tests and fix targets
This commit is contained in:
parent
e8056d2a70
commit
7e35d11f65
4 changed files with 88 additions and 8 deletions
|
@ -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:
|
||||||
|
|
37
test/actions/console.test.js
Normal file
37
test/actions/console.test.js
Normal file
|
@ -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);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
43
test/reducers/console.test.js
Normal file
43
test/reducers/console.test.js
Normal file
|
@ -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);
|
||||||
|
});
|
||||||
|
});
|
Reference in a new issue