diff --git a/test/components/connect.spec.js b/test/components/connect.spec.js index 89ca687b7..82edb12c0 100644 --- a/test/components/connect.spec.js +++ b/test/components/connect.spec.js @@ -469,6 +469,53 @@ describe('React', () => { expect(invocationCount).toEqual(2) }) + it('should invoke mapState every time props are changed if it has zero arguments', () => { + const store = createStore(stringBuilder) + + let invocationCount = 0 + + @connect(() => { + invocationCount++ + return {} + }) + + class WithoutProps extends Component { + render() { + return + } + } + + class OuterComponent extends Component { + constructor() { + super() + this.state = { foo: 'FOO' } + } + + setFoo(foo) { + this.setState({ foo }) + } + + render() { + return ( +
+ +
+ ) + } + } + + let outerComponent + TestUtils.renderIntoDocument( + + outerComponent = c} /> + + ) + outerComponent.setFoo('BAR') + outerComponent.setFoo('DID') + + expect(invocationCount).toEqual(4) + }) + it('should invoke mapState every time props are changed if it has a second argument', () => { const store = createStore(stringBuilder) @@ -570,6 +617,54 @@ describe('React', () => { expect(invocationCount).toEqual(1) }) + it('should invoke mapDispatch every time props are changed if it has zero arguments', () => { + const store = createStore(stringBuilder) + + let invocationCount = 0 + + @connect(null, () => { + invocationCount++ + return {} + }) + + class WithoutProps extends Component { + render() { + return + } + } + + class OuterComponent extends Component { + constructor() { + super() + this.state = { foo: 'FOO' } + } + + setFoo(foo) { + this.setState({ foo }) + } + + render() { + return ( +
+ +
+ ) + } + } + + let outerComponent + TestUtils.renderIntoDocument( + + outerComponent = c} /> + + ) + + outerComponent.setFoo('BAR') + outerComponent.setFoo('DID') + + expect(invocationCount).toEqual(3) + }) + it('should invoke mapDispatch every time props are changed if it has a second argument', () => { const store = createStore(stringBuilder)