@starterlib/testing
v0.8.0
Published
Outils de test du socle frontal starter : harnais, fixtures, simulateurs. Jamais en dependance de production.
Maintainers
Readme
@starterlib/testing
Outils de test du socle frontal starter. Jamais en dependance de production.
Installation
pnpm add -D @starterlib/testing axe-coreContenu
verifierAccessibilite(container) : passe axe-core sur un fragment rendu et
echoue en nommant chaque violation, sa regle et l'element fautif.
import { verifierAccessibilite } from '@starterlib/testing';
it("ne produit aucune violation d'accessibilite", async () => {
const { container } = await render(MonComposant);
await verifierAccessibilite(container);
});⚠️ Sous jsdom, axe ne voit ni la mise en page ni la cascade CSS : le contraste, la taille des cibles et la visibilite reelle ne sont pas couverts. Ces controles demandent un vrai navigateur, et restent a cabler dans le depot.
amorcerJsdom() : comble ce que jsdom ne fournit pas — scrollIntoView
(absent) et le defilement de la fenetre (present mais inerte, il journalise
« Not implemented »). A poser une fois, en setupFiles :
// angular.json, cible `test` : "setupFiles": ["tools/amorce-de-test.ts"]
import { amorcerJsdom } from '@starterlib/testing';
amorcerJsdom();elementsFocalisables(racine) : ce que la tabulation traverse, dans l'ordre du
DOM. annonces(racine) et attendreLAnnonce(racine, texte) : ce que disent les
regions vivantes, sans attendre au hasard — l'echec dit ce qui a ete lu.
@starterlib/testing/ui
import { socleDeTest } from '@starterlib/testing/ui';
const socle = socleDeTest({ locale: 'fr-FR' });
await render(MonEcran, { providers: socle.fournisseurs });
socle.locale.set('en-GB'); // les formats doivent suivre, sans rechargement⚠️ Point d'entree separe parce qu'il importe @starterlib/ui : laisse dans le
tronc, il ferait compiler tout le paquet de composants dans les tests d'un paquet
qui ne s'en sert pas.
A venir
Simulateurs de reseau et de session, et un banc en vrai navigateur : sous jsdom, ni la mise en page ni la cascade CSS ne sont calculees.
