Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

159
Vistas
La biblioteca de pruebas de React no borra el formulario de entrada al simular condiciones claras

Tengo un proyecto de interfaz de usuario de búsqueda con dos componentes separados: uno es un componente de búsqueda de filtro con el formulario de entrada para buscar el filtro aplicable y el otro es un componente de filtro aplicado que muestra el filtro aplicado con la opción de borrar. Quiero probar el comportamiento en broma de que al hacer clic en el botón Borrar del componente de filtro aplicado, borra la entrada del formulario en el componente de búsqueda de filtro.

En el proyecto, tengo un administrador de estado que observa el cambio de filtros y la limpieza se realiza llamando a una función useState para establecer el valor de entrada en vacío cuando hay un cambio de estado con un filtro no seleccionado coincidente. Funciona bien en las pruebas manuales.

El objetivo es escribir la prueba solo para el componente de búsqueda de filtros en lugar de representar dos componentes simulando el cambio de estado de la actualización de filtros, ya que no tengo acceso al botón Borrar. Pero después de burlarse del cambio de estado y asegurarse de que el filtro no esté seleccionado, el cuadro de entrada no se borra como lo hace en la interfaz de usuario esperada. No sé por qué el cambio de estado del filtro no borra la entrada porque sí se borra en el sitio de prueba.

 it('clears input when old filters are removed', async () => { mockAnswersActions({ setFilterOption, setOffset, executeFilterSearch: jest.fn().mockResolvedValue(labeledFilterSearchResponse) }); render(<FilterSearch searchFields={searchFieldsProp} />); const searchBarElement = screen.getByRole('textbox'); userEvent.type(searchBarElement, 'first name 1'); await waitFor(() => expect(screen.findByText('first name 1'))); userEvent.type(searchBarElement, '{arrowdown}{enter}'); await waitFor(() => { expect(setFilterOption).toBeCalledWith({ fieldId: 'name', matcher: Matcher.Equals, value: 'first name 1', displayName: 'first name 1', selected: true }); }) actions.setFilterOption({ fieldId: 'name', matcher: Matcher.Equals, value: 'first name 1', displayName: 'first name 1', selected: false }) await waitFor(() => { expect(setFilterOption).toBeCalledWith({ fieldId: 'name', matcher: Matcher.Equals, value: 'first name 1', displayName: 'first name 1', selected: false }); }) expect(searchBarElement).toHaveValue(''); });
about 4 years ago · Santiago Gelvez
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda