Skip to content

Commit 0d7fcf9

Browse files
authored
Fix an issue where removing a subscription would throw an undefined error (#12)
1 parent a2eaaac commit 0d7fcf9

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

src/connect.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export default (mapFirebaseToProps = defaultMapFirebaseToProps) => {
2727

2828
const computeSubscriptions = (props, ref, firebaseApp) => {
2929
const firebaseProps = mapFirebase(props, ref, firebaseApp)
30-
const subscriptions = pickBy(firebaseProps, prop => isString(prop) || prop.path)
30+
const subscriptions = pickBy(firebaseProps, prop => isString(prop) || (prop && prop.path))
3131

3232
invariant(
3333
isPlainObject(subscriptions),

src/tests/connect-test.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,4 +185,25 @@ test('Should pass props, ref and firebase to mapFirebaseToProps', assert => {
185185
assert.end()
186186
})
187187

188-
test('Should update subscriptions when props change')
188+
test('Should update subscriptions when props change', assert => {
189+
const mapFirebaseToProps = props => ({ foo: props.foo, bar: props.bar })
190+
191+
const firebaseApp = createMockApp()
192+
const initial = renderStub(mapFirebaseToProps, firebaseApp, { foo: 'foo' })
193+
assert.equal(initial.props.foo, 'foo value')
194+
assert.equal(initial.props.bar, undefined)
195+
196+
const added = renderStub(mapFirebaseToProps, firebaseApp, { foo: 'foo', bar: 'bar' })
197+
assert.equal(added.props.foo, 'foo value')
198+
assert.equal(added.props.bar, 'bar value')
199+
200+
const changed = renderStub(mapFirebaseToProps, firebaseApp, { foo: 'foo', bar: 'baz' })
201+
assert.equal(changed.props.foo, 'foo value')
202+
assert.equal(changed.props.bar, 'baz value')
203+
204+
const removed = renderStub(mapFirebaseToProps, firebaseApp, { bar: 'baz' })
205+
assert.equal(removed.props.foo, undefined)
206+
assert.equal(removed.props.bar, 'baz value')
207+
208+
assert.end()
209+
})

0 commit comments

Comments
 (0)