diff --git a/src/test/ReactTestUtils.js b/src/test/ReactTestUtils.js index f2f99d5b52..196c63d581 100644 --- a/src/test/ReactTestUtils.js +++ b/src/test/ReactTestUtils.js @@ -124,6 +124,9 @@ var ReactTestUtils = { if (!renderedChildren.hasOwnProperty(key)) { continue; } + if (!renderedChildren[key].getPublicInstance) { + continue; + } ret = ret.concat( ReactTestUtils.findAllInRenderedTree( renderedChildren[key].getPublicInstance(), @@ -167,7 +170,9 @@ var ReactTestUtils = { var all = ReactTestUtils.scryRenderedDOMComponentsWithClass(root, className); if (all.length !== 1) { - throw new Error('Did not find exactly one match for class:' + className); + throw new Error('Did not find exactly one match '+ + '(found: ' + all.length + ') for class:' + className + ); } return all[0]; }, diff --git a/src/test/__tests__/ReactTestUtils-test.js b/src/test/__tests__/ReactTestUtils-test.js index 0026a4efe2..796ac1b4b6 100644 --- a/src/test/__tests__/ReactTestUtils-test.js +++ b/src/test/__tests__/ReactTestUtils-test.js @@ -110,4 +110,14 @@ describe('ReactTestUtils', function() { expect(updatedResultCausedByClick.type).toBe('a'); expect(updatedResultCausedByClick.props.className).toBe('was-clicked'); }); + + it('Test scryRenderedDOMComponentsWithClass with TextComponent', function() { + var renderedComponent = ReactTestUtils.renderIntoDocument(