web-dev-qa-db-fra.com

Jest Enzyme teste un composant React qui retourne null dans la méthode de rendu

J'ai un composant qui retourne null en rendu sous certaines conditions:

render() {
  if (this.props.isHidden) {
      return null;
  }

  return <div>test</div>;
}

Je veux vérifier si le composant est nul lorsque isHidden est vrai avec la plaisanterie et l'enzyme:

describe('myComp', () => {
    it('should not render if isHidden is true', () => {
        const comp = shallow(<myComp isHidden={true} />);
        expect(comp.children().length).toBe(0);
    });
});

Cela fonctionne, mais existe-t-il une façon plus idiomatique d'écrire ce test? Tester les composants dont le rendu est nul est un scénario assez courant.

21
klugjo
   expect(comp.type()).toEqual(null)

C'est ça!

ou: expect(comp.get(0)).toBeFalsy()

24
Abdennour TOUMI

Selon ShallowWrapper::html implémentation, elle retourne null si le type d'instance du composant est null, à la suite de render.

expect(comp.html()).toBeNull();
17
Shoaib Nawaz

ShallowWrapper a une fonction isEmptyRender() :

expect(comp.isEmptyRender()).toBe(true)
11
Benjamin Intal