Vitest implémente un sous-ensemble des API @testing-library/user-event en utilisant le Chrome DevTools Protocol ou webdriver au lieu de simuler des événements, ce qui rend le comportement du navigateur plus fiable et cohérent avec la façon dont les utilisateurs interagissent avec une page.
Presque chaque méthode userEvent hérite de ses options de fournisseur. Pour voir toutes les options disponibles dans votre IDE, ajoutez les types webdriver ou playwright (en fonction de votre fournisseur) à votre fichier tsconfig.json :
Crée une nouvelle instance d’événement utilisateur. Cela est utile si vous devez garder l’état du clavier pour appuyer et relâcher correctement les boutons.
userEvent.click
Type:(element: Element | Locator, options?: UserEventClickOptions) => Promise<void>
Clique sur un élément. Hérite des options du fournisseur. Veuillez vous référer à la documentation de votre fournisseur pour une explication détaillée sur le fonctionnement de cette méthode.
Type:(element: Element | Locator, options?: UserEventTripleClickOptions) => Promise<void>
Déclenche un événement de triple clic sur un élément. Étant donné qu’il n’y a pas de tripleclick dans l’API du navigateur, cette méthode déclenchera trois événements de clic consécutifs, vous devez donc vérifier le détail de l’événement click pour filtrer l’événement : evt.detail === 3.
Veuillez vous référer à la documentation de votre fournisseur pour une explication détaillée sur le fonctionnement de cette méthode.
Type:(element: Element | Locator, text: string) => Promise<void>
Définissez une valeur au champ input/textarea/conteneditable. Cela supprimera tout texte existant dans l’entrée avant de définir la nouvelle valeur.
Cette méthode met l’élément au point, le remplit et déclenche un événement input après le remplissage. Vous pouvez utiliser une chaîne vide pour effacer le champ.
Le userEvent.keyboard vous permet de déclencher des frappes au clavier. Si un champ a le focus, cela tapera des caractères dans ce champ. Sinon, cela déclenchera des événements de clavier sur l’élément actuellement focalisé (document.body s’il n’y a aucun élément focalisé).
Type:(element: Element | Locator, text: string, options?: UserEventTypeOptions) => Promise<void>
La méthode type implémente l’utilitaire type de @testing-library/user-event construit sur l’API keyboard.
Cette fonction vous permet de taper des caractères dans un élément input/textarea/conteneditable. Elle supporte la syntaxe keyboard de user-event.
Si vous avez juste besoin d’appuyer sur des caractères sans un champ d’entrée, utilisez l’API userEvent.keyboard.
Vitest n’expose pas la méthode .type sur le localisateur comme input.type car elle n’existe que pour des raisons de compatibilité avec la bibliothèque userEvent. Il est recommandé d’utiliser .fill à la place, car elle est plus rapide.
Type:(element: Element | Locator, options?: UserEventHoverOptions) => Promise<void>
Cette méthode déplace la position du curseur vers l’élément sélectionné. Veuillez vous référer à la documentation de votre fournisseur pour une explication détaillée sur le fonctionnement de cette méthode.