24 lines
890 B
JavaScript
24 lines
890 B
JavaScript
import { describe, it, expect } from 'vitest'
|
|
import { server, http, HttpResponse } from './test-setup'
|
|
import { getRecipe } from '@/api/sdk'
|
|
import { setHouseholdSlugProvider } from '@/api/client'
|
|
|
|
// Tests validate the typed client wrapper behavior without needing the backend
|
|
|
|
describe('recipes api (typed client)', () => {
|
|
it('gets a recipe by id', async () => {
|
|
server.use(
|
|
http.get('*/api/v1/households/:householdSlug/recipes/:id', ({ params }) => {
|
|
// eslint-disable-next-line no-console
|
|
console.log('MSW handler hit with params:', params)
|
|
const { id } = params
|
|
return HttpResponse.json({ id, name: 'Pancakes', ingredients: [] }, { status: 200 })
|
|
})
|
|
)
|
|
|
|
setHouseholdSlugProvider(() => 'the-smiths')
|
|
const data = await getRecipe('the-smiths', '123')
|
|
expect(data).toBeTruthy()
|
|
expect(data.name).toBe('Pancakes')
|
|
})
|
|
})
|