Passer au contenu

API Context

Vitest expose un module context via @vitest/browser/context. À partir de la version 2.0, il propose un petit ensemble d’utilitaires qui pourraient vous être utiles dans vos tests.

userEvent

/**
* Gestionnaire pour les interactions utilisateur. Le support est implémenté par le fournisseur de navigateur (`playwright` ou `webdriverio`).
* Si utilisé avec le fournisseur `preview`, il revient à des événements simulés via `@testing-library/user-event`.
* @experimental
*/
export const userEvent: {
setup: () => UserEvent
click: (element: Element, options?: UserEventClickOptions) => Promise<void>
dblClick: (element: Element, options?: UserEventDoubleClickOptions) => Promise<void>
tripleClick: (element: Element, options?: UserEventTripleClickOptions) => Promise<void>
selectOptions: (
element: Element,
values: HTMLElement | HTMLElement[] | string | string[],
options?: UserEventSelectOptions,
) => Promise<void>
keyboard: (text: string) => Promise<void>
type: (element: Element, text: string, options?: UserEventTypeOptions) => Promise<void>
clear: (element: Element) => Promise<void>
tab: (options?: UserEventTabOptions) => Promise<void>
hover: (element: Element, options?: UserEventHoverOptions) => Promise<void>
unhover: (element: Element, options?: UserEventHoverOptions) => Promise<void>
fill: (element: Element, text: string, options?: UserEventFillOptions) => Promise<void>
dragAndDrop: (source: Element, target: Element, options?: UserEventDragAndDropOptions) => Promise<void>
}

commands

/**
* Commandes disponibles pour le navigateur.
* Un raccourci vers `server.commands`.
*/
export const commands: BrowserCommands

page

L’export page fournit des utilitaires pour interagir avec la page actuelle.

export const page: {
/**
* Change la taille de la fenêtre d'affichage de l'iframe.
*/
viewport(width: number, height: number): Promise<void>
/**
* Prend une capture d'écran de l'iframe de test ou d'un élément spécifique.
* @returns Chemin vers le fichier de capture d'écran ou chemin et base64.
*/
screenshot(options: Omit<ScreenshotOptions, 'base64'> & { base64: true }): Promise<{
path: string
base64: string
}>
screenshot(options?: ScreenshotOptions): Promise<string>
/**
* Étendre l'objet `page` par défaut avec des méthodes personnalisées.
*/
extend(methods: Partial<BrowserPage>): BrowserPage
/**
* Enveloppe un élément HTML dans un `Locator`. Lors de la recherche d'éléments, la recherche renverra toujours cet élément.
*/
elementLocator(element: Element): Locator
/**
* APIs de Locator. Consultez sa documentation pour plus de détails.
*/
getByRole(role: ARIARole | string, options?: LocatorByRoleOptions): Locator
getByLabelText(text: string | RegExp, options?: LocatorOptions): Locator
getByTestId(text: string | RegExp): Locator
getByAltText(text: string | RegExp, options?: LocatorOptions): Locator
getByPlaceholder(text: string | RegExp, options?: LocatorOptions): Locator
getByText(text: string | RegExp, options?: LocatorOptions): Locator
getByTitle(text: string | RegExp, options?: LocatorOptions): Locator
}

cdp

L’export cdp retourne la session actuelle du Chrome DevTools Protocol. Cela est principalement utile pour les auteurs de bibliothèques pour construire des outils dessus.

export const cdp: () => CDPSession

server

L’export server représente l’environnement Node.js où le serveur Vitest s’exécute. Cela est principalement utile pour le débogage ou pour limiter vos tests en fonction de l’environnement.

export const server: {
/**
* Plateforme sur laquelle le serveur Vitest fonctionne.
* La même chose que d'appeler `process.platform` sur le serveur.
*/
platform: Platform
/**
* Version d'exécution du serveur Vitest.
* La même chose que d'appeler `process.version` sur le serveur.
*/
version: string
/**
* Nom du fournisseur de navigateur.
*/
provider: string
/**
* Nom du navigateur actuel.
*/
browser: string
/**
* Commandes disponibles pour le navigateur.
*/
commands: BrowserCommands
/**
* Configuration de test sérialisée.
*/
config: SerializedConfig
}