Skip to main content
Glama

Prisma MCP Server

Official
by prisma
Apache 2.0
4
44,213
  • Linux
  • Apple
tests.ts3.77 kB
import { AdapterProviders, Providers } from '../../_utils/providers' import testMatrix from './_matrix' // @ts-ignore import type { Prisma as PrismaNamespace, PrismaClient } from './generated/prisma/client' declare let prisma: PrismaClient declare let Prisma: typeof PrismaNamespace // https://github.com/prisma/prisma/issues/11233 testMatrix.setupTestSuite( ({ provider, driverAdapter, clientEngineExecutor }) => { const usesMariadbDriver = driverAdapter === AdapterProviders.JS_MARIADB || (clientEngineExecutor === 'remote' && provider === Providers.MYSQL) test('should not throw when using Prisma.empty inside $executeRaw', async () => { expect.assertions(1) let result: any try { result = await prisma.$executeRaw(Prisma.empty) } catch (error) { result = error } switch (provider) { case Providers.SQLITE: // TODO the error does not match to the usual one if (driverAdapter === AdapterProviders.JS_LIBSQL) { expect((result as Error).message).toContain(': not an error') } else if (driverAdapter === AdapterProviders.JS_D1) { expect((result as Error).message).toContain('D1_ERROR: No SQL statements detected.') } else if (driverAdapter === AdapterProviders.JS_BETTER_SQLITE3) { expect((result as Error).message).toContain('The supplied SQL string contains no statements') } else { expect((result as Error).message).toContain('Raw query failed. Code: `21`. Message: `not an error`') } break case Providers.POSTGRESQL: case Providers.COCKROACHDB: case Providers.SQLSERVER: expect(result).toEqual(0) break case Providers.MYSQL: if (usesMariadbDriver) { expect((result as Error).message).toContain('sql parameter is mandatory') } else { expect((result as Error).message).toContain('Query was empty') } break default: throw new Error('invalid provider') } }) test('should not throw when using Prisma.empty inside $queryRaw', async () => { expect.assertions(1) let result: any try { result = await prisma.$queryRaw(Prisma.empty) } catch (error) { result = error } switch (provider) { case Providers.SQLITE: // TODO the error does not match to the usual one if (driverAdapter === AdapterProviders.JS_LIBSQL) { expect((result as Error).message).toContain(': not an error') } else if (driverAdapter === AdapterProviders.JS_D1) { expect((result as Error).message).toContain('D1_ERROR: No SQL statements detected.') } else if (driverAdapter === AdapterProviders.JS_BETTER_SQLITE3) { expect((result as Error).message).toContain('The supplied SQL string contains no statements') } else { expect((result as Error).message).toContain('Raw query failed. Code: `21`. Message: `not an error`') } break case Providers.POSTGRESQL: case Providers.COCKROACHDB: case Providers.SQLSERVER: expect(result).toEqual([]) break case Providers.MYSQL: if (usesMariadbDriver) { expect((result as Error).message).toContain('sql parameter is mandatory') } else { expect((result as Error).message).toContain('Query was empty') } break default: throw new Error('invalid provider') } }) }, { optOut: { from: [Providers.MONGODB], reason: '$raw methods not allowed when using 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