nexshop-web-contents
Version:
Nexshop Web Contents Project
85 lines (70 loc) • 2.9 kB
JavaScript
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;
});
});
});