tests.ts•2.79 kB
import { Providers } from '../../_utils/providers'
import testMatrix from './_matrix'
// @ts-ignore
import type { Prisma as PrismaNamespace, PrismaClient } from './generated/prisma/client'
declare let Prisma: typeof PrismaNamespace
declare let prisma: PrismaClient
testMatrix.setupTestSuite(
() => {
const decimal1 = '1.2'
const decimal2 = '2.4'
beforeAll(async () => {
await prisma.resource.create({
data: { decimal: decimal1 },
})
await prisma.resource.create({
data: { decimal: decimal2 },
})
})
test('findUnique decimal with Promise.all', async () => {
const result = await Promise.all([
prisma.resource.findUnique({
where: { decimal: decimal1 },
select: { decimal: true },
}),
prisma.resource.findUnique({
where: { decimal: decimal2 },
select: { decimal: true },
}),
])
expect(result).toMatchObject([
{ decimal: new Prisma.Decimal(decimal1) },
{ decimal: new Prisma.Decimal(decimal2) },
])
})
test('findUnique decimal with $transaction([...])', async () => {
const result = await prisma.$transaction([
prisma.resource.findUnique({
where: { decimal: decimal1 },
select: { decimal: true },
}),
prisma.resource.findUnique({
where: { decimal: decimal2 },
select: { decimal: true },
}),
])
expect(result).toMatchObject([
{ decimal: new Prisma.Decimal(decimal1) },
{ decimal: new Prisma.Decimal(decimal2) },
])
})
test('findFirst decimal with Promise.all', async () => {
const result = await Promise.all([
prisma.resource.findFirst({
where: { decimal: decimal1 },
select: { decimal: true },
}),
prisma.resource.findFirst({
where: { decimal: decimal2 },
select: { decimal: true },
}),
])
expect(result).toMatchObject([
{ decimal: new Prisma.Decimal(decimal1) },
{ decimal: new Prisma.Decimal(decimal2) },
])
})
test('findFirst decimal with $transaction([...])', async () => {
const result = await prisma.$transaction([
prisma.resource.findFirst({
where: { decimal: decimal1 },
select: { decimal: true },
}),
prisma.resource.findFirst({
where: { decimal: decimal2 },
select: { decimal: true },
}),
])
expect(result).toMatchObject([
{ decimal: new Prisma.Decimal(decimal1) },
{ decimal: new Prisma.Decimal(decimal2) },
])
})
},
{
optOut: {
from: [Providers.MONGODB],
reason: 'MongoDB does not support decimal',
},
},
)