tests.ts•1.49 kB
import testMatrix from './_matrix'
// @ts-ignore
import type { PrismaClient } from './generated/prisma/client'
declare let prisma: PrismaClient
// https://github.com/prisma/prisma/issues/13089
testMatrix.setupTestSuite(
  () => {
    beforeAll(async () => {
      await prisma.users.create({
        data: {
          firstName: 'foo',
        },
      })
      await prisma.users.create({
        data: {
          firstName: '$foo',
        },
      })
    })
    test('should return records when using a `$` in the search string', async () => {
      const records = await prisma.users.findMany({
        where: {
          firstName: '$foo',
        },
      })
      expect(records).toHaveLength(1)
      expect(records[0].firstName).toEqual('$foo')
    })
    test('should update records when using a `$` in the search string', async () => {
      const record = await prisma.users.update({
        where: {
          firstName: '$foo',
        },
        data: {
          firstName: '$$foo',
        },
        select: {
          firstName: true,
        },
      })
      expect(record.firstName).toEqual('$$foo')
    })
    test('should delete records when using a `$` in the search string', async () => {
      await prisma.users.delete({
        where: {
          firstName: '$$foo',
        },
      })
    })
  },
  {
    optOut: {
      from: ['cockroachdb', 'mysql', 'postgresql', 'sqlite', 'sqlserver'],
      reason: 'Only applicable to Mongodb',
    },
  },
)