Skip to content

テスト環境整備と改善計画Phase 1-4の実装#33

Merged
ef81sp merged 5 commits intomainfrom
feature/add-tests
Jan 29, 2026
Merged

テスト環境整備と改善計画Phase 1-4の実装#33
ef81sp merged 5 commits intomainfrom
feature/add-tests

Conversation

@ef81sp
Copy link
Copy Markdown
Owner

@ef81sp ef81sp commented Jan 28, 2026

Summary

  • バックエンド・フロントエンドのテスト環境を整備
  • 改善計画Phase 1-4をTDDで実装

Phase 1: セキュリティ・安定性

  • CSRF対策(Origin検証ミドルウェア)
  • XSS対策(JoinRoomRequestSchemaの適用)
  • エラーハンドリング改善(サイレントcatch排除)

Phase 2: テストカバレッジ向上

  • フロントエンドユニットテスト追加(store, webSocket, fetchApi, msgFromClient)
  • バリデーションテスト追加

Phase 3: リファクタリング

  • DisconnectTimerManager: 切断タイマー管理クラス化
  • parseJsonBody: JSON解析共通化
  • updateParticipant: 参加者更新パターン抽出
  • extractRoomId: URLルーティング統一

Phase 4: 最適化

  • roomCleanup: 空ルーム自動クリーンアップ
  • WatcherManager: KV Watcher停止管理
  • トークンTTL: 24時間有効期限設定

Test plan

  • バックエンドテスト: 56テスト通過
  • フロントエンドテスト: 40テスト通過
  • E2Eテスト: 9ステップ通過

🤖 Generated with Claude Code

ef81sp and others added 5 commits January 28, 2026 20:54
- バックエンドセキュリティテスト追加 (validate_test.ts)
- フロントエンドテスト環境整備 (Vitest + happy-dom)
- store, fetchApi, msgFromClient のユニットテスト追加
- deno.jsonにテストタスク追加 (test, test:frontend, test:all)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- XSS対策: handleJoinRoomにJoinRoomRequestSchema適用
- CSRF対策: Origin検証ミドルウェア追加(API/WebSocket両対応)
- エラーハンドリング: サイレントcatch排除、エラーログ追加
- テスト追加: sanitize()エッジケース、XSSサニタイズ、CSRF検証
- E2E環境整備: helpers.ts、install_browsers.ts追加、テスト修正

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- webSocket.tsのユニットテスト追加(13テスト)
  - WebSocket URL生成(HTTP/HTTPS)
  - 接続設定(immediate, autoReconnect, heartbeat)
  - 認証メッセージ送信
  - roomメッセージ受信処理
  - 不正JSON/空データのエラーハンドリング

フロントエンドテスト: 27 → 40件

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- DisconnectTimerManager: 切断タイマー管理をクラス化
- parseJsonBody: JSON解析ロジックを共通化
- updateParticipant: 参加者更新パターンを抽出
- extractRoomId: URLルーティングパターンを統一

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- roomCleanup: 空ルームの自動クリーンアップ機能
- WatcherManager: KV Watcherの停止管理(AbortController利用)
- トークンTTL: 24時間の有効期限をDeno KV expireInで設定

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@ef81sp ef81sp merged commit 545fbc5 into main Jan 29, 2026
3 checks passed
@ef81sp ef81sp deleted the feature/add-tests branch January 29, 2026 09:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant