commit
9f1a18352f
22 changed files with 234 additions and 173 deletions
@ -1,16 +1,3 @@ |
||||
import CommonComponent from './common'; |
||||
|
||||
export default class FrameContent { |
||||
|
||||
constructor(win, store) { |
||||
this.children = [new CommonComponent(win, store)]; |
||||
} |
||||
|
||||
update() { |
||||
this.children.forEach(c => c.update()); |
||||
} |
||||
|
||||
onMessage(message, sender) { |
||||
this.children.forEach(c => c.onMessage(message, sender)); |
||||
} |
||||
} |
||||
export default CommonComponent; |
||||
|
@ -0,0 +1,35 @@ |
||||
import { expect } from "chai"; |
||||
import actions from 'content/actions'; |
||||
import * as followControllerActions from 'content/actions/follow-controller'; |
||||
|
||||
describe('follow-controller actions', () => { |
||||
describe('enable', () => { |
||||
it('creates FOLLOW_CONTROLLER_ENABLE action', () => { |
||||
let action = followControllerActions.enable(true); |
||||
expect(action.type).to.equal(actions.FOLLOW_CONTROLLER_ENABLE); |
||||
expect(action.newTab).to.equal(true); |
||||
}); |
||||
}); |
||||
|
||||
describe('disable', () => { |
||||
it('creates FOLLOW_CONTROLLER_DISABLE action', () => { |
||||
let action = followControllerActions.disable(true); |
||||
expect(action.type).to.equal(actions.FOLLOW_CONTROLLER_DISABLE); |
||||
}); |
||||
}); |
||||
|
||||
describe('keyPress', () => { |
||||
it('creates FOLLOW_CONTROLLER_KEY_PRESS action', () => { |
||||
let action = followControllerActions.keyPress(100); |
||||
expect(action.type).to.equal(actions.FOLLOW_CONTROLLER_KEY_PRESS); |
||||
expect(action.key).to.equal(100); |
||||
}); |
||||
}); |
||||
|
||||
describe('backspace', () => { |
||||
it('creates FOLLOW_CONTROLLER_BACKSPACE action', () => { |
||||
let action = followControllerActions.backspace(100); |
||||
expect(action.type).to.equal(actions.FOLLOW_CONTROLLER_BACKSPACE); |
||||
}); |
||||
}); |
||||
}); |
@ -1,35 +0,0 @@ |
||||
import { expect } from "chai"; |
||||
import actions from 'content/actions'; |
||||
import * as followActions from 'content/actions/follow'; |
||||
|
||||
describe('follow actions', () => { |
||||
describe('enable', () => { |
||||
it('creates FOLLOW_ENABLE action', () => { |
||||
let action = followActions.enable(true); |
||||
expect(action.type).to.equal(actions.FOLLOW_ENABLE); |
||||
expect(action.newTab).to.equal(true); |
||||
}); |
||||
}); |
||||
|
||||
describe('disable', () => { |
||||
it('creates FOLLOW_DISABLE action', () => { |
||||
let action = followActions.disable(true); |
||||
expect(action.type).to.equal(actions.FOLLOW_DISABLE); |
||||
}); |
||||
}); |
||||
|
||||
describe('keyPress', () => { |
||||
it('creates FOLLOW_KEY_PRESS action', () => { |
||||
let action = followActions.keyPress(100); |
||||
expect(action.type).to.equal(actions.FOLLOW_KEY_PRESS); |
||||
expect(action.key).to.equal(100); |
||||
}); |
||||
}); |
||||
|
||||
describe('backspace', () => { |
||||
it('creates FOLLOW_BACKSPACE action', () => { |
||||
let action = followActions.backspace(100); |
||||
expect(action.type).to.equal(actions.FOLLOW_BACKSPACE); |
||||
}); |
||||
}); |
||||
}); |
@ -0,0 +1,48 @@ |
||||
import { expect } from "chai"; |
||||
import actions from 'content/actions'; |
||||
import followControllerReducer from 'content/reducers/follow-controller'; |
||||
|
||||
describe('follow-controller reducer', () => { |
||||
it ('returns the initial state', () => { |
||||
let state = followControllerReducer(undefined, {}); |
||||
expect(state).to.have.property('enabled', false); |
||||
expect(state).to.have.property('newTab'); |
||||
expect(state).to.have.deep.property('keys', ''); |
||||
}); |
||||
|
||||
it ('returns next state for FOLLOW_CONTROLLER_ENABLE', () => { |
||||
let action = { type: actions.FOLLOW_CONTROLLER_ENABLE, newTab: true }; |
||||
let state = followControllerReducer({ enabled: false, newTab: false }, action); |
||||
expect(state).to.have.property('enabled', true); |
||||
expect(state).to.have.property('newTab', true); |
||||
expect(state).to.have.property('keys', ''); |
||||
}); |
||||
|
||||
it ('returns next state for FOLLOW_CONTROLLER_DISABLE', () => { |
||||
let action = { type: actions.FOLLOW_CONTROLLER_DISABLE }; |
||||
let state = followControllerReducer({ enabled: true }, action); |
||||
expect(state).to.have.property('enabled', false); |
||||
}); |
||||
|
||||
it ('returns next state for FOLLOW_CONTROLLER_KEY_PRESS', () => { |
||||
let action = { type: actions.FOLLOW_CONTROLLER_KEY_PRESS, key: 'a'}; |
||||
let state = followControllerReducer({ keys: '' }, action); |
||||
expect(state).to.have.deep.property('keys', 'a'); |
||||
|
||||
action = { type: actions.FOLLOW_CONTROLLER_KEY_PRESS, key: 'b'}; |
||||
state = followControllerReducer(state, action); |
||||
expect(state).to.have.deep.property('keys', 'ab'); |
||||
}); |
||||
|
||||
it ('returns next state for FOLLOW_CONTROLLER_BACKSPACE', () => { |
||||
let action = { type: actions.FOLLOW_CONTROLLER_BACKSPACE }; |
||||
let state = followControllerReducer({ keys: 'ab' }, action); |
||||
expect(state).to.have.deep.property('keys', 'a'); |
||||
|
||||
state = followControllerReducer(state, action); |
||||
expect(state).to.have.deep.property('keys', ''); |
||||
|
||||
state = followControllerReducer(state, action); |
||||
expect(state).to.have.deep.property('keys', ''); |
||||
}); |
||||
}); |
@ -1,48 +0,0 @@ |
||||
import { expect } from "chai"; |
||||
import actions from 'content/actions'; |
||||
import followReducer from 'content/reducers/follow'; |
||||
|
||||
describe('follow reducer', () => { |
||||
it ('returns the initial state', () => { |
||||
let state = followReducer(undefined, {}); |
||||
expect(state).to.have.property('enabled', false); |
||||
expect(state).to.have.property('newTab'); |
||||
expect(state).to.have.deep.property('keys', ''); |
||||
}); |
||||
|
||||
it ('returns next state for FOLLOW_ENABLE', () => { |
||||
let action = { type: actions.FOLLOW_ENABLE, newTab: true }; |
||||
let state = followReducer({ enabled: false, newTab: false }, action); |
||||
expect(state).to.have.property('enabled', true); |
||||
expect(state).to.have.property('newTab', true); |
||||
expect(state).to.have.property('keys', ''); |
||||
}); |
||||
|
||||
it ('returns next state for FOLLOW_DISABLE', () => { |
||||
let action = { type: actions.FOLLOW_DISABLE }; |
||||
let state = followReducer({ enabled: true }, action); |
||||
expect(state).to.have.property('enabled', false); |
||||
}); |
||||
|
||||
it ('returns next state for FOLLOW_KEY_PRESS', () => { |
||||
let action = { type: actions.FOLLOW_KEY_PRESS, key: 'a'}; |
||||
let state = followReducer({ keys: '' }, action); |
||||
expect(state).to.have.deep.property('keys', 'a'); |
||||
|
||||
action = { type: actions.FOLLOW_KEY_PRESS, key: 'b'}; |
||||
state = followReducer(state, action); |
||||
expect(state).to.have.deep.property('keys', 'ab'); |
||||
}); |
||||
|
||||
it ('returns next state for FOLLOW_BACKSPACE', () => { |
||||
let action = { type: actions.FOLLOW_BACKSPACE }; |
||||
let state = followReducer({ keys: 'ab' }, action); |
||||
expect(state).to.have.deep.property('keys', 'a'); |
||||
|
||||
state = followReducer(state, action); |
||||
expect(state).to.have.deep.property('keys', ''); |
||||
|
||||
state = followReducer(state, action); |
||||
expect(state).to.have.deep.property('keys', ''); |
||||
}); |
||||
}); |
Reference in new issue