0.4.2 • Published 5 months ago

vitest-environment-prisma v0.4.2

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

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:

  • mysql
  • psql
  • sqlite

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

NameDescriptionDefault
adapterName database adapter. See Adaptersmysql
envFileName of the .env file for test suite.env.test
multiSchemaOption to support multiple prisma schemasfalse
schemaPrefixPrefix to attach on the database name
prismaEnvVarNameThe environment variable used for the Prisma DB connection URLDATABASE_URL
transformModeThis value determines how plugins will transform source codessr

Database Credentials

The following keys must be present on your .env.test file:

NameDescriptionExample
DATABASE_USERDatabase user credentialroot
DATABASE_PASSDatabase user password credentialroot
DATABASE_HOSTDatabase connection hostlocalhost, 127.0.0.1
DATABASE_PORTDatabase connection port5432, 3306
DATABASE_NAMEDatabase namemydb

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:
0.4.2

5 months ago

0.3.0

1 year ago

0.4.1

1 year ago

0.4.0

1 year ago

0.3.1

1 year ago

0.2.2

1 year ago

0.2.1

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago