Overview
The pixi-solid/testing module provides utilities for testing pixi-solid components and hooks without a live canvas:
import { mountScene, renderHook, createTestContext, createManualTicker, getByLabel, queryByLabel, getAllByLabel, cleanup,} from "pixi-solid/testing";API quick reference
Section titled “API quick reference”// Component tests — renders a Pixi display objectmountScene(() => <Container>...</Container>);// => { container: Pixi.Container, dispose: () => void }
// Hook/store tests — no scene renderingrenderHook(() => usePixiScreen(), { wrapper: ctx.Provider });// => { result: Accessor<Screen>, dispose: () => void }
// Mock contextscreateTestContext();// => { Provider, ticker: ManualTicker, renderer: TestRenderer, app: Pixi.Application, renderHook }
// Manual frame advancementcreateManualTicker();// => { ticker: Pixi.Ticker, fastForwardFrames(), fastForwardTime() }
// Scene graph queriesgetByLabel(root, "label"); // throws if not foundqueryByLabel(root, "label"); // returns undefined if not foundgetAllByLabel(root, "label"); // returns Pixi.DisplayObject[]
// Teardown (wire in afterEach)cleanup();When to use which
Section titled “When to use which”| Task | Function | Page |
|---|---|---|
| Render a component scene graph | mountScene | mount-scene |
| Test a hook or store (no scene needed) | renderHook | render-hook |
| Get mock contexts | createTestContext | create-test-context |
| Advance frames manually | createManualTicker | create-manual-ticker |
| Find a node by label | getByLabel / queryByLabel / getAllByLabel | scene-queries |
| Run all disposers | cleanup | cleanup |
jsdom / renderer caveats
Section titled “jsdom / renderer caveats”- Pixel-level rendering is not tested — use a real canvas for integration tests.
getContext()is not available — you will seeNot implemented: HTMLCanvasElement's getContext()warnings in test output. These warnings are normal and safe.- The mock
appis a minimal stub — it implements only the parts that pixi-solid hooks use.