tests.ts•1.52 kB
import { Providers } from '../../_utils/providers'
import testMatrix from './_matrix'
// @ts-ignore
import type { PrismaClient } from './generated/prisma/client'
declare let prisma: PrismaClient
/**
* Regression test for #13097
* groupBy on enum fields
*/
testMatrix.setupTestSuite(
({ provider }) => {
beforeAll(async () => {
if (provider !== Providers.MYSQL) {
await prisma.resource.create({
data: {
enumValue: 'A',
// @ts-test-if: provider !== Providers.MYSQL
enumArray: ['A'],
},
})
} else {
await prisma.resource.create({
data: {
enumValue: 'A',
},
})
}
})
test('groupBy on enumValue field', async () => {
const result = await prisma.resource.groupBy({
by: ['enumValue'],
})
expect(result).toMatchInlineSnapshot(`
[
{
"enumValue": "A",
},
]
`)
})
testIf(provider !== Providers.MYSQL)('groupBy on enumArray field', async () => {
const result = await prisma.resource.groupBy({
// @ts-test-if: provider !== Providers.MYSQL
by: ['enumArray'],
})
expect(result).toMatchInlineSnapshot(`
[
{
"enumArray": [
"A",
],
},
]
`)
})
},
{
optOut: {
from: ['sqlite', 'sqlserver'],
reason: "SQLite and SQLServer don't support enums",
},
},
)