diff --git a/packages/client/src/__tests__/integration/happy/prismaPromise/test.ts b/packages/client/src/__tests__/integration/happy/prismaPromise/test.ts index 9489230b3eab..1e3805afe672 100644 --- a/packages/client/src/__tests__/integration/happy/prismaPromise/test.ts +++ b/packages/client/src/__tests__/integration/happy/prismaPromise/test.ts @@ -72,6 +72,20 @@ describe('prismaPromise', () => { expect(createResult1).toStrictEqual(createResult2) }) + test('fluent promises should have promise properties', async () => { + const findUniquePromise = prisma.user.findUnique({ + where: { + email: 'email@email.em', + }, + }) + + expect('then' in findUniquePromise).toBe(true) + expect('finally' in findUniquePromise).toBe(true) + expect('catch' in findUniquePromise).toBe(true) + + await findUniquePromise.finally() + }) + beforeAll(async () => { const PrismaClient = await getTestClient() prisma = new PrismaClient() diff --git a/packages/client/src/runtime/core/model/applyFluent.ts b/packages/client/src/runtime/core/model/applyFluent.ts index c8bbd5fd0e96..909af8bfc04e 100644 --- a/packages/client/src/runtime/core/model/applyFluent.ts +++ b/packages/client/src/runtime/core/model/applyFluent.ts @@ -119,7 +119,7 @@ export function applyFluent( // we allow for chaining more with this recursive call return applyFluent(client, ...modelArgs, ...dataArgs) }, - ...defaultProxyHandlers(ownKeys), + ...defaultProxyHandlers([...ownKeys, ...Object.getOwnPropertyNames(prismaPromise)]), }) } }