UNPKG

nexshop-web-contents

Version:

Nexshop Web Contents Project

85 lines (70 loc) 2.9 kB
import React from 'react'; import {expect} from 'chai'; import {shallow} from "enzyme"; import sinon from "sinon"; import configureStore from 'redux-mock-store'; import ScenePreview from "../../../../src/component/preview/scene/scene-preview"; import ScenePreviewHeaderView from "../../../../src/component/preview/scene/scene-preview-header-view"; import ScenePreviewDetailView from "../../../../src/component/preview/scene/scene-preview-detail-view"; describe('Scene Preview Spec', () => { let wrapper; let mockStore; let mockHistory = { goBack: sinon.spy() }; const SCENE = {panels: [{id: 'p1'}, {id: 'p2'}]}; const SCENE_NAME = 'some scene'; const PREVIEW_WINDOW_SIZE = { width: 1920, height: 1080 }; const SCENE_LAYOUT_SIZE = { width: 960, height: 540 }; beforeEach(() => { mockStore = configureStore()({ scene: { name: SCENE_NAME, scene: SCENE, previewWindowSize: PREVIEW_WINDOW_SIZE, sceneLayoutSize: SCENE_LAYOUT_SIZE, }, }); wrapper = shallow(<ScenePreview store={mockStore} history={mockHistory}/>).dive(); }); afterEach(() => { mockHistory.goBack.reset(); }); describe('Mapping props', () => { it('has scene', () => { expect(wrapper.instance().props.scene).to.deep.equal(SCENE); }); it('has name', () => { expect(wrapper.instance().props.name).to.deep.equal(SCENE_NAME); }); it('has previewWindowSize', () => { expect(wrapper.instance().props.previewWindowSize).to.deep.equal(PREVIEW_WINDOW_SIZE); }); it('has sceneLayoutSize', () => { expect(wrapper.instance().props.sceneLayoutSize).to.deep.equal(SCENE_LAYOUT_SIZE); }); }); describe('passes props', () => { it('name and onClickClose props to ScenePreviewHeaderView', () => { expect(wrapper.find(ScenePreviewHeaderView).prop('name')).to.equal(SCENE_NAME); expect(wrapper.find(ScenePreviewHeaderView).prop('onClickClose')).to.equal(wrapper.instance().onClickClose); }); it('scene, previewWindowSize and sceneLayoutSize props to ScenePreviewDetailView', () => { expect(wrapper.find(ScenePreviewDetailView).prop('scene')).to.deep.equal(SCENE); expect(wrapper.find(ScenePreviewDetailView).prop('previewWindowSize')).to.deep.equal(PREVIEW_WINDOW_SIZE); expect(wrapper.find(ScenePreviewDetailView).prop('sceneLayoutSize')).to.deep.equal(SCENE_LAYOUT_SIZE); }); }); describe('onClickClose', () => { beforeEach(() => { wrapper.instance().onClickClose(); }); it('calls history.goBack', () => { expect(mockHistory.goBack.called).to.be.true; }); }); });