From d866f2c0db1a56d0d23c986c844c9e3f681d15db Mon Sep 17 00:00:00 2001 From: theJian Date: Fri, 4 May 2018 14:29:58 +0800 Subject: [PATCH 1/2] Add test for custom store key to connect --- test/components/connect.spec.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/test/components/connect.spec.js b/test/components/connect.spec.js index 2d3e975ce..06951c17f 100644 --- a/test/components/connect.spec.js +++ b/test/components/connect.spec.js @@ -6,7 +6,7 @@ import PropTypes from 'prop-types' import ReactDOM from 'react-dom' import TestRenderer from 'react-test-renderer' import { createStore } from 'redux' -import { connect } from '../../src/index' +import { connect, createProvider } from '../../src/index' describe('React', () => { describe('connect', () => { @@ -2324,5 +2324,27 @@ describe('React', () => { expect(mapStateToPropsC).toHaveBeenCalledTimes(2) expect(mapStateToPropsD).toHaveBeenCalledTimes(2) }) + + it('should receive the store in the context using a custom store key', () => { + const store = createStore(() => ({})) + const CustomProvider = createProvider('customStoreKey') + const connectOptions = { storeKey: 'customStoreKey' } + + @connect(undefined, undefined, undefined, connectOptions) + class Container extends Component { + render() { + return + } + } + + const testRenderer = TestRenderer.create( + + + + ) + + const container = testRenderer.root.findByType(Container) + expect(container.instance.store).toBe(store) + }) }) }) From 23d90aa6f38458e591ca70abaef2011d024e9bec Mon Sep 17 00:00:00 2001 From: theJian Date: Sat, 5 May 2018 11:44:22 +0800 Subject: [PATCH 2/2] Remove subkey --- src/components/Provider.js | 4 ++-- src/connect/selectorFactory.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/Provider.js b/src/components/Provider.js index ac77a003e..370796392 100644 --- a/src/components/Provider.js +++ b/src/components/Provider.js @@ -19,8 +19,8 @@ function warnAboutReceivingStore() { ) } -export function createProvider(storeKey = 'store', subKey) { - const subscriptionKey = subKey || `${storeKey}Subscription` +export function createProvider(storeKey = 'store') { + const subscriptionKey = `${storeKey}Subscription` class Provider extends Component { getChildContext() { diff --git a/src/connect/selectorFactory.js b/src/connect/selectorFactory.js index 4479431e0..de34b3361 100644 --- a/src/connect/selectorFactory.js +++ b/src/connect/selectorFactory.js @@ -1,5 +1,5 @@ import verifySubselectors from './verifySubselectors' - + export function impureFinalPropsSelectorFactory( mapStateToProps, mapDispatchToProps, @@ -64,7 +64,7 @@ export function pureFinalPropsSelectorFactory( const nextStateProps = mapStateToProps(state, ownProps) const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps) stateProps = nextStateProps - + if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps)