Capture Api Response Test Fixture

by vercel5028fa46b4b4No licenseListed Oct 8, 2026Updated Oct 8, 2026

Capture API response test fixture.

Instructions onlySoftware Development
AI-generated overview

Captures real provider API responses as test fixtures for parsing tests in an AI SDK repository.

What it does
Guides the agent through writing small example scripts that call a provider model and log or save the raw response. For generateText it logs the raw response body to the console for copying into a fixture; for streamText it uses includeRawChunks and a saveRawChunks helper that writes output to a folder. The resulting files are placed in a fixtures subfolder and named following existing conventions.
When to use it
Use when adding or updating provider response parsing tests that need real recorded API responses as fixtures. It fits repository work where example scripts under an examples folder are the accepted way to produce those fixtures.
Requirements
An AI SDK style repository with pnpm and tsx, provider packages and credentials for the provider being called, network access to that provider, and the referenced example helpers (run, saveRawChunks). No scripts ship with the skill; it is instructions only.

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, put the script under src/generate-text/<provider>/, log the raw response output to the console, and copy it into a new test fixture.

ts
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. Put the script under the provider directory and run it from the /examples/ai-functions folder via pnpm tsx src/stream-text/<provider>/<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.

ts
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' });});

Source and attribution

Source:vercel/aiinskills/capture-api-response-test-fixtureat commit5028fa4

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal