Agent Skills › K9i-0/ccpocket › test-bridge

test-bridge

GitHub

提供Bridge Server的单元测试执行、TypeScript类型检查及覆盖率命令,并规范Vitest测试文件结构、命名、导入及纯函数测试策略。

.claude/skills/test-bridge/SKILL.md K9i-0/ccpocket

Trigger Scenarios

需要运行或编写Bridge Server的单元测试 需要验证TypeScript代码类型正确性 需要生成测试覆盖率报告

Install

npx skills add K9i-0/ccpocket --skill test-bridge -g -y
More Options

Non-standard path

npx skills add https://github.com/K9i-0/ccpocket/tree/main/.claude/skills/test-bridge -g -y

Use without installing

npx skills use K9i-0/ccpocket@test-bridge

指定 Agent (Claude Code)

npx skills add K9i-0/ccpocket --skill test-bridge -a claude-code -g -y

安装 repo 全部 skill

npx skills add K9i-0/ccpocket --all -g -y

预览 repo 内 skill

npx skills add K9i-0/ccpocket --list

SKILL.md

Frontmatter
{
    "name": "test-bridge",
    "description": "Bridge Server (TypeScript) のテスト実行・型チェック・テスト記述ガイド",
    "allowed-tools": "Bash(npx:*), Bash(npm:*), Read, Glob, Grep"
}

Bridge Server テスト

実行手順

変更した挙動に対応するテストと静的検証を選ぶ。全体テストは、共通基盤・依存関係への変更や回帰懸念がある場合、または全体検証を依頼された場合に実行する。成功済みの検証を理由なく繰り返さない。以下はコマンドの選択肢。

1. ユニットテスト

npm run test:bridge

特定ファイルのみ:

cd packages/bridge && npx vitest run src/<filename>.test.ts

ウォッチモード (開発中):

cd packages/bridge && npx vitest src/<filename>.test.ts

2. TypeScript 型チェック

npx tsc --noEmit -p packages/bridge/tsconfig.json

テストファイル (*.test.ts) と vitest.config.ts は tsconfig.json の exclude に入っているため、型チェック対象外。

3. カバレッジ (任意)

npm run test:bridge:coverage

テスト記述規約

ファイル配置・命名

  • テストファイルはソースと同じディレクトリに <module>.test.ts として配置
    • 例: src/parser.ts → src/parser.test.ts
  • vitest.config.ts の include パターン: src/**/*.test.ts

import

import { describe, it, expect } from "vitest";
  • vitest からのみ import する (jest の互換 API は使わない)
  • テスト対象モジュールは .js 拡張子で import する (NodeNext moduleResolution)
    • 例: import { parseRule } from "./claude-process.js";

テスト構造

describe("関数名 or クラス名", () => {
  it("動作の説明 (英語)", () => {
    expect(actual).toBe(expected);
  });
});
  • describe でテスト対象の関数/クラス単位にグルーピング
  • it の説明は英語で、三人称現在形 ("returns null for empty string")
  • 1つの it で1つの振る舞いを検証する

テスト対象の方針

  • 純粋関数・ロジック中心にテストする (高ROI)
  • プロセスspawn, ファイルシステム, WebSocket等の外部依存は対象外
  • 現在テスト対象のモジュール:
    • parser.ts — parseClaudeEvent, claudeEventToServerMessage, parseClientMessage, normalizeToolResultContent
    • claude-process.ts — parseRule, matchesSessionRule, buildSessionRule, toolNeedsApproval, ACCEPT_EDITS_AUTO_APPROVE
    • image-store.ts — ImageStore.extractImagePaths

新しいテスト追加時

  1. export されている純粋関数があればテスト追加を検討
  2. internal関数をテストしたい場合は export に変更する (テスト可能性のための export は OK)
  3. テスト追加後は型チェックが通ること (npx tsc --noEmit) も確認

Version History

  • 370a4b0 Current 2026-09-22 13:40

    移除对Claude特定调用标志的依赖,将测试目标范围从ACCEPT扩展至ACCEPT_EDITS_AUTO_APPROVE。

  • aa215a3 2026-07-25 06:59

Same Skill Collection

.claude/skills/codex-guide/SKILL.md
.claude/skills/flutter-ui-design/SKILL.md
.claude/skills/mobile-automation/SKILL.md
.claude/skills/playwright-cli/SKILL.md
.claude/skills/release-bridge/SKILL.md
.claude/skills/sim-preview/SKILL.md
.claude/skills/submit-store-review/SKILL.md
.claude/skills/update-store/SKILL.md
.claude/skills/web-preview/SKILL.md
.claude/skills/flutter-upgrade/SKILL.md
.claude/skills/merge/SKILL.md
.claude/skills/release-app/SKILL.md
.claude/skills/release-card/SKILL.md
.claude/skills/self-review/SKILL.md
.claude/skills/shorebird-patch/SKILL.md
.claude/skills/test-flutter/SKILL.md
.claude/skills/triage/SKILL.md

Metadata

Files
0
Version
370a4b0
Hash
ed2e0984
Indexed
2026-07-25 06:59

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