Skip to main content
@cloudflare/vitest-pool-workers is a custom Vitest pool that runs your tests inside the actual Cloudflare Workers runtime (workerd), providing an authentic testing environment with access to all Workers APIs and bindings.

Installation

Configuration

defineWorkersConfig()

Define a Vitest config for testing Workers.
WorkersUserConfigExport
required
Vitest configuration object
WorkersUserConfigExport
Enhanced Vitest configuration with Workers pool settings

defineWorkersProject()

Define a workspace project config for Workers testing.

Test Runtime API

The cloudflare:test module provides utilities for testing Workers inside the runtime.

env

Access Worker bindings in tests.
Env
Environment object containing all Worker bindings defined in your Wrangler config:
  • KV namespaces
  • D1 databases
  • R2 buckets
  • Durable Objects
  • Service bindings
  • Queue producers
  • Environment variables

SELF

Reference to the current Worker for making fetch requests.
Fetcher
Fetcher object for the current Worker

fetchMock

Mock outbound fetch requests from your Worker.
FetchMock
Undici MockAgent instance for mocking fetch requests

createExecutionContext()

Create an ExecutionContext for testing.
void
No parameters
ExecutionContext
Execution context with waitUntil() and passThroughOnException()

waitOnExecutionContext()

Wait for all waitUntil() promises to complete.
ExecutionContext
required
Execution context to wait on
Promise<void>
Resolves when all waitUntil promises complete

getQueueResult()

Get messages sent to a queue during a test.
Queue
required
Queue binding to get results from
Promise<QueueResult>
Queue result containing sent messages

Testing Helpers

runInDurableObject()

Run code inside a Durable Object instance.
DurableObjectNamespace
required
Durable Object namespace
DurableObjectId
required
Durable Object ID
(instance: T, state: DurableObjectState) => Promise<R>
required
Function to run with access to the instance and state
Promise<R>
Result of the function

Configuration Examples

Basic Setup

With Miniflare Options

Isolated Storage

Workspace Projects


Complete Test Example