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);
}
/**