Skip to content

Assertions ​

Assertions regroupe les vérifications prêtes à l'emploi appliquées à un composant et à l'une de ses clés d'élément.

En pratique, cette namespace permet d'écrire des attentes plus lisibles et plus homogènes qu'une succession d'appels Playwright dispersés dans les tests.

Exemple simple ​

ts
import { Assertions, 
createComponent
,
createWebsite
, type Website } from "@duplojs/playwright";
import
test
from "playwright/test";
interface TestFixtures {
website
: Website;
} const
testClient
=
test
.
extend
<TestFixtures>({
async
website
({
page
,
context
},
use
) {
const
website
=
createWebsite
({
playwrightPage
:
page
,
playwrightBrowserContext
:
context
,
envConfig
: {
baseUrl
: "https://example.com",
}, }); await
use
(
website
);
}, }); const
searchForm
=
createComponent
(
"searchForm", {
getMainElement
({
body
}) {
return
body
.
locator
("[data-search-form]");
},
getElements
({
mainElement
}) {
return {
query
:
mainElement
.
locator
("input"),
submit
:
mainElement
.
locator
("button[type='submit']"),
}; }, }, );
testClient
("assertions example", async({
website
}) => {
const
component
= await
website
.
iWantToSee
(
searchForm
);
await Assertions.
toHaveValue
(
component
, "query", "duplojs");
await Assertions.
toBeVisible
(
component
, "submit");
});

Ce qui se passe ici

  • le composant expose des éléments nommés
  • Assertions.toHaveValue(...) et Assertions.toBeVisible(...) ciblent ces éléments directement
  • le test reste orienté vérification métier plutôt que détail technique

À quoi ça sert ? ​

Assertions sert surtout à :

  • mutualiser les attentes fréquentes
  • garder un vocabulaire cohérent dans les tests
  • éviter de répéter les mêmes séquences d'assertions
  • centraliser des vérifications enrichies comme la visibilité préalable

toBeVisible ​

ts
Assertions.toBeVisible(component, elementKey)

Vérifie qu'un élément est visible.

toHaveText ​

ts
Assertions.toHaveText(component, elementKey, text)

Vérifie qu'un élément possède exactement le texte attendu.

toContainText ​

ts
Assertions.toContainText(component, elementKey, text)

Vérifie qu'un élément contient le texte attendu.

toHaveNoText ​

ts
Assertions.toHaveNoText(component, elementKey)

Vérifie qu'un élément n'a pas de texte.

toBeHidden ​

ts
Assertions.toBeHidden(component, elementKey)

Vérifie qu'un élément est caché.

toHaveQuantity ​

ts
Assertions.toHaveQuantity(component, elementKey, {
  quantity,
  operator?,
})

Vérifie le nombre d'éléments correspondant à un locator.

toBeEnabled ​

ts
Assertions.toBeEnabled(component, elementKey)

Vérifie qu'un élément est activé.

toBeChecked ​

ts
Assertions.toBeChecked(component, elementKey)

Vérifie qu'un élément est coché.

toBeDisabled ​

ts
Assertions.toBeDisabled(component, elementKey)

Vérifie qu'un élément est désactivé.

toHaveAttribute ​

ts
Assertions.toHaveAttribute(component, elementKey, name, value?)

Vérifie qu'un élément possède un attribut attendu.

toHaveClass ​

ts
Assertions.toHaveClass(component, elementKey, value)

Vérifie qu'un élément possède la classe attendue.

toHaveValue ​

ts
Assertions.toHaveValue(component, elementKey, value)

Vérifie qu'un élément possède la valeur attendue.

toBeBusy ​

ts
Assertions.toBeBusy(component, elementKey)

Vérifie qu'un élément porte aria-busy="true".

toBeNotBusy ​

ts
Assertions.toBeNotBusy(component, elementKey)

Vérifie qu'un élément porte aria-busy="false".

withStep ​

ts
Assertions.withStep(label).assertion(component, elementKey, ...args)

Retourne les mêmes assertions, mais regroupées sous un test.step(...) personnalisé. L'appel utile est ensuite chaîné sur le wrapper retourné.

Voir aussi ​

  • Actions - pour les interactions prêtes à l'emploi sur les composants.
  • Component - pour définir les éléments sur lesquels les assertions s'appliquent.
  • Component Interaction - pour créer des vérifications personnalisées si les assertions fournies ne suffisent pas.

Diffusé sous licence MIT.