separate content
This commit is contained in:
parent
d886d7de29
commit
39fb540037
17 changed files with 24 additions and 24 deletions
35
test/content/actions/follow.test.js
Normal file
35
test/content/actions/follow.test.js
Normal file
|
@ -0,0 +1,35 @@
|
|||
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);
|
||||
});
|
||||
});
|
||||
});
|
26
test/content/actions/input.test.js
Normal file
26
test/content/actions/input.test.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
import { expect } from "chai";
|
||||
import actions from 'content/actions';
|
||||
import * as inputActions from 'content/actions/input';
|
||||
|
||||
describe("input actions", () => {
|
||||
describe("keyPress", () => {
|
||||
it('create INPUT_KEY_PRESS action', () => {
|
||||
let action = inputActions.keyPress('a', false);
|
||||
expect(action.type).to.equal(actions.INPUT_KEY_PRESS);
|
||||
expect(action.key).to.equal('a');
|
||||
});
|
||||
|
||||
it('create INPUT_KEY_PRESS action from key with ctrl', () => {
|
||||
let action = inputActions.keyPress('b', true);
|
||||
expect(action.type).to.equal(actions.INPUT_KEY_PRESS);
|
||||
expect(action.key).to.equal('<C-B>');
|
||||
});
|
||||
});
|
||||
|
||||
describe("clearKeys", () => {
|
||||
it('create INPUT_CLEAR_KEYSaction', () => {
|
||||
let action = inputActions.clearKeys();
|
||||
expect(action.type).to.equal(actions.INPUT_CLEAR_KEYS);
|
||||
});
|
||||
});
|
||||
});
|
9
test/content/components/follow.html
Normal file
9
test/content/components/follow.html
Normal file
|
@ -0,0 +1,9 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body>
|
||||
<a href='#' >link</a>
|
||||
<a href='#' style='display:none'>invisible 1</a>
|
||||
<a href='#' style='visibility:hidden'>invisible 2</a>
|
||||
<i>not link<i>
|
||||
</body>
|
||||
</html>
|
15
test/content/components/follow.test.js
Normal file
15
test/content/components/follow.test.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
import { expect } from "chai";
|
||||
import FollowComponent from 'content/components/follow';
|
||||
|
||||
describe('FollowComponent', () => {
|
||||
describe('#getTargetElements', () => {
|
||||
beforeEach(() => {
|
||||
document.body.innerHTML = __html__['test/content/components/follow.html'];
|
||||
});
|
||||
|
||||
it('returns visible links', () => {
|
||||
let links = FollowComponent.getTargetElements(window.document);
|
||||
expect(links).to.have.lengthOf(1);
|
||||
});
|
||||
});
|
||||
});
|
48
test/content/reducers/follow.test.js
Normal file
48
test/content/reducers/follow.test.js
Normal file
|
@ -0,0 +1,48 @@
|
|||
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', '');
|
||||
});
|
||||
});
|
26
test/content/reducers/input.test.js
Normal file
26
test/content/reducers/input.test.js
Normal file
|
@ -0,0 +1,26 @@
|
|||
import { expect } from "chai";
|
||||
import actions from 'content/actions';
|
||||
import inputReducer from 'content/reducers/input';
|
||||
|
||||
describe("input reducer", () => {
|
||||
it('return the initial state', () => {
|
||||
let state = inputReducer(undefined, {});
|
||||
expect(state).to.have.deep.property('keys', '');
|
||||
});
|
||||
|
||||
it('return next state for INPUT_KEY_PRESS', () => {
|
||||
let action = { type: actions.INPUT_KEY_PRESS, key: 'a' };
|
||||
let state = inputReducer(undefined, action);
|
||||
expect(state).to.have.deep.property('keys', 'a');
|
||||
|
||||
action = { type: actions.INPUT_KEY_PRESS, key: '<C-B>' };
|
||||
state = inputReducer(state, action);
|
||||
expect(state).to.have.deep.property('keys', 'a<C-B>');
|
||||
});
|
||||
|
||||
it('return next state for INPUT_CLEAR_KEYS', () => {
|
||||
let action = { type: actions.INPUT_CLEAR_KEYS };
|
||||
let state = inputReducer({ keys: 'abc' }, action);
|
||||
expect(state).to.have.deep.property('keys', '');
|
||||
});
|
||||
});
|
Reference in a new issue