diff --git a/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx b/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx index 7fd6a0224..32e6fc3d0 100644 --- a/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx +++ b/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx @@ -3152,6 +3152,15 @@ describeWithDOM('mount', () => { expect(wrapper.at(0).key()).to.equal('foo'); expect(wrapper.at(1).key()).to.equal('bar'); }); + + it('should return null when no key is specified', () => { + const wrapper = mount(( + + )).find('li'); + expect(wrapper.key()).to.equal(null); + }); }); describe('.matchesElement(node)', () => { diff --git a/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx b/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx index fc5da81d0..d76a8221c 100644 --- a/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx +++ b/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx @@ -4013,6 +4013,15 @@ describe('shallow', () => { expect(wrapper.at(0).key()).to.equal('foo'); expect(wrapper.at(1).key()).to.equal('bar'); }); + + it('should return null when no key is specified', () => { + const wrapper = shallow(( + + )).find('li'); + expect(wrapper.key()).to.equal(null); + }); }); describe('.matchesElement(node)', () => { diff --git a/packages/enzyme/src/ReactWrapper.js b/packages/enzyme/src/ReactWrapper.js index aac1e5701..422dd1212 100644 --- a/packages/enzyme/src/ReactWrapper.js +++ b/packages/enzyme/src/ReactWrapper.js @@ -703,7 +703,7 @@ class ReactWrapper { * @returns {String} */ key() { - return this.single('key', n => n.key); + return this.single('key', n => n.key === undefined ? null : n.key); } /** diff --git a/packages/enzyme/src/ShallowWrapper.js b/packages/enzyme/src/ShallowWrapper.js index 0d905a26f..bdae8239b 100644 --- a/packages/enzyme/src/ShallowWrapper.js +++ b/packages/enzyme/src/ShallowWrapper.js @@ -845,7 +845,7 @@ class ShallowWrapper { * @returns {String} */ key() { - return this.single('key', n => n.key); + return this.single('key', n => n.key === undefined ? null : n.key); } /**