gongxiangp2/lib/__tests__/material-query.test.ts
2026-07-30 14:39:30 +08:00

43 lines
1.2 KiB
TypeScript

import { prisma } from '@/lib/prisma'
import { buildMaterialSearchOrConditions } from '@/lib/material-query'
jest.mock('@/lib/prisma', () => ({
prisma: {
materialSku: {
findMany: jest.fn(),
},
user: {
findMany: jest.fn(),
},
},
}))
jest.mock('@/lib/department-permission', () => ({
getUserViewableMaterialTypes: jest.fn(),
isSuperAdmin: jest.fn(),
isSystemAdmin: jest.fn(),
}))
describe('material search conditions', () => {
beforeEach(() => {
jest.clearAllMocks()
;(prisma.materialSku.findMany as jest.Mock).mockResolvedValue([])
;(prisma.user.findMany as jest.Mock).mockResolvedValue([])
})
test('完整素材 UUID 应使用精确匹配', async () => {
const materialId = '954554fb-50b4-45c4-9234-9e94b6948953'
const conditions = await buildMaterialSearchOrConditions(materialId)
expect(conditions).toEqual(expect.arrayContaining([{ id: materialId }]))
})
test('非 UUID 的历史素材 ID 也应使用精确匹配', async () => {
const materialId = 'legacy-material-1'
const conditions = await buildMaterialSearchOrConditions(materialId)
expect(conditions).toEqual(expect.arrayContaining([{ id: materialId }]))
})
})