Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

193
Views
Cómo hacer coincidir un nodo principal según el texto del nodo secundario en React Testing Library

Estoy tratando de escribir algunas pruebas para dos listas de usuarios (usuarios y miembros, marcado idéntico, contenido semántico diferente) en React Testing Library. Los detalles de cada usuario están dentro de un elemento span .

Tengo este árbol DOM:

 <div> <span> <div> <b>Text 1</b> </div> <div> <!-- other elements here --> </div> </span> </div> <div> <span> <div> <b>Text 2</b> </div> <div> <!-- other elements here --> </div> </span> </div> <div> <span> <div> <b>Text 3</b> </div> <div> <!-- other elements here --> </div> </span> </div>

Quiero hacer coincidir el elemento span (porque maneja la lógica onClick ) en función del texto dentro del elemento secundario b (porque contiene el nombre y el apellido del usuario).

Intenté hacerlo de esta manera:

 const getUsersLists = (doc) => ({ usersList: doc.querySelector('.users-users-list'), membersList: doc.querySelector('.members-users-list'), }); const getUser = (name, list) => ( screen.findByText(name), { selector: 'span' }, { container: list }) ); test('users exist', () => { const { usersList } = getUsersLists(document); const sampleUser = await getUser('Text 1', usersList); expect(sampleUser).toBeInTheDocument(); });

El problema:

Esos comparadores encuentran con éxito el Text 1 si elimino el objeto de opciones { selector: 'span' } del método getUser . Tan pronto como le digo a RTL que busque un elemento de span , no puede encontrar nada.

También quiero evitar más referencias a document.querySelector y class/ID (incluido data-testid ).

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!