Testing Setup
StateMesh provides testing utilities for creating isolated mesh instances, mocking actions and transactions, and asserting state.
createTestMesh
Create an isolated mesh for testing:
ts
import { createTestMesh } from "statemesh-core/testing";
const mesh = createTestMesh({
state: {
cart: { items: [], status: "idle", error: null }
}
});createTestMesh returns a TestMesh with all standard mesh methods plus test helpers.
Mock Actions
ts
mesh.mockAction("cart.addItem", (state, product) => {
state.cart.items.push(product);
});Mock Transaction Effects
ts
mesh.mockTransactionEffect("cart.checkout", async () => {
throw new Error("Payment failed");
});Mock Resources
ts
mesh.mockResource("products.list", {
data: [{ id: "1", name: "Keyboard" }],
params: { search: "" }
});Assert State
ts
mesh.assertStatePath("cart.items", []);
mesh.assertStatePath("cart.status", "idle");Assert Transaction Status
ts
mesh.assertTransactionStatus("cart.checkout", "error");Assert Resource Status
ts
mesh.assertResourceStatus("products.list", "success");Important Notes
TIP
createTestMesh creates an isolated instance with no persistence, sync, or DevTools. Perfect for unit tests.
Next Steps
- Testing Patterns — Common test patterns and strategies
