Skip to content

createTestRoot

createTestRoot() is for testing stores, hooks, or any logic that has signals inside or requires context but does not render a scene. It runs code in a temporary Solid root and returns the result value — no JSX resolution, no Pixi node output.

type CreateTestRootResult<T> = {
value: T;
dispose: () => void;
};

Unlike mountScene, this does not resolve JSX — it runs the callback directly. Bring your own providers.

import { usePixiScreen } from "pixi-solid";
import { createTestRoot, createTestContext } from "pixi-solid/testing";
const ctx = createTestContext();
const { value: screen } = createTestRoot(() => (
<ctx.Provider>
{usePixiScreen()}
</ctx.Provider>
));
expect(screen.width).toBe(800);
expect(screen.height).toBe(600);
expect(() => createTestRoot(() => usePixiScreen())).toThrow();
  • Testing stores or hooks that have signals inside
  • Testing logic that requires context (usePixiScreen, getPixiApp, etc.) but doesn't render a scene
  • Error testing for missing context

For testing view components that render a Pixi display object, use mountScene instead.