Skip to main content
Glama

Prisma MCP Server

Official
by prisma
Apache 2.0
4
44,217
  • Linux
  • Apple
tests.ts2.54 kB
import { faker } from '@faker-js/faker' import { Providers } from '../../../_utils/providers' import testMatrix from './_matrix' // @ts-ignore import type { PrismaClient } from './generated/prisma/client' declare let prisma: PrismaClient // https://github.com/prisma/prisma/issues/13766 testMatrix.setupTestSuite(({ provider }) => { test('relationMode=prisma should not prevent any updates on a model when updating a field which is not referenced in a relation', async () => { const orderId = faker.database.mongodbObjectId() const orderStatusHistoryId = faker.database.mongodbObjectId() await prisma.order.create({ data: { orderId, paid: false, statusMilestones: { create: { orderStatusHistoryId, status: 'NEW', }, }, }, }) const updatedOrder = await prisma.order.update({ where: { orderId, }, data: { paid: true, }, }) expect(updatedOrder).toMatchObject({ orderId, paid: true }) }) // _id is immutable for MongoDB testIf(provider !== Providers.MONGODB)( 'relationMode=prisma should prevent updates on a model if any other relation references a field', async () => { const orderId1 = faker.database.mongodbObjectId() const orderId2 = faker.database.mongodbObjectId() const orderStatusHistoryId1 = faker.database.mongodbObjectId() const orderStatusHistoryId2 = faker.database.mongodbObjectId() await prisma.order.create({ data: { orderId: orderId1, paid: false, statusMilestones: { create: { orderStatusHistoryId: orderStatusHistoryId1, status: 'NEW', }, }, }, }) await prisma.order.create({ data: { orderId: orderId2, paid: false, statusMilestones: { create: { orderStatusHistoryId: orderStatusHistoryId2, status: 'NEW', }, }, }, }) await expect( prisma.order.update({ where: { orderId: orderId1, }, data: { // @ts-test-if: provider !== Providers.MONGODB orderId: orderId2, }, }), ).rejects.toThrow( "The change you are trying to make would violate the required relation 'OrderToOrderStatusHistory' between the `OrderStatusHistory` and `Order` models.", ) }, ) })

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