Skip to main content
Glama

Prisma MCP Server

Official
by prisma
Apache 2.0
4
44,216
  • Linux
  • Apple
tests.ts2.89 kB
import { faker } from '@faker-js/faker' import testMatrix from './_matrix' // @ts-ignore import type { PrismaClient } from './generated/prisma/client' declare const prisma: PrismaClient const name = faker.lorem.sentence() testMatrix.setupTestSuite((_suiteConfig, _suiteMeta, { runtime }) => { beforeAll(async () => { const { id: storeId } = await prisma.store.create({ data: { name }, }) await prisma.product.create({ data: { title: 'Potato', quantity: 100, minQuantity: 50, maxQuantity: 150, wrongType: 1, storeId, }, }) await prisma.product.create({ data: { title: 'Rice', quantity: 500, minQuantity: 20, maxQuantity: 200, wrongType: 1, storeId, }, }) await prisma.product.create({ data: { title: 'Tomato', quantity: 30, minQuantity: 100, maxQuantity: 200, wrongType: 1, storeId, }, }) }) test('single condition', async () => { const products = await prisma.product.findMany({ where: { quantity: { gt: prisma.product.fields.maxQuantity }, }, }) expect(products).toEqual([expect.objectContaining({ title: 'Rice' })]) }) test('multiple condition', async () => { const products = await prisma.product.findMany({ where: { quantity: { gt: prisma.product.fields.minQuantity, lt: prisma.product.fields.maxQuantity }, }, }) expect(products).toEqual([expect.objectContaining({ title: 'Potato' })]) }) test('aggregate', async () => { const products = await prisma.product.aggregate({ where: { quantity: { lt: prisma.product.fields.maxQuantity }, }, _sum: { quantity: true, }, }) expect(String(products._sum.quantity)).toBe('130') }) test('relationship', async () => { const store = await prisma.store.findFirst({ where: { name }, select: { products: { where: { quantity: { gt: prisma.product.fields.maxQuantity } } } }, }) expect(store?.products).toEqual([expect.objectContaining({ title: 'Rice' })]) }) // TODO: Edge: skipped because of the error snapshot testIf(runtime !== 'edge')('wrong column numeric type', async () => { const products = prisma.product.findMany({ where: { quantity: { // @ts-expect-error gt: prisma.product.fields.wrongType, }, }, }) await expect(products).rejects.toMatchPrismaErrorSnapshot() }) test('via extended client', async () => { const xprisma = prisma.$extends({}) const products = await xprisma.product.findMany({ where: { quantity: { gt: xprisma.product.fields.maxQuantity }, }, }) expect(products).toEqual([expect.objectContaining({ title: 'Rice' })]) }) })

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