mcpField
M
msw

msw

github.com/pymodelテスト・品質40434 回インストール4 週間前に更新
リポジトリ

msw について

MSW v2 を使う AI エージェントや LLM 向けの API モックガイドです。初期設定、ハンドラー、テスト、レスポンス、GraphQL モックなどを扱う 48 のルールを影響度順にまとめています。

主な機能

  1. 0148 の API モックルール
  2. 028 つのルールカテゴリ
  3. 03影響度順の優先順位付け
  4. 04ルール別のコード例

活用シーン

  1. 01MSW のテスト環境設定
  2. 02リクエストハンドラーの作成と整理
  3. 03REST または GraphQL API のモック
  4. 04ハンドラーのマッチング問題の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pymodel/react-frontend-skills --skill msw

インストール後、Claude Code で/mswを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
advanced-bypass-requests.md
advanced-cookies-auth.md
advanced-dynamic-scenarios.md
advanced-file-uploads.md
advanced-playwright-integration.md
advanced-vitest-browser.md
advanced-websocket-mocking.md
debug-common-issues.md
debug-lifecycle-events.md
debug-request-logging.md
debug-verify-interception.md
graphql-batched-queries.md
graphql-error-responses.md
graphql-operation-handlers.md
graphql-schema-first.md
graphql-variables-access.md
handler-absolute-urls.md
handler-domain-grouping.md
handler-happy-path-first.md
handler-request-body-parsing.md
handler-resolver-argument.md
handler-reusability-environments.md
handler-shared-resolvers.md
handler-v2-response-syntax.md
match-custom-predicate.md
match-handler-order.md
match-http-methods.md
match-query-params.md
match-url-patterns.md
response-custom-headers.md

詳細

MSW のベストプラクティス

MSW v2 アプリケーション(現行バージョン:MSW 2.15)向けの包括的な API モックガイドです。AI エージェントと LLM 向けに設計されています。影響度に応じて優先順位付けされた、8 つのカテゴリにわたる 48 のルールを収録し、自動リファクタリングとコード生成を支援します。

適用するタイミング

以下の場面で、このガイドラインを参照してください。

  • テストや開発用に MSW を設定するとき
  • リクエストハンドラーを記述または整理するとき
  • MSW を使用するテスト環境を設定するとき
  • REST API または GraphQL API をモックするとき
  • ハンドラーのマッチングに関する問題をデバッグするとき
  • エラー状態やエッジケースをテストするとき

優先度別ルールカテゴリ

優先度カテゴリ影響度プレフィックス
1セットアップと初期化重大setup-
2ハンドラーの設計重大handler-
3テストとの統合高test-
4レスポンスのパターン高response-
5リクエストのマッチング中〜高match-
6GraphQL のモック中graphql-
7高度なパターン中advanced-
8デバッグとパフォーマンス低debug-

クイックリファレンス

1. セットアップと初期化(重大)
  • setup-server-node-entrypoint - Node.js 用の正しいエントリーポイント(msw/node)を使用する
  • setup-lifecycle-hooks - テストのセットアップでサーバーのライフサイクルを設定する
  • setup-worker-script-commit - ワーカースクリプトをバージョン管理にコミットする
  • setup-node-version - MSW v2 では Node.js 18 以降を必須とする
  • setup-unhandled-requests - 未処理のリクエストの動作を設定する
  • setup-typescript-config - MSW v2 用に TypeScript を設定する
2. ハンドラーの設計(重大)
  • handler-happy-path-first - 基本として正常系のハンドラーを定義する
  • handler-domain-grouping - ドメインごとにハンドラーをグループ化する
  • handler-absolute-urls - ハンドラーでは絶対 URL を使用する
  • handler-shared-resolvers - 共通のレスポンス処理をリゾルバーに切り出す
  • handler-v2-response-syntax - MSW v2 のレスポンス構文を使用する
  • handler-request-body-parsing - リクエストボディを明示的に解析する
  • handler-resolver-argument - リゾルバーの引数を正しく分割代入する
  • handler-reusability-environments - 複数の環境でハンドラーを共有する
3. テストとの統合(高)
  • test-reset-handlers - 各テストの後にハンドラーをリセットする
  • test-avoid-request-assertions - リクエストを直接アサートするのは避ける
  • test-concurrent-boundary - 並行テストには server.boundary() を使用する
  • test-fake-timers-config - queueMicrotask を維持するようにフェイクタイマーを設定する
  • test-async-utilities - モックレスポンスには非同期テストユーティリティを使用する
  • test-clear-request-cache - テスト間でリクエストライブラリのキャッシュをクリアする
  • test-jsdom-environment - Jest で正しい JSDOM 環境を使用する
4. レスポンスのパターン(高)
  • response-http-response-helpers - HttpResponse の静的メソッドを使用する
  • response-delay-realistic - テスト対象がタイミングに関する動作の場合にのみ遅延を追加する
  • response-error-simulation - エラーレスポンスを正しくシミュレートする
  • response-one-time-handlers - 連続するシナリオには一度限りのハンドラーを使用する
  • response-custom-headers - レスポンスヘッダーを正しく設定する
  • response-streaming - ReadableStream でストリーミングレスポンスをモックする
5. リクエストのマッチング(中〜高)
  • match-url-patterns - URL パスパラメーターを正しく使用する
  • match-query-params - リクエスト URL からクエリパラメーターを取得する
  • match-custom-predicate - 複雑なマッチングにはカスタム述語を使用する
  • match-http-methods - HTTP メソッドを明示的にマッチさせる
  • match-handler-order - 具体的なものから一般的なものへとハンドラーを並べる
6. GraphQL のモック(中)
  • graphql-operation-handlers - GraphQL のマッチングにはオペレーション名を使用する
  • graphql-error-responses - GraphQL エラーを正しい形式で返す
  • graphql-batched-queries - バッチ処理された GraphQL クエリを処理する
  • graphql-variables-access - GraphQL 変数に正しくアクセスする
  • graphql-schema-first - GraphQL スキーマに対してオペレーションを解決する
7. 高度なパターン(MEDIUM)
  • advanced-bypass-requests - パススルーリクエストに bypass() を使用する
  • advanced-cookies-auth - Cookie と認証を処理する
  • advanced-dynamic-scenarios - 動的なモックシナリオを実装する
  • advanced-vitest-browser - Vitest のブラウザモード向けに MSW を設定する
  • advanced-file-uploads - ファイルアップロードのエンドポイントをモックする
  • advanced-websocket-mocking - ws.link を使用して WebSocket 接続をモックする
  • advanced-playwright-integration - @msw/playwright の defineNetworkFixture を使用する
8. デバッグとパフォーマンス(LOW)
  • debug-lifecycle-events - デバッグにライフサイクルイベントを使用する
  • debug-verify-interception - リクエストのインターセプトが機能していることを確認する
  • debug-common-issues - MSW のよくある問題と解決方法を把握する
  • debug-request-logging - デバッグ用にリクエストの詳細をログに記録する

使用方法

まずプロジェクトのルートで実行します。

npx -y @pymodel/react-frontend-skills detect            # installed vs. targeted versions
npx -y @pymodel/react-frontend-skills scan --skill msw  # deprecated APIs → rule IDs

タスクに該当する上記の各ルールと、scan で検出された各項目について、references/<rule-id>.md を読み、重要な理由と誤ったコードと正しいコードを確認します。

関連スキル

  • モック API の利用については、tanstack-query スキルを参照してください
  • テストフレームワークのパターンについては vitest を、手法については tdd を参照してください

コメント