Aller au contenu principal

Configuration

[Traduction Bêta Non Officielle]

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

Lorsque les utilisateurs interagissent dans le navigateur, par exemple en appuyant sur des touches du clavier, ils interagissent avec une couche d'interface utilisateur que le navigateur leur présente. Le navigateur interprète ensuite ces entrées, modifie potentiellement le DOM sous-jacent en conséquence et déclenche des événements dits de confiance.
La couche d'interface et ces événements de confiance ne sont pas accessibles programmatiquement.
C'est pourquoi user-event doit mettre en place des solutions de contournement et simuler la couche d'interface pour reproduire les interactions utilisateur telles qu'elles se produiraient dans le navigateur.

Démarrer une session avec setup()

setup(options?: Options): UserEvent

L'API userEvent.setup() applique ces solutions de contournement au document et permet de configurer une "instance" de user-event.
Les méthodes de cette instance partagent un état commun de périphérique d'entrée, par exemple quelles touches sont enfoncées.

Cela permet d'écrire plusieurs interactions consécutives qui se comportent exactement comme les interactions décrites d'un utilisateur réel.

import userEvent from '@testing-library/user-event'

const user = userEvent.setup()

await user.keyboard('[ShiftLeft>]') // Press Shift (without releasing it)
await user.click(element) // Perform a click with `shiftKey: true`

L'instance expose une autre API .setup() qui permet de configurer une nouvelle instance partageant le même état de périphérique d'entrée.

L'API Clipboard n'est généralement pas disponible en dehors d'un contexte sécurisé.
Pour permettre le test des flux impliquant le presse-papiers, userEvent.setup() remplace window.navigator.clipboard par un stub.

APIs directes

Vous pouvez également appeler les APIs directement via l'export par défaut. Cela appellera interne setup puis utilisera la méthode sur l'instance.

Cette approche existe pour faciliter la transition vers la version 14 et l'écriture de tests simples. L'utilisation des méthodes sur les instances retournées par userEvent.setup() est recommandée.