diff --git a/src/reactEventNames.js b/src/reactEventNames.js index f9ab68d..a6aecd6 100644 --- a/src/reactEventNames.js +++ b/src/reactEventNames.js @@ -8,6 +8,7 @@ export default [ 'blur', 'canPlay', 'canPlayThrough', + 'change', 'click', 'contextMenu', 'copy', diff --git a/src/tests/regressions/issue60.spec.js b/src/tests/regressions/issue60.spec.js new file mode 100644 index 0000000..28c3950 --- /dev/null +++ b/src/tests/regressions/issue60.spec.js @@ -0,0 +1,74 @@ +import unexpectedReact from '../../unexpected-react'; +import React, { Component } from 'react'; +import { createRenderer } from 'react-test-renderer/shallow'; +import unexpected from 'unexpected'; + +class Foo extends Component { + constructor(props) { + super(props); + + this.state = { + value: null + }; + + this.handleChange = this.handleChange.bind(this); + } + + handleChange(e) { + this.setState({ value: e.target.value }); + } + + render() { + const { + value + } = this.state; + + return ( +
+ Value: {value} + +
+ ); + } +} + +const expect = unexpected + .clone() + .use(unexpectedReact); + +describe('issue 60', function () { + let renderer; + + beforeEach(() => { + renderer = createRenderer(); + }); + + describe('with event input', function () { + it('renders value after input', function () { + renderer.render(); + + return expect( + renderer, + 'with event input', { target: { value: 'Test' } }, + 'on', , + 'to contain', + Value: Test + ); + }); + }); + + describe('with event change', function () { + it('renders value after change', function () { + renderer.render(); + + return expect( + renderer, + 'with event change', { target: { value: 'Test' } }, + 'on', , + 'to contain', + Value: Test + ); + }); + }); + +});