Skip to content

Commit

Permalink
fix(client): include enums into scalar select lists
Browse files Browse the repository at this point in the history
Fix #16535
  • Loading branch information
SevInf committed Nov 30, 2022
1 parent 203ea6c commit 2779478
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 1 deletion.
2 changes: 1 addition & 1 deletion packages/client/src/generation/TSClient/Model.ts
Expand Up @@ -341,7 +341,7 @@ ${ifExtensions(() => {
export type ${getSelectName(model.name)}Scalar = {
${indent(
outputType.fields
.filter((field) => field.outputType.location === 'scalar')
.filter((field) => field.outputType.location === 'scalar' || field.outputType.location === 'enumTypes')
.map((f) => `${f.name}?: boolean`)
.join('\n'),
TAB_SIZE,
Expand Down
@@ -0,0 +1,15 @@
import { defineMatrix } from '../../_utils/defineMatrix'

export default defineMatrix(() => [
[
{
provider: 'postgresql',
},
{
provider: 'mysql',
},
{
provider: 'cockroachdb',
},
],
])
@@ -0,0 +1,26 @@
import { idForProvider } from '../../../_utils/idForProvider'
import testMatrix from '../_matrix'

export default testMatrix.setupSchema(({ provider }) => {
return /* Prisma */ `
generator client {
provider = "prisma-client-js"
previewFeatures = ["clientExtensions"]
}
datasource db {
provider = "${provider}"
url = env("DATABASE_URI_${provider}")
}
model User {
id ${idForProvider(provider)}
role UserRole
}
enum UserRole {
ADMIN
USER
}
`
})
29 changes: 29 additions & 0 deletions packages/client/tests/functional/issues/16535-select-enum/tests.ts
@@ -0,0 +1,29 @@
import testMatrix from './_matrix'
// @ts-ignore
import type { Prisma as PrismaNamespace, PrismaClient } from './node_modules/@prisma/client'

declare let prisma: PrismaClient
declare let Prisma: typeof PrismaNamespace

testMatrix.setupTestSuite(
() => {
test('allows to select enum field', async () => {
const user = await prisma.user.create({
data: {
role: 'ADMIN',
},
select: {
role: true,
},
})

expect(user).toEqual({ role: 'ADMIN' })
})
},
{
optOut: {
from: ['sqlite', 'mongodb', 'sqlserver'],
reason: 'No support for enums',
},
},
)

0 comments on commit 2779478

Please sign in to comment.