47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
|
|
vi.mock('../../lib/prisma', () => ({
|
|
prisma: {
|
|
employee: {
|
|
findFirst: vi.fn(),
|
|
},
|
|
},
|
|
}))
|
|
|
|
import { prisma } from '../../lib/prisma'
|
|
import { findActiveEmployeeByEmail, findEmployeeWithCompanyByEmail } from './auth.employee.repo'
|
|
|
|
describe('auth.employee.repo', () => {
|
|
beforeEach(() => {
|
|
vi.clearAllMocks()
|
|
})
|
|
|
|
it('looks up employee login email case-insensitively', async () => {
|
|
await findEmployeeWithCompanyByEmail('Owner@Example.com')
|
|
|
|
expect(prisma.employee.findFirst).toHaveBeenCalledWith({
|
|
where: {
|
|
email: {
|
|
equals: 'Owner@Example.com',
|
|
mode: 'insensitive',
|
|
},
|
|
},
|
|
include: { company: true },
|
|
})
|
|
})
|
|
|
|
it('looks up active employee reset email case-insensitively', async () => {
|
|
await findActiveEmployeeByEmail('Owner@Example.com')
|
|
|
|
expect(prisma.employee.findFirst).toHaveBeenCalledWith({
|
|
where: {
|
|
email: {
|
|
equals: 'Owner@Example.com',
|
|
mode: 'insensitive',
|
|
},
|
|
isActive: true,
|
|
},
|
|
})
|
|
})
|
|
})
|