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

Counter.test.tsTypeScript
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)