Skip to main content
Glama

Prisma MCP Server

Official
by prisma
Apache 2.0
4
44,231
  • Linux
  • Apple
tests.ts5.29 kB
import { stripVTControlCharacters } from 'node:util' import { NewPrismaClient } from '../_utils/types' import testMatrix from './_matrix' // @ts-ignore import type { Prisma as PrismaNamespace, PrismaClient } from './generated/prisma/client' declare const newPrismaClient: NewPrismaClient<PrismaClient, typeof PrismaClient> declare let Prisma: typeof PrismaNamespace testMatrix.setupTestSuite( ({ driverAdapter, clientEngineExecutor }, _suiteMeta, clientMeta) => { describeIf(driverAdapter === undefined && clientEngineExecutor !== 'remote')( 'default case: no Driver Adapter', () => { test('PrismaClientInitializationError for missing env', async () => { const prisma = newPrismaClient() try { await prisma.$connect() } catch (e) { const message = stripVTControlCharacters(e.message as string) expect(e).toBeInstanceOf(Prisma.PrismaClientInitializationError) expect(message).toContain('error: Environment variable not found: DATABASE_URI.') } expect.hasAssertions() }) test('PrismaClientInitializationError for missing env and empty override', async () => { const prisma = newPrismaClient({ datasources: { db: {}, }, }) try { await prisma.$connect() } catch (e) { const message = stripVTControlCharacters(e.message as string) expect(e).toBeInstanceOf(Prisma.PrismaClientInitializationError) expect(message).toContain('error: Environment variable not found: DATABASE_URI.') } expect.hasAssertions() }) testIf(clientMeta.dataProxy && clientMeta.runtime === 'edge')( 'PrismaClientInitializationError for missing env on edge', async () => { const prisma = newPrismaClient() try { await prisma.$connect() } catch (e) { const message = stripVTControlCharacters(e.message as string) expect(e).toBeInstanceOf(Prisma.PrismaClientInitializationError) expect(message).toMatchInlineSnapshot(`"error: Environment variable not found: DATABASE_URI."`) } expect.hasAssertions() }, ) testIf(clientMeta.dataProxy && clientMeta.runtime === 'edge')( 'PrismaClientInitializationError for missing env on edge on cloudflare', async () => { const originalNavigator = globalThis.navigator globalThis.navigator = { ...originalNavigator, userAgent: 'Cloudflare-Workers' } const prisma = newPrismaClient() try { await prisma.$connect() } catch (e) { const message = stripVTControlCharacters(e.message as string) expect(e).toBeInstanceOf(Prisma.PrismaClientInitializationError) expect(message).toMatchInlineSnapshot(` "error: Environment variable not found: DATABASE_URI. In Cloudflare module Workers, environment variables are available only in the Worker's \`env\` parameter of \`fetch\`. To solve this, provide the connection string directly: https://pris.ly/d/cloudflare-datasource-url" `) } expect.hasAssertions() globalThis.navigator = { ...originalNavigator } }, ) testIf(clientMeta.dataProxy && clientMeta.runtime === 'node')( 'PrismaClientInitializationError for missing env with --no-engine on node', async () => { const prisma = newPrismaClient() try { await prisma.$connect() } catch (e) { const message = stripVTControlCharacters(e.message as string) expect(e).toBeInstanceOf(Prisma.PrismaClientInitializationError) expect(message).toMatchInlineSnapshot(`"error: Environment variable not found: DATABASE_URI."`) } expect.hasAssertions() }, ) }, ) describeIf(driverAdapter !== undefined)('with Driver Adapters', () => { test('Initialisation works even when missing env var referenced in the schema', async () => { const prisma = newPrismaClient() await prisma.$connect() }) test('PrismaClientInitializationError for missing env and empty override', () => { try { newPrismaClient({ datasources: { db: {}, }, }) } catch (e) { const message = stripVTControlCharacters(e.message as string) expect(e).toBeInstanceOf(Prisma.PrismaClientInitializationError) expect(message).toMatchInlineSnapshot( `"Custom datasource configuration is not compatible with Prisma Driver Adapters. Please define the database connection string directly in the Driver Adapter configuration."`, ) } expect.hasAssertions() }) }) }, { skipDb: true, skipDefaultClientInstance: true, skipEngine: { from: ['binary'], reason: 'TODO: fails with timeout on CI: https://github.com/prisma/team-orm/issues/638', }, }, )

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