From 81c854e9097b9d8990899b41a1ac8f7050182763 Mon Sep 17 00:00:00 2001 From: Matthew Shao Date: Wed, 28 Jun 2017 18:50:08 +0800 Subject: [web] Update test for js/components/Header/FileMenu.jsx --- web/src/js/__tests__/components/Header/FileMenuSpec.js | 15 ++++++++++++++- .../components/Header/__snapshots__/FileMenuSpec.js.snap | 13 +++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) (limited to 'web/src/js/__tests__') diff --git a/web/src/js/__tests__/components/Header/FileMenuSpec.js b/web/src/js/__tests__/components/Header/FileMenuSpec.js index 65b4647a..0d87530b 100644 --- a/web/src/js/__tests__/components/Header/FileMenuSpec.js +++ b/web/src/js/__tests__/components/Header/FileMenuSpec.js @@ -8,13 +8,20 @@ describe('FileMenu Component', () => { let clearFn = jest.fn(), loadFn = jest.fn(), saveFn = jest.fn(), + openModalFn = jest.fn(), mockEvent = { preventDefault: jest.fn(), target: { files: ["foo", "bar "] } }, createNodeMock = () => { return { click: jest.fn() }}, fileMenu = renderer.create( - , { createNodeMock }), + , + { createNodeMock }), tree = fileMenu.toJSON() it('should render correctly', () => { @@ -42,4 +49,10 @@ describe('FileMenu Component', () => { a.props.onClick(mockEvent) expect(saveFn).toBeCalled() }) + + it('should open optionModal', () => { + let a = ul.children[3].children[1] + a.props.onClick(mockEvent) + expect(openModalFn).toBeCalled() + }) }) diff --git a/web/src/js/__tests__/components/Header/__snapshots__/FileMenuSpec.js.snap b/web/src/js/__tests__/components/Header/__snapshots__/FileMenuSpec.js.snap index 13ecf3f5..15c1afbc 100644 --- a/web/src/js/__tests__/components/Header/__snapshots__/FileMenuSpec.js.snap +++ b/web/src/js/__tests__/components/Header/__snapshots__/FileMenuSpec.js.snap @@ -60,6 +60,19 @@ exports[`FileMenu Component should render correctly 1`] = `  Save... + +
  • + + + +  Options + +
  • -- cgit v1.2.3 From 7784d7cdd0caa5a118e29f58eadbe508184c88e7 Mon Sep 17 00:00:00 2001 From: Matthew Shao Date: Wed, 28 Jun 2017 22:08:30 +0800 Subject: [web] Add tests for reducors of options and modal. --- web/src/js/__tests__/ducks/optionsSpec.js | 25 +++++++++++++++++++++++++ web/src/js/__tests__/ducks/ui/modalSpec.js | 25 +++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 web/src/js/__tests__/ducks/optionsSpec.js create mode 100644 web/src/js/__tests__/ducks/ui/modalSpec.js (limited to 'web/src/js/__tests__') diff --git a/web/src/js/__tests__/ducks/optionsSpec.js b/web/src/js/__tests__/ducks/optionsSpec.js new file mode 100644 index 00000000..62019715 --- /dev/null +++ b/web/src/js/__tests__/ducks/optionsSpec.js @@ -0,0 +1,25 @@ +jest.mock('../../utils') + +import reduceOptions, * as OptionsActions from '../../ducks/options' + +describe('option reducer', () => { + it('should return initial state', () => { + expect(reduceOptions(undefined, {})).toEqual({}) + }) + + it('should handle receive action', () => { + let action = { type: OptionsActions.RECEIVE, data: 'foo' } + expect(reduceOptions(undefined, action)).toEqual('foo') + }) + + it('should handle update action', () => { + let action = {type: OptionsActions.UPDATE, data: {id: 1} } + expect(reduceOptions(undefined, action)).toEqual({id: 1}) + }) +}) + +describe('option actions', () => { + it('should be possible to update option', () => { + expect(reduceOptions(undefined, OptionsActions.update())).toEqual({}) + }) +}) diff --git a/web/src/js/__tests__/ducks/ui/modalSpec.js b/web/src/js/__tests__/ducks/ui/modalSpec.js new file mode 100644 index 00000000..30c39760 --- /dev/null +++ b/web/src/js/__tests__/ducks/ui/modalSpec.js @@ -0,0 +1,25 @@ +import reduceModal, * as ModalActions from '../../../ducks/ui/modal' + +describe('modal reducer', () => { + let state = undefined + + it('should return the initial state', () => { + expect(reduceModal(undefined, {})).toEqual( + { activeModal: undefined } + ) + }) + + it('should handle setActiveModal action', () => { + state = reduceModal(undefined, ModalActions.setActiveModal('foo')) + expect(state).toEqual( + { activeModal: 'foo' } + ) + }) + + it('should handle hideModal action', () => { + state = reduceModal(state, ModalActions.hideModal()) + expect(state).toEqual( + { activeModal: undefined } + ) + }) +}) -- cgit v1.2.3 From daec9854e2eb81eb846ad1a7c1080936e31f38d7 Mon Sep 17 00:00:00 2001 From: Matthew Shao Date: Thu, 29 Jun 2017 09:06:55 +0800 Subject: [web] Update __tests__/ducks/tutils.js --- web/src/js/__tests__/ducks/tutils.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'web/src/js/__tests__') diff --git a/web/src/js/__tests__/ducks/tutils.js b/web/src/js/__tests__/ducks/tutils.js index 2a79ede0..9b92e676 100644 --- a/web/src/js/__tests__/ducks/tutils.js +++ b/web/src/js/__tests__/ducks/tutils.js @@ -32,6 +32,9 @@ export function TStore(){ }, header: { tab: 'Start' + }, + modal: { + activeModal: undefined } }, settings: { @@ -47,7 +50,8 @@ export function TStore(){ sort: { desc: true, column: 'PathColumn' - } + }, + view: [ tflow ] }, connection: { state: ConnectionState.ESTABLISHED -- cgit v1.2.3 From 7a50301af322667faff8adc1d5990957df9dc4bb Mon Sep 17 00:00:00 2001 From: Matthew Shao Date: Thu, 29 Jun 2017 09:20:11 +0800 Subject: [web] Add tests for js/components/Modal/ModalSpec.js --- web/src/js/__tests__/components/Modal/ModalSpec.js | 30 +++++++++++ .../Modal/__snapshots__/ModalSpec.js.snap | 62 ++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 web/src/js/__tests__/components/Modal/ModalSpec.js create mode 100644 web/src/js/__tests__/components/Modal/__snapshots__/ModalSpec.js.snap (limited to 'web/src/js/__tests__') diff --git a/web/src/js/__tests__/components/Modal/ModalSpec.js b/web/src/js/__tests__/components/Modal/ModalSpec.js new file mode 100644 index 00000000..e4880d08 --- /dev/null +++ b/web/src/js/__tests__/components/Modal/ModalSpec.js @@ -0,0 +1,30 @@ +import React from 'react' +import renderer from 'react-test-renderer' +import Modal from '../../../components/Modal/Modal' +import { Provider } from 'react-redux' +import { TStore } from '../../ducks/tutils' + +describe('Modal Component', () => { + let store = TStore() + + it('should render correctly', () => { + // hide modal by default + let provider = renderer.create( + + + + ), + tree = provider.toJSON() + expect(tree).toMatchSnapshot() + + // option modal show up + store.getState().ui.modal.activeModal = 'OptionModal' + provider = renderer.create( + + + + ) + tree = provider.toJSON() + expect(tree).toMatchSnapshot() + }) +}) diff --git a/web/src/js/__tests__/components/Modal/__snapshots__/ModalSpec.js.snap b/web/src/js/__tests__/components/Modal/__snapshots__/ModalSpec.js.snap new file mode 100644 index 00000000..f25c3330 --- /dev/null +++ b/web/src/js/__tests__/components/Modal/__snapshots__/ModalSpec.js.snap @@ -0,0 +1,62 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Modal Component should render correctly 1`] = `
    `; + +exports[`Modal Component should render correctly 2`] = ` +
    +
    + +`; -- cgit v1.2.3 From e28f3881dc9a72da73bebcaa7606a2c681151d6e Mon Sep 17 00:00:00 2001 From: Matthew Shao Date: Fri, 30 Jun 2017 20:46:50 +0800 Subject: [web] Update tests for components. --- .../Modal/__snapshots__/ModalSpec.js.snap | 60 ++++++++++++---------- 1 file changed, 32 insertions(+), 28 deletions(-) (limited to 'web/src/js/__tests__') diff --git a/web/src/js/__tests__/components/Modal/__snapshots__/ModalSpec.js.snap b/web/src/js/__tests__/components/Modal/__snapshots__/ModalSpec.js.snap index f25c3330..4fe163d1 100644 --- a/web/src/js/__tests__/components/Modal/__snapshots__/ModalSpec.js.snap +++ b/web/src/js/__tests__/components/Modal/__snapshots__/ModalSpec.js.snap @@ -21,39 +21,43 @@ exports[`Modal Component should render correctly 2`] = `
    -
    - + +
    +

    + Options +

    +
    +
    -

    - Options -

    + ...
    -
    -
    -
    - + +
    -- cgit v1.2.3