UNPKG

@prisma-extensions/find-or-create

Version:

Simplify your development experience by finding or creating records with a function.

62 lines (52 loc) 1.32 kB
import { faker } from '@faker-js/faker' import { PrismaClient } from '@prisma/client' import { afterAll, afterEach, describe, expect, test } from 'vitest' import { extension } from './find-or-create' const prisma = new PrismaClient({ // log: ["query"], }) describe('Find or Create', () => { afterEach(async () => { await prisma.user.deleteMany() }) afterAll(async () => { await prisma.$disconnect() }) const xprisma = prisma.$extends(extension) test('find', async () => { const user = await xprisma.user.create({ data: { firstName: faker.name.firstName(), lastName: faker.name.lastName(), }, }) const res = await xprisma.user.findOrCreate({ select: { id: true }, where: { id: user.id, }, create: { firstName: faker.name.firstName(), lastName: faker.name.lastName(), }, }) expect(res.id).toEqual(user.id) }) test('create', async () => { const res = await xprisma.user.findOrCreate({ select: { id: true }, where: { id: 0, }, create: { firstName: faker.name.firstName(), lastName: faker.name.lastName(), }, }) expect(res).toEqual( expect.objectContaining({ id: expect.any(Number), }), ) }) })