Skip to content

react-test-renderer and refs #7740

@armandabric

Description

@armandabric

Do you want to request a feature or report a bug?
Bug

What is the current behavior?
It's not possible to test component that use ref with the react-test-renderer utilitiesTesting: the refs are always null.

/* @flow */

import React from 'react';

export default class Foo extends React.Component {    
    /* the future refs */
    bar; 

    componentDidMount() {
        console.log(this.bar); // this.bar is null

        this.bar.doThings() // So this fail
    }

    render() {
        return (
            <div ref={(c) => { console.log('ref cb', c); this.bar = c; }}> {/* The callback is call but, `c` is null*/}
                <p>Hello World</p>
            </div>
        );
    }
}
import React from 'react';
import renderer from 'react-test-renderer';

it('should have valide ref', () => {
    const foo = renderer.create(<Foo />);

    expect(foo.toJSON()).toMatchSnapshot();
});

What is the expected behavior?

The ref should be usable.

Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?

  • react@15.3.1
  • react-dom@15.3.1
  • react-test-renderer@15.3.1

Only tested with these versions.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions