Skip to main content
Glama
prisma

Prisma MCP Server

Official
by prisma
test.ts2.28 kB
import testMatrix from './_matrix' // @ts-ignore import type { PrismaClient } from './generated/prisma/client' declare let prisma: PrismaClient /** * Regression test for invalid enum value error handling. * * When PostgreSQL rejects an invalid enum value with error code 22P02 * (invalid_text_representation), the error should be properly converted * to a user-facing error (P2007). * * This test creates a mismatch between the Prisma schema enum and the database * enum by modifying the database enum after migration, then attempts to insert * a value that exists in the Prisma schema but not in the database. */ testMatrix.setupTestSuite( () => { beforeAll(async () => { // Remove PENDING from the database enum to create a mismatch with Prisma schema // We need to recreate the enum type since PostgreSQL doesn't allow removing values await prisma.$executeRawUnsafe(` -- Remove the default constraint temporarily ALTER TABLE "User" ALTER COLUMN "status" DROP DEFAULT; -- Create a new enum type without PENDING CREATE TYPE "Status_new" AS ENUM ('ACTIVE', 'INACTIVE'); -- Update the column to use the new type ALTER TABLE "User" ALTER COLUMN "status" TYPE "Status_new" USING "status"::text::"Status_new"; -- Drop the old type and rename the new one DROP TYPE "Status"; ALTER TYPE "Status_new" RENAME TO "Status"; `) }) test('returns P2007 error when inserting enum value that does not exist in database', async () => { // PENDING exists in Prisma schema but not in database enum anymore // This should trigger PostgreSQL error 22P02 (invalid_text_representation) // which should be mapped to P2007 (Data validation error) const result = await prisma.user .create({ data: { status: 'PENDING', }, }) .catch((e) => e) expect(result.name).toBe('PrismaClientKnownRequestError') expect(result.code).toBe('P2007') expect(result.message).toContain('invalid input value for enum') }) }, { optOut: { from: ['mysql', 'cockroachdb', 'mongodb', 'sqlite', 'sqlserver'], reason: 'Testing PostgreSQL-specific enum error handling', }, }, )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/prisma/prisma'

If you have feedback or need assistance with the MCP directory API, please join our Discord server