capture-api-response-test-fixture▌
vercel/ai · updated Apr 8, 2026
Store and manage API response test fixtures for provider parsing validation.
- ›Fixtures are organized in __fixtures__ subfolders within provider packages, using naming conventions documented in existing examples
- ›Supports two testing patterns: generateText (log raw response to console and copy into fixture) and streamText (use includeRawChunks and saveRawChunks helper to capture streaming chunks)
- ›Recommends storing true provider responses unless size constraints require semantic-preserv
API Response Test Fixtures
For provider response parsing tests, we aim at storing test fixtures with the true responses from the providers (unless they are too large in which case some cutting that does not change semantics is advised).
The fixtures are stored in a __fixtures__ subfolder, e.g. packages/openai/src/responses/__fixtures__. See the file names in packages/openai/src/responses/__fixtures__ for naming conventions and packages/openai/src/responses/openai-responses-language-model.test.ts for how to set up test helpers.
You can use our examples under /examples/ai-functions to generate test fixtures.
generateText (doGenerate testing)
For generateText, log the raw response output to the console and copy it into a new test fixture.
import { openai } from '@ai-sdk/openai';
import { generateText } from 'ai';
import { run } from '../lib/run';
run(async () => {
const result = await generateText({
model: openai('gpt-5-nano'),
prompt: 'Invent a new holiday and describe its traditions.',
});
console.log(JSON.stringify(result.response.body, null, 2));
});
streamText (doStream testing)
For streamText, you need to set includeRawChunks to true and use the special saveRawChunks helper. Run the script from the /example/ai-functions folder via pnpm tsx src/stream-text/script-name.ts. The result is then stored in the /examples/ai-functions/output folder. You can copy it to your fixtures folder and rename it.
import { openai } from '@ai-sdk/openai';
import { streamText } from 'ai';
import { run } from '../lib/run';
import { saveRawChunks } from '../lib/save-raw-chunks';
run(async () => {
const result = streamText({
model: openai('gpt-5-nano'),
prompt: 'Invent a new holiday and describe its traditions.',
includeRawChunks: true,
});
await saveRawChunks({ result, filename: 'openai-gpt-5-nano' });
});
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.6★★★★★54 reviews- ★★★★★Mateo Rao· Dec 28, 2024
Keeps context tight: capture-api-response-test-fixture is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Pratham Ware· Dec 16, 2024
Keeps context tight: capture-api-response-test-fixture is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Tariq Khan· Dec 16, 2024
capture-api-response-test-fixture has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Harper Choi· Dec 8, 2024
Solid pick for teams standardizing on skills: capture-api-response-test-fixture is focused, and the summary matches what you get after install.
- ★★★★★Daniel Flores· Nov 27, 2024
capture-api-response-test-fixture is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Neel Chawla· Nov 19, 2024
capture-api-response-test-fixture has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Yash Thakker· Nov 7, 2024
capture-api-response-test-fixture has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Ira Shah· Nov 7, 2024
Keeps context tight: capture-api-response-test-fixture is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Dhruvi Jain· Oct 26, 2024
Solid pick for teams standardizing on skills: capture-api-response-test-fixture is focused, and the summary matches what you get after install.
- ★★★★★Ava Taylor· Oct 26, 2024
capture-api-response-test-fixture is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
showing 1-10 of 54