Estoy usando un componente CKEditor de ckeditor4-react en mi aplicación. Me gustaría crear una prueba de jest que usará react-testing-library para escribir algunas cosas dentro de este componente CKEditor .
Por el momento, mi componente contiene código como:
const handleChange = (event: any) => { setBody(event.editor.getData()); }; <CKEditor onChange={handleChange} data-testid="ckeditor-textfield" />Esto funciona bien cuando se prueba manualmente.
Dentro de mi prueba Jest, tengo lo siguiente:
const editorText = screen.getByTestId('ckeditor-textfield'); fireEvent.change(editorText, { target: { value: 'Email body text' } });Sin embargo, esto no funciona y me sale un error:
TestingLibraryElementError: no se puede encontrar un elemento por: [data-testid="ckeditor-textfield"]
Si intento una forma diferente de obtener el campo de texto del editor haciendo:
const editorText = document.getElementsByClassName('cke_editable')[0];Obtuve el siguiente error:
No se puede activar un evento de "cambio". Proporcione un elemento DOM.
¿Cómo puedo probar el campo de entrada para un componente CKEditor ?
Esta no es una solución muy elegante, pero he inicializado los datos de CKEditor al ejecutar las pruebas unitarias de jest como tales:
<CKEditor initData={ process.env.JEST_WORKER_ID !== undefined && <p>unit tests data</p> } />