Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

169
Visualizações
Error de mecanografiado de consulta personalizada de la biblioteca de prueba

En un proyecto actual que usa react con jest y @testing-library/react , estoy implementando consultas personalizadas para consultar el contenido de texto de los componentes.

La consulta personalizada (creada con el método buildQueries de testing-library) que quiero usar recibe dos parámetros (uno es opcional). Cuando quiero agregar un segundo parámetro, Typescript me dice que solo se puede pasar un argumento.

 const queryAllByTextContent = ( container: HTMLElement, text: string | RegExp, options?: QueryParameterOptions ): HTMLElement[] => { const { exact = false } = options ?? { }; return queryAllByText(container, (content, node): boolean => { if (!node) { return false; } const nodeHasSearchText = nodeContainsSearchText({ searchText: text, exact, node }); // eslint-disable-next-line unicorn/prefer-spread const childNodesDontHaveSearchText = Array.from(node.children).every( (childNode): boolean => !nodeContainsSearchText({ searchText: text, exact, node: childNode }) ); return nodeHasSearchText && childNodesDontHaveSearchText; }); }; const getMultipleError = ( container: Element | null, text: string | RegExp ): string => `Found multiple elements with the text: ${text}`; const getMissingError = ( container: Element | null, text: string | RegExp ): string => `Unable to find an element with the text: ${text}`; const [ queryByTextContent, getAllByTextContent, getByTextContent, findAllByTextContent, findByTextContent ] = buildQueries(queryAllByTextContent, getMultipleError, getMissingError);

Creé un repositorio de Github con un ejemplo de trabajo:

https://github.com/desudo/ejemplo-broma-con-react-testing-library

Los archivos más importantes son:

/test/helpers/textContentQueries.ts -> queryAllByTextContent /test/component/Price.test.tsx

Lo que descubrí :

El primer parámetro de la consulta personalizada tiene que ser de tipo string | RegExp . Cuando configuro el tipo en solo una cadena, todo funciona según lo previsto.

IMPORTANTE

Las pruebas de ejemplo son solo pruebas ficticias para mostrar el error de mecanografiado.


¡Gracias por cualquier pista o solución!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Una forma de solucionar este problema es agregar las options?: QueryParameterOptions a getMultipleError y getMissingError .

Esto se debe al tipo que se define bajo el capó de buildQueries .

Ciertamente no me gusta esta solución porque no estamos usando el parámetro de opciones en ninguno de estos dos métodos.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda