nexshop-web-contents
Version:
Nexshop Web Contents Project
84 lines (75 loc) • 2.99 kB
JavaScript
import React from 'react';
import {expect} from 'chai';
import {shallow} from "enzyme";
import configureStore from 'redux-mock-store';
import sinon from "sinon";
import * as Redux from "redux";
import ContentsPreviewHeaderView from "../../../../src/component/preview/contents/contents-preview-header-view";
import ContentsPreviewDetailView from "../../../../src/component/preview/contents/contents-preview-detail-view";
import ContentsPreview from "../../../../src/component/preview/contents/contents-preview";
describe('Contents Preview Spec', () => {
let wrapper;
let mockStore;
let mockHistory = {goBack: () => {}};
beforeEach(() => {
sinon.stub(mockHistory, 'goBack');
sinon.stub(Redux, "bindActionCreators").returns({});
mockStore = configureStore()({
contents: {
selectedId: '2',
contents: [
{
id: '1',
name: 'first.file',
lastModifiedTimestamp: '2017-09-07T09:15:51.283Z',
type: 'image',
fileSizeBytes: 213674,
thumbnailUrls: {
thumbnail: 'first.thumbnail.file',
},
status: 'new',
metaData: {
fileSizeBytes: 267779,
contentUrl: 'first.metaData.url',
mimeType: "image/jpeg"
}
},
{
id: '2',
name: 'second.file',
lastModifiedTimestamp: '2017-09-08T16:15:51.283Z',
type: 'video',
fileSizeBytes: 12345670,
thumbnailUrls: {
thumbnail: 'second.thumbnail.file'
},
metaData: {
fileSizeBytes: 267779,
contentUrl: 'second.metaData.url',
mimeType: "image/jpeg"
}
},
]
}
});
wrapper = shallow(<ContentsPreview store={mockStore} history={mockHistory}/>).dive();
});
afterEach(() => {
mockHistory.goBack.restore();
Redux.bindActionCreators.restore();
});
it('has contents-preview-header-view', () => {
expect(wrapper.find(ContentsPreviewHeaderView).length).to.equal(1);
});
it('has contents-preview-detail-view', () => {
expect(wrapper.find(ContentsPreviewDetailView).length).to.equal(1);
});
describe('onClickClose', () => {
beforeEach(() => {
wrapper.instance().onClickClose();
});
it('calls history.goBack', () => {
expect(mockHistory.goBack.called).to.be.true;
});
});
});