@@ -397,6 +397,53 @@ describeWithDOM('mount', () => {
397397 expect ( spy . args [ 3 ] [ 0 ] . hasClass ( 'bux' ) ) . to . equal ( true ) ;
398398 } ) ;
399399
400+ describeIf ( ! REACT013 , 'stateless functional components' , ( ) => {
401+ it ( 'finds nodes' , ( ) => {
402+ const SFC = function SFC ( { selector } ) {
403+ return (
404+ < div >
405+ < span data-foo = { selector } />
406+ < i data-foo = { selector } />
407+ </ div >
408+ ) ;
409+ } ;
410+
411+ const selector = 'blah' ;
412+ const wrapper = mount ( < SFC selector = { selector } /> ) ;
413+ const foundSpan = wrapper . findWhere ( n => (
414+ n . type ( ) === 'span' && n . props ( ) [ 'data-foo' ] === selector
415+ ) ) ;
416+ expect ( foundSpan . type ( ) ) . to . equal ( 'span' ) ;
417+
418+ const foundNotSpan = wrapper . findWhere ( n => (
419+ n . type ( ) !== 'span' && n . props ( ) [ 'data-foo' ] === selector
420+ ) ) ;
421+ expect ( foundNotSpan . type ( ) ) . to . equal ( 'i' ) ;
422+ } ) ;
423+
424+ it ( 'finds nodes when conditionally rendered' , ( ) => {
425+ const SFC = function SFC ( { selector } ) {
426+ return (
427+ < div >
428+ < span data-foo = { selector } />
429+ { selector === 'baz' ? < i data-foo = { selector } /> : null }
430+ </ div >
431+ ) ;
432+ } ;
433+
434+ const selector = 'blah' ;
435+ const wrapper = mount ( < SFC selector = { selector } /> ) ;
436+ const foundSpan = wrapper . findWhere ( n => (
437+ n . type ( ) === 'span' && n . props ( ) [ 'data-foo' ] === selector
438+ ) ) ;
439+ expect ( foundSpan . type ( ) ) . to . equal ( 'span' ) ;
440+
441+ const foundNotSpan = wrapper . findWhere ( n => (
442+ n . type ( ) !== 'span' && n . props ( ) [ 'data-foo' ] === selector
443+ ) ) ;
444+ expect ( foundNotSpan ) . to . have . length ( 0 ) ;
445+ } ) ;
446+ } ) ;
400447 } ) ;
401448
402449 describe ( '.setProps(newProps)' , ( ) => {
0 commit comments