diff --git a/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx b/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx
index 407dee646..814bf8014 100644
--- a/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx
+++ b/packages/enzyme-test-suite/test/ReactWrapper-spec.jsx
@@ -4018,6 +4018,26 @@ describeWithDOM('mount', () => {
expect(c1).to.deep.equal(c);
expect(d1).to.deep.equal(d);
});
+
+ it('returns an iterable iterator', () => {
+ class Foo extends React.Component {
+ render() {
+ return (
+
+ );
+ }
+ }
+ const wrapper = mount();
+
+ const iter = wrapper[ITERATOR_SYMBOL]();
+ expect(iter).to.have.property(ITERATOR_SYMBOL).and.be.a('function');
+ expect(iter[ITERATOR_SYMBOL]()).to.equal(iter);
+ });
});
describe('.instance()', () => {
diff --git a/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx b/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx
index b143f1e05..2e1288a58 100644
--- a/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx
+++ b/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx
@@ -4973,6 +4973,26 @@ describe('shallow', () => {
expect(c1).to.deep.equal(c);
expect(d1).to.deep.equal(d);
});
+
+ it('returns an iterable iterator', () => {
+ class Foo extends React.Component {
+ render() {
+ return (
+
+ );
+ }
+ }
+ const wrapper = shallow();
+
+ const iter = wrapper[ITERATOR_SYMBOL]();
+ expect(iter).to.have.property(ITERATOR_SYMBOL).and.be.a('function');
+ expect(iter[ITERATOR_SYMBOL]()).to.equal(iter);
+ });
});
describe('.getNodes()', () => {
diff --git a/packages/enzyme/src/ReactWrapper.js b/packages/enzyme/src/ReactWrapper.js
index 742c39cab..bfe73da60 100644
--- a/packages/enzyme/src/ReactWrapper.js
+++ b/packages/enzyme/src/ReactWrapper.js
@@ -1062,6 +1062,7 @@ if (ITERATOR_SYMBOL) {
const iter = this[NODES][ITERATOR_SYMBOL]();
const adapter = getAdapter(this[OPTIONS]);
return {
+ [ITERATOR_SYMBOL]() { return this; },
next() {
const next = iter.next();
if (next.done) {
diff --git a/packages/enzyme/src/ShallowWrapper.js b/packages/enzyme/src/ShallowWrapper.js
index 3b9eae661..66dbd97fb 100644
--- a/packages/enzyme/src/ShallowWrapper.js
+++ b/packages/enzyme/src/ShallowWrapper.js
@@ -1264,6 +1264,7 @@ if (ITERATOR_SYMBOL) {
const iter = this.getNodesInternal()[ITERATOR_SYMBOL]();
const adapter = getAdapter(this[OPTIONS]);
return {
+ [ITERATOR_SYMBOL]() { return this; },
next() {
const next = iter.next();
if (next.done) {