Tengo un componente que devuelve nulo en el renderizado bajo ciertas condiciones:
render() { if (this.props.isHidden) { return null; } return <div>test</div>; }Quiero verificar si el componente es nulo cuando isHidden es verdadero con broma y enzima:
describe('myComp', () => { it('should not render if isHidden is true', () => { const comp = shallow(<myComp isHidden={true} />); expect(comp.children().length).toBe(0); }); });Esto funciona, pero ¿hay una forma más idiomática de escribir esta prueba? La prueba de componentes que se representan como nulos es un escenario bastante común.
ShallowWrapper tiene una función isEmptyRender() :
expect(comp.isEmptyRender()).toBe(true)expect(comp.type()).toEqual(null)¡Eso es todo!
o:
expect(comp.get(0)).toBeFalsy()De acuerdo con la implementación de ShallowWrapper::html , devuelve nulo si el tipo de instancia del componente es nulo, como resultado de render .
expect(comp.html()).toBeNull();