🏭

prisma-fabbricaをvitest-environment-vprismaで使うためのSetUp

2024/05/01に公開

prisma-fabbricaは、Prismaのジェネレータであり、schema.prismaからレコードを作成するためのヘルパーを生成します。これを使うことで、シードデータの作成やテストデータの作成を簡単に行うことができます。

https://github.com/Quramy/prisma-fabbrica

vitest-environment-vprismaは、PrismaとVitestを組み合わせたテスト環境を提供します。各テストケースをトランザクションで分離し、テストの完了後にロールバックすることで、テスト間の依存関係を排除します。

https://github.com/aiji42/vitest-environment-vprisma

vitest-environment-vprismaは、prisma-fabbricaの作者であるQuramyさんが作成したjest-prismaというライブラリをベースにして作成されています。

https://github.com/Quramy/jest-prisma

jest-prismaでは、Tips > Works with jest-prismaにjest-prismaとprisma-fabbricaを組み合わせるための設定が記載されていますが、vitest-environment-vprismaに向けた設定は記載されていません。

そこで、本記事では、vitest-environment-vprismaを使う際のprisma-fabbricaの設定方法を紹介します。

SetUp

vitest-environment-vprismaの基本的な設定に加えて、setUpFileとしてvitest.setup.tsを追加します。

vitest.config.ts
import { defineConfig } from "vite";

export default defineConfig({
  test: {
    globals: true,
    environment: "vprisma",
    setupFiles: ["vitest-environment-vprisma/setup", "vitest.setup.ts"] // vitest.setup.tsを追加
  },
});

vitest.setup.tsにprisma-fabbricaの設定を記載します。

vitest.setup.ts
import { initialize, resetSequence } from "./__generated__/fabbrica";

beforeAll(() => {
  initialize({
    prisma: () => vPrisma.client,
  });
});

beforeEach(() => resetSequence());

この設定は、prisma-fabbricaのソースコードに含まれるjest-prisma向けの設定を参考にしています。

https://github.com/Quramy/prisma-fabbrica/blob/main/packages/prisma-fabbrica/src/scripts/jest-prisma/setup.ts

以上の設定により、vitest-environment-vprismaとprisma-fabbricaを組み合わせて使用することができるようになります。

GitHubで編集を提案

Discussion