Saltar al contenido principal

Opciones de Configuración

[Traducción Beta No Oficial]

Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →

Introducción

La biblioteca puede configurarse mediante la función configure, que acepta:

  • Un objeto JavaScript simple; se fusionará con la configuración existente. Ejemplo: configure({testIdAttribute: 'not-data-testid'})

  • Una función; recibirá la configuración existente y debe devolver un objeto JavaScript simple que se fusionará como arriba, ejemplo: configure(existingConfig => ({something: [...existingConfig.something, 'extra value for the something array']}))

Nota

Los wrappers específicos de frameworks como React Testing Library pueden agregar más opciones además de las mostradas.

setup-tests.js
import {configure} from '@testing-library/dom'
import serialize from 'my-custom-dom-serializer'

configure({
testIdAttribute: 'data-my-test-id',
getElementError: (message, container) => {
const customMessage = [message, serialize(container.firstChild)].join(
'\n\n',
)
return new Error(customMessage)
},
})

Opciones

computedStyleSupportsPseudoElements

Establécelo en true si window.getComputedStyle admite pseudo-elementos, es decir, un segundo argumento. Si estás usando testing-library en un navegador, casi siempre querrás establecer esto en true. Solo navegadores muy antiguos no admiten esta propiedad (como IE 8 y anteriores). Sin embargo, jsdom actualmente no admite el segundo argumento. Esto incluye versiones de jsdom anteriores a 16.4.0 y cualquier versión que registre una advertencia not implemented al llamar a getComputedStyle con un segundo argumento, por ejemplo: window.getComputedStyle(document.createElement('div'), '::after'). Por defecto es false.

defaultHidden

Valor por defecto para la opción hidden utilizada por getByRole. Por defecto es false.

defaultIgnore

Valor por defecto para la opción ignore usada por getByText. También determina los nodos ignorados al imprimir errores.

Por defecto: script, style.

showOriginalStackTrace

Por defecto, waitFor asegura que el stack trace de los errores lanzados por Testing Library se limpie y acorte para que sea más fácil identificar la parte de tu código que causó el error (los stack traces asíncronos son difíciles de depurar). Si deseas desactivar esto, establece showOriginalStackTrace en false. También puedes desactivarlo para una llamada específica en las opciones que pasas a waitFor.

throwSuggestions (experimental)

Cuando está activado, si existen consultas mejores, la prueba fallará y sugerirá una consulta alternativa. Por defecto es false.

Para desactivar una sugerencia en una consulta específica, añade {suggest:false} como opción.

screen.getByTestId('foo', {suggest: false}) // will not throw a suggestion
nota

Cuando esta opción está habilitada, puede proporcionar sugerencias que carecen de una implementación intuitiva. Típicamente esto sucede para roles que no pueden ser nombrados, especialmente párrafos. Por ejemplo, si intentas usar getByText, puedes encontrarte con el siguiente error:

TestingLibraryElementError: A better query is available, try this:
getByRole('paragraph')

Sin embargo, no hay una forma directa de consultar párrafos usando el parámetro de objeto de configuración, como en getByRole('paragraph', { name: 'Hello World' }).

Para solucionar este problema, puedes usar una función personalizada para validar la estructura del elemento, como se muestra en el ejemplo a continuación. Más información puede encontrarse en el issue de GitHub.

getByRole('paragraph', {
name: (_, element) => element.textContent === 'Hello world',
})

testIdAttribute

Atributo usado por getByTestId y consultas relacionadas. Por defecto es data-testid.

getElementError

Una función que devuelve el error utilizado cuando fallan las consultas get o find. Recibe el mensaje de error y el objeto contenedor como argumentos.

asyncUtilTimeout

Valor global de tiempo de espera en milisegundos utilizado por las utilidades waitFor. Por defecto es 1000ms.