Skip to main content
Glama

Prisma MCP Server

Official
by prisma
Apache 2.0
4
44,213
  • Linux
  • Apple
tests.ts2.69 kB
import { stripVTControlCharacters } from 'node:util' 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> testMatrix.setupTestSuite( ({ provider }, _suiteMeta, clientMeta) => { const OLD_ENV = { ...process.env } const restoreEnv = () => { for (const key of Object.keys(process.env)) { if (!(key in OLD_ENV)) { delete process.env[key] } } for (const [key, value] of Object.entries(OLD_ENV)) { if (value === undefined) { delete process.env[key] } else { process.env[key] = value } } } beforeEach(() => { restoreEnv() process.env[`DATABASE_URI_${provider}`] = 'http://some-invalid-url' }) afterEach(() => { restoreEnv() }) test('PrismaClientInitializationError for invalid env', async () => { // This test often fails on macOS CI with thrown: "Exceeded timeout of // 60000 ms for a hook. Retrying might help, let's find out const isMacCI = Boolean(process.env.CI) && ['darwin'].includes(process.platform) if (isMacCI) { jest.retryTimes(3) } const prisma = newPrismaClient() const promise = prisma.$connect() if (!clientMeta.dataProxy) { await promise.catch((e) => { const message = stripVTControlCharacters(e.message) expect(e.name).toEqual('PrismaClientInitializationError') expect(message).toContain('Error validating datasource `db`: the URL must start with the protocol') }) } else if (['edge', 'node', 'wasm-engine-edge'].includes(clientMeta.runtime)) { await promise.catch((e) => { const message = stripVTControlCharacters(e.message) expect(e.name).toEqual('InvalidDatasourceError') expect(message).toContain( 'Error validating datasource `db`: the URL must start with the protocol `prisma://`', ) }) } else { throw new Error('Unhandled case') } }) }, { skipDb: true, skipDefaultClientInstance: true, // So we can manually call connect for this test skip(when, { clientEngineExecutor }) { when( clientEngineExecutor === 'remote', ` When using client engine, since the URL won't be a valid Accelerate URL, we will take the local executor code path and will show an error about the missing driver adapter instead, which is not what this test is about. `, ) }, }, )

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