@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
Thecloudflare: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