Skip to main content
Glama

Prisma MCP Server

Official
by prisma
Apache 2.0
4
44,213
  • Linux
  • Apple
tests.ts2.57 kB
import { QueryEvent } from '../../../../src/runtime/getPrismaClient' import { Providers } from '../../_utils/providers' import { waitFor } from '../../_utils/tests/waitFor' import { NewPrismaClient } from '../../_utils/types' import testMatrix from './_matrix' // @ts-ignore import type { PrismaClient } from './generated/prisma/client' declare const newPrismaClient: NewPrismaClient<PrismaClient, typeof PrismaClient> // https://github.com/prisma/prisma/issues/6578 testMatrix.setupTestSuite( ({ provider }) => { let _prisma: ReturnType<typeof newPrismaClient> beforeAll(() => { _prisma = newPrismaClient({ log: [ { emit: 'event', level: 'query', }, ], }) }) afterAll(async () => { await _prisma.$disconnect() }) // TODO Planetscale InvalidArgument desc = Incorrect time value: '2023-09-30T03:07:55.276+00:00 test('should assert Dates, DateTimes, Times and UUIDs are wrapped in quotes and are deserializable', async () => { const date = new Date() let paramsString = '' // @ts-expect-error - client not typed for log opts for cross generator compatibility - can be improved once we drop the prisma-client-js generator _prisma.$on('query', (e) => { const event = e as unknown as QueryEvent if (event.query.includes('INSERT')) { paramsString = event.params } }) if (provider === Providers.SQLITE) { await _prisma.user.create({ // @ts-test-if: provider === Providers.SQLITE data: { dateTime: date, }, }) } else { await _prisma.user.create({ data: { dateTime: date, // @ts-test-if: provider !== Providers.SQLITE date: date, time: date, }, }) } await waitFor(() => { if (paramsString === '') { throw new Error('params not received from query logs') } }) // This test is asserting that JSON.parse does not throw because quotes are used const params = JSON.parse(paramsString) if (provider === Providers.SQLITE) { expect(params).toHaveLength(3) } else { expect(params).toHaveLength(5) } params.forEach((param) => { const isString = typeof param === 'string' expect(isString).toEqual(true) }) }) }, { optOut: { from: [Providers.MONGODB], reason: 'Params not applicable to mongodb', }, }, )

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