Tasks
1. Viteプラグインの拡張
- [x] 1.1
vite.config.jsのserveDevFixturesプラグインにPOSTリクエストハンドラーを追加
- [x] 1.2
/dev-fixtures-writeエンドポイントのリクエストボディパース処理を実装
- [x] 1.3
dev-fixtures/<path>へのファイル書き込み処理を実装(fs.promises.writeFile)
- [x] 1.4 ディレクトリが存在しない場合の自動作成処理を実装(
fs.promises.mkdirのrecursive: true)
- [x] 1.5 JSON形式でのインデント付き保存を実装(
JSON.stringify(data, null, 2))
- [x] 1.6 エラーハンドリングを実装(ディスク容量不足、権限エラーなど)
- [x] 1.7 成功時・失敗時のレスポンス形式を実装(
{ success: true/false, error?: string })
2. useAuthの修正
- [x] 2.1
src/hooks/useAuth.jsxを開いて現在の実装を確認
- [x] 2.2 ダミートークン判定ロジックを追加(
token === "dev" && import.meta.env.DEV)
- [x] 2.3 ダミートークン使用時に
isAdmin: trueを返すように修正
- [x] 2.4 本番環境では
token === "dev"を無効化することを確認(import.meta.env.DEVの値がfalseの場合)
- [x] 2.5 実際のSASトークン使用時の動作が変わらないことを確認(既存のロジックを保持)
- [x] 2.6 開発環境でダミートークン使用時へコンソールの情報メッセージを表示(
console.info)
3. BlobWriterの修正
- [x] 3.1
src/services/BlobWriter.jsを開いて現在の実装を確認
- [x] 3.2 開発環境とダミートークンの検出ロジックを追加(
import.meta.env.DEVとtoken === "dev")
- [x] 3.3 モック動作用の
writeToDevFixtures関数を実装(POST /dev-fixtures-writeへのfetchリクエスト)
- [x] 3.4
putBlob関数内で開発環境かつダミートークン使用時へwriteToDevFixturesを呼び出すように分岐
- [x] 3.5 実際のSASトークン使用時は通常のAzure Blob Storage APIを呼び出すロジックを保持
- [x] 3.6 本番環境では通常のAzure Blob Storage APIのみを使用することを確認
- [x] 3.7 モック動作初回使用時へコンソールの警告を表示(
console.warn)
- [x] 3.8 エラー時の適切なエラーハンドリングを実装(Viteプラグインからのエラーレスポンスを伝播)
4. ドキュメントの更新
- [x] 4.1
README.mdに開発用ダミートークンの使用方法を追加
- [x] 4.2
?token=devでのアクセス方法を記載(http://localhost:5173/?token=dev)
- [x] 4.3 実際のSASトークンとの共存について説明
- [x] 4.4
dev-fixtures/data/のクリーンアップ方法を記載(任意)
- [x] 4.5 CLAUDE.mdに開発用管理者モードの説明を追加(必要に応じて)
5. テストの追加
- [x] 5.1
tests/react/hooks/useAuth.test.jsxを作成または更新
- [x] 5.2 開発環境でダミートークン使用時のテストケースを追加
- [x] 5.3 本番環境でダミートークンが無効化されるテストケースを追加(
import.meta.env.DEVのモック)
- [x] 5.4 実際のSASトークン使用時のテストケースを追加
- [x] 5.5
tests/data/BlobWriter.test.jsを作成または更新
- [x] 5.6 開発環境でのモック動作のテストケースを追加(fetchのモック)
- [x] 5.7 本番環境での通常動作のテストケースを追加
- [x] 5.8 E2Eテスト(
e2e/admin.spec.jsなど)にダミートークンを使用した管理者モードのシナリオを追加
- [x] 5.9 E2Eテストで
?token=devでのAdminPageアクセスをテスト
- [x] 5.10 E2Eテストでグループ名編集やCSV一括保存の動作をテスト
6. 検証とクリーンアップ
- [ ] 6.1 開発環境(
pnpm run dev)で?token=devでの管理者モードアクセスを手動テスト
- [ ] 6.2 AdminPageでグループ名編集を実行し、
dev-fixtures/data/index.jsonが更新されることを確認
- [ ] 6.3 CSV一括保存を実行し、
dev-fixtures/data/sessions/にファイルが作成されることを確認
- [ ] 6.4 書き込まれたデータがDataFetcherで正しく読み込まれることを確認
- [ ] 6.5 実際のSASトークン使用時に通常のAzure Blob Storageに書き込まれることを確認(任意)
- [ ] 6.6 本番ビルド(
pnpm run build)を実行し、ビルドが成功することを確認
- [ ] 6.7 本番ビルドの出力(
dist/)に開発用コードが含まれていないことを確認(手動または自動)
- [ ] 6.8 本番ビルドで
?token=devが無効化されることを確認(E2Eテストまたは手動)
- [ ] 6.9 ユニットテスト(
pnpm test)とE2Eテスト(pnpm run test:e2e)を実行し、すべてパスすることを確認
- [x] 6.10 Lintとフォーマット(
pnpm run lint、pnpm run format)を実行し、コードスタイルを確認
7. CI/CDとドキュメント最終確認
- [ ] 7.1 GitHub Actionsのワークフロー(
.github/workflows/deploy.yml)が引き続き動作することを確認
- [ ] 7.2 開発ブランチへのpushで自動テストとデプロイが成功することを確認
- [ ] 7.3 READMEのドキュメントが正確で分かりやすいことを最終確認
- [ ] 7.4 コードレビュー準備(変更内容の要約、テスト結果の添付など)
- [ ] 7.5 mainブランチへのマージとデプロイ