Imita un componente de orden superior con broma

votos
0

Quiero asegurar que un componente HOC se está llamando a broma, pero me parece que no puede llegar jest.mocka trabajar. Mi HOC es la siguiente:

const withEntity = (
  ...args
) => {
  const wrappedComponent = WrappedComponent => {
    const innerComponent = ({ ...props }) => {    
      return (
        <WrapperComponent
          {...props}
        >
          <WrappedComponent />
        </WrapperComponent>
      );
    };

    innerComponent.propTypes = {
      ...
    };

    return innerComponent;
  };

  wrappedComponent.propTypes = {
    ...
  };

  return wrappedComponent;
};

withEntity.propTypes = {
  ...
};

export default withEntity;

En un archivo separado, la withEntityfunción se llama así:

export const DoSomething = withEntity(...args)(MyComponent);

A continuación, en el archivo de prueba para el DoSomethingcomponente, que estoy tratando de importar la withEntityfunción y burlarse de él de este modo:

import withEntity from ../../../shared/entity/higher_order_components/withEntity;
jest.mock(../../../shared/entity/higher_order_components/withEntity);

Pero cuando realmente intenta ejecutar la prueba, me sale este error:

  ● Test suite failed to run

    TypeError: (0 , _withEntity.default)(...) is not a function

No está seguro de qué hacer con ese error, ¿qué estoy haciendo mal aquí?

Publicado el 07/11/2018 a las 22:38
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

Burlándose de un su HOC debería tener este aspecto:

jest.mock('../your/HOC', () => () => 
    Component => props => <Component {...props} /> 
)

que se puede leer como

jest.mock('../your/HOC', () => `

crear una maqueta que devuelve la función HOC

() => 

la función que devuelve el alias HOC withEntity(...args)

Component => props => <Component {...props} /> 

la propia HOC, que es una función que obtiene el componente y devuelve una función que conseguir los apoyos que devuelven una función que devuelve el componente reproduce con sus apoyos

Respondida el 07/11/2018 a las 23:01
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more