From 74f5b217589a351f84d050e2a45644c3ceb6427e Mon Sep 17 00:00:00 2001 From: Jim Date: Wed, 10 Dec 2014 22:50:28 -0800 Subject: [PATCH] Fixed ReactTestUtils scry for TextComponents. Fixes issue #2654. --- src/test/ReactTestUtils.js | 7 ++++++- src/test/__tests__/ReactTestUtils-test.js | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) 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(
Hello Jim
); + var scryResults = ReactTestUtils.scryRenderedDOMComponentsWithClass( + renderedComponent, + 'NonExistantClass' + ); + expect(scryResults.length).toBe(0); + + }); });