Skip to main content

Test Isolation

Each test must be independent.

Principles

  1. Fresh database: Each test gets clean database state
  2. No shared state: Tests don't depend on execution order
  3. Setup/teardown: Use beforeAll/afterEach appropriately

Example

describe("FundService", () => {
let services: DomainServices;

beforeAll(async () => {
const db = await getTestDB(); // Fresh DB
services = createDomainServices({ db, env: {} as Env });
});

it("test 1", async () => {
// Independent test
});

it("test 2", async () => {
// Another independent test
});
});