UNPKG

react-webpack-flux-babel-natliu

Version:

react 全栈

59 lines (51 loc) 2.24 kB
import React from 'react'; import { expect } from 'chai'; import Clock from '../src/Clock'; import Word from '../src/Word'; import Enzyme, { shallow, mount, render } from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; import { JSDOM } from 'jsdom'; import sinon from 'sinon'; if (typeof document === 'undefined') { const dom = new JSDOM('<!doctype html><html><body></body></html>'); global.window = dom.window; global.document = dom.window.document; } Enzyme.configure({ adapter: new Adapter() }); describe('test use enzyme', function() { it('test clock shallow rendering', function(){ let clock = shallow(<Clock />); expect(clock.find(Word).length).to.equal(1); }); it('test clock dom rendering', function () { let clock = mount(<Clock format="yyyy-mm-dd" />); expect(clock.props().format).to.equal('yyyy-mm-dd'); clock.setProps({format:"yyyy-mm-dd HH:MM:ss"}); expect(clock.props().format).to.equal('yyyy-mm-dd HH:MM:ss'); }); it('test clock dom click', function () { let onButtonClick = sinon.spy(); let clock = mount(<Clock format="yyyy-mm-dd" onButtonClick={onButtonClick} />); clock.find('button').simulate('click'); expect(onButtonClick).to.have.property('callCount', 1); expect(clock.find('button').text()).to.equal('点击次数(1)'); clock.find('button').simulate('click'); expect(onButtonClick).to.have.property('callCount', 2); expect(clock.find('button').text()).to.equal('点击次数(2)'); clock.find('button').simulate('click'); expect(onButtonClick).to.have.property('callCount', 3); expect(clock.find('button').text()).to.equal('点击次数(3)'); }); it('test clock dom rendered', function() { let clock = render(<Clock />); expect(clock.find(".clock-text")).to.have.lengthOf(1); }); it('test clock dom rendered text', function(){ let clock = render(<Clock />); expect(clock.text()).to.contain('当地时间'); }); it('test clock dom rendered text', function () { let clock = render(<Clock format="yyyy" />); expect(/\d{4}/.test(clock.text())).to.equal(true); }); });