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 }])) }) })