vitest-environment-prisma
v0.4.2
Published
Vitest testing environment for prisma migrate and teardown scripts
Readme
vitest-environment-prisma
Vitest testing module for prisma migrate and teardown scripts. See ⚡️ Vitest Environment for more details.
Actions
Setup
Environment runs prisma migrate deploy in your application to bootstrap test database.
:warning: Be aware that this can update your production database if you are not carefull. Use this only on development and always check your .env credentials
Teardown
Environment will drop your test database depending on your adapter
Adapters
Databases supported by now:
mysqlpsqlsqlite
Setup Environment
Example:
vite.config.ts
import { defineConfig } from 'vitest/config'
export default defineConfig({
test: {
environment: 'prisma', // Required
environmentOptions: {
adapter: 'mysql',
envFile: '.env.test',
prismaEnvVarName: 'DATABASE_URL', // Optional
transformMode: 'ssr', // Optional
}
}
})Environment Options
| Name | Description | Default |
|:-----------------|:---------------------------------------------------------------|:---------------|
| adapter | Name database adapter. See Adapters | mysql |
| envFile | Name of the .env file for test suite | .env.test |
| multiSchema | Option to support multiple prisma schemas | false |
| schemaPrefix | Prefix to attach on the database name | |
| prismaEnvVarName | The environment variable used for the Prisma DB connection URL | DATABASE_URL |
| transformMode | This value determines how plugins will transform source code | ssr |
Database Credentials
The following keys must be present on your .env.test file:
| Name | Description | Example |
|:----------------|:----------------------------------|:-------------------------|
| DATABASE_USER | Database user credential | root |
| DATABASE_PASS | Database user password credential | root |
| DATABASE_HOST | Database connection host | localhost, 127.0.0.1 |
| DATABASE_PORT | Database connection port | 5432, 3306 |
| DATABASE_NAME | Database name | mydb |
These credentials are necessary to construct the DATABASE_URL env value (can be overridden, see above) to which the
prisma connection will be made.
See the Prisma database connections for
more information on how to properly set the connection URL from an environment variable.
Sqlite config
If you are using the sqlite adapter only the DATABASE_NAME env is required. The database file will be written to the
/tmp directory.
Make sure to use only the name:
DATABASE_NAME=mydb:heavy_check_mark:DATABASE_NAME=mydb.db:heavy_check_mark:DATABASE_NAME=file:/mydb:heavy_multiplication_x:DATABASE_NAME=../mydb:heavy_multiplication_x:
