Estoy escribiendo algunas pruebas, siguiendo esta documentación y también este problema https://github.com/react-dnd/react-dnd/issues/453
El problema que tengo es con respecto a la representación de prueba.
Puedo obtener el ejemplo de que la documentación funciona, envolviendo el componente en un DragDropContext y renderizándolo con TestUtils.renderIntoDocument
.
Esto devolverá un objeto DragDropContextContainer
.
Sin embargo, si intento usar el método Enyzme mount
para representar el objeto, devuelve un objeto $$typeof: Symbol(react.element)
, que no me permitirá obtener el administrador.
Preferiría usar Enzyme, ya que eso es lo que estoy usando para mis pruebas en otros lugares.
¿Alguien recibió ayuda con esto?
Acabo de hacer que esto funcione, así es como se ve. en mecanografiado.
import { ThingIAmTesting } from '../file/where/it/lives';
describe('It is a test!', () => {
let props;
let component;
const getComponent = () => {
let OriginalComponent = (ThingIAmTesting as any).DecoratedComponent;
let identity = el => el;
if (!component) {
component = Enzyme.shallow(
<OriginalComponent {...props} connectDragSource={identity} />
);
return component
}
beforeEach (() => {
props = {
prop: 'stuff',
}
component = undefined;
})
it('should render', () => {
let component = getComponent();
expect(component).toMatchSnapshot();
});
})
Me encontré con este mismo problema. Podría, y espero que usted pueda, arreglarlo usando el método wrapper.instance()
. También se describe aquí https://github.com/react-dnd/react-dnd/issues/488.
p.ej
const Context = wrapInTestContext(Component)
const wrapper = mount(<Context />)
const manager = wrapper.instance().getManager()
const backend = manager.getBackend()
Además, también necesitaba obtener las instancias de los componentes secundarios para llamar a getHandlerId()
.
Si ayuda, aquí está uno de mis archivos de prueba: https://gist.github.com/gilleswittenberg/142fe49e1115b5a1936562b2284e1ab7
Este problema se ha marcado automáticamente como obsoleto porque no ha tenido actividad reciente. Se cerrará si no se produce más actividad. Gracias por sus aportaciones.
Comentario más útil
Me encontré con este mismo problema. Podría, y espero que usted pueda, arreglarlo usando el método
wrapper.instance()
. También se describe aquí https://github.com/react-dnd/react-dnd/issues/488.p.ej
Además, también necesitaba obtener las instancias de los componentes secundarios para llamar a
getHandlerId()
.Si ayuda, aquí está uno de mis archivos de prueba: https://gist.github.com/gilleswittenberg/142fe49e1115b5a1936562b2284e1ab7