47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
import { describe, it, expect, vi, beforeEach } from 'vitest'
|
|
|
|
vi.mock('@/lib/prisma', () => ({
|
|
prisma: {
|
|
product: {
|
|
findMany: vi.fn(),
|
|
},
|
|
},
|
|
}))
|
|
|
|
vi.mock('@/lib/api-auth', () => ({
|
|
authenticateApiRequest: vi.fn(),
|
|
}))
|
|
|
|
import { prisma } from '@/lib/prisma'
|
|
import { authenticateApiRequest } from '@/lib/api-auth'
|
|
import { GET as getProducts } from '@/app/api/products/route'
|
|
|
|
const mockPrisma = prisma as unknown as {
|
|
product: { findMany: ReturnType<typeof vi.fn> }
|
|
}
|
|
const mockAuth = authenticateApiRequest as ReturnType<typeof vi.fn>
|
|
|
|
function makeRequest(): Request {
|
|
return new Request('http://localhost/api/products', {
|
|
method: 'GET',
|
|
headers: { Authorization: 'Bearer test-token' },
|
|
})
|
|
}
|
|
|
|
describe('GET /api/products', () => {
|
|
beforeEach(() => {
|
|
vi.clearAllMocks()
|
|
})
|
|
|
|
// TC-P-04
|
|
it.todo('returns products owned by the authenticated user')
|
|
|
|
// TC-P-05
|
|
it.todo('returns products where user is a team member')
|
|
|
|
// TC-P-06
|
|
it.todo('returns empty array when user has no products')
|
|
|
|
// TC-P-07
|
|
it.todo('excludes archived products')
|
|
})
|