Skip to main content

TestDbInitializer

Defines how the e2e TestService sets up a particular DB to run a single test suite. The @vendure/testing package ships with initializers for sql.js, MySQL & Postgres.

Custom initializers can be created by implementing this interface and registering it with the registerInitializer function:

Example

Ts
Signature

init

method(testFileName: string, connectionOptions: T) => Promise<T>

Responsible for creating a database for the current test suite. Typically, this method will:

  • use the testFileName parameter to derive a database name
  • create the database
  • mutate the connetionOptions object to point to that new database

populate

method(populateFn: () => Promise<void>) => Promise<void>

Execute the populateFn to populate your database.

destroy

method() => void | Promise<void>

Clean up any resources used during the init() phase (i.e. close open DB connections)

Was this chapter helpful?
Report Issue
Edited Feb 25, 2026ยทEdit this page