43 lines
1.2 KiB
TypeScript
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 }]))
|
|
})
|
|
})
|