Tester des composants
@bext-stack/framework/testing est une petite bibliothèque de test (style Testing Library) par-dessus les primitives de rendu + hydratation de bext et un DOM happy-dom. Rendez un composant à signaux, interrogez-le, interagissez, assertez — sans navigateur, avec bun test.
Astuce
Le module n'est jamais inclus dans vos bundles (il n'est pas ré-exporté par l'index — importez-le seulement depuis vos fichiers de test). render() fait le SSR puis l'hydratation réelle, donc vous testez exactement le chemin du navigateur : un clic déclenche le vrai gestionnaire et les marqueurs réactifs se mettent à jour.
Exemple
import { describe, expect, test } from "bun:test";
import { render } from "@bext-stack/framework/testing";
import Counter from "./Counter";
test("counter increments", () => {
const { text, getByTestId, click } = render(Counter, { start: 5 });
expect(text()).toContain("Count: 5");
click(getByTestId("inc"));
expect(text()).toContain("Count: 6");
});
// render(Component, props) server-renders the signals island, mounts it in a
// happy-dom container, and HYDRATES it — then returns:
// text() whole-container textContent
// getByText(m) deepest element matching a string / RegExp
// getByTestId(id) element by data-testid
// click(el) / type(el, value) / fire(el, event)