Agent Skillsvercel/ai › capture-api-response-test-fixture

capture-api-response-test-fixture

GitHub

指导如何生成并存储 API 响应测试用例,涵盖 generateText 和 streamText 场景。提供脚本编写示例及文件存放规范,用于确保 Provider 响应解析测试的准确性与一致性。

skills/capture-api-response-test-fixture/SKILL.md vercel/ai

触发场景

需要为 AI 模型 Provider 添加新的测试用例 生成或更新 API 响应的测试固定数据(fixtures) 配置 Provider 的单元测试环境

安装

npx skills add vercel/ai --skill capture-api-response-test-fixture -g -y
更多选项

不安装直接使用

npx skills use vercel/ai@capture-api-response-test-fixture

指定 Agent (Claude Code)

npx skills add vercel/ai --skill capture-api-response-test-fixture -a claude-code -g -y

安装 repo 全部 skill

npx skills add vercel/ai --all -g -y

预览 repo 内 skill

npx skills add vercel/ai --list

SKILL.md

Frontmatter
{
    "name": "capture-api-response-test-fixture",
    "metadata": {
        "internal": true
    },
    "description": "Capture API response test fixture."
}

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.

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.

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

版本历史

  • 1d9b13b 当前 2026-08-29 05:28

    改进了 provider 包指南,对齐了 AI Functions 示例和 fixture 技能以符合嵌套目录约定;增加了官方 OpenAPI 发现指导。

  • c0595b4 2026-08-20 17:57

同 Skill 集合

skills/add-function-examples/SKILL.md
skills/add-harness-package/SKILL.md
skills/add-provider-package/SKILL.md
skills/adr-skill/SKILL.md
skills/develop-ai-functions-example/SKILL.md
skills/list-npm-package-content/SKILL.md
skills/major-version-mode/SKILL.md
skills/migrate-ai-sdk-v6-to-v7/SKILL.md
skills/update-harness-dependencies/SKILL.md
skills/update-provider-models/SKILL.md
skills/use-ai-sdk/SKILL.md
examples/ai-e2e-next/data/island-rescue/SKILL.md
examples/ai-functions/data/island-rescue/SKILL.md

元信息

文件数
0
版本
1d9b13b
Hash
05feab00
收录时间
2026-08-20 17:57

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-16 20:28
浙ICP备14020137号-1