Skip to content

feat: multilang E2E fixtures + DispatchingResolver Registry リファクタ#84

Merged
makinzm merged 4 commits intomainfrom
feat/pr80-multilang-fixture-and-resolver-refactor
Mar 25, 2026
Merged

feat: multilang E2E fixtures + DispatchingResolver Registry リファクタ#84
makinzm merged 4 commits intomainfrom
feat/pr80-multilang-fixture-and-resolver-refactor

Conversation

@makinzm
Copy link
Copy Markdown
Owner

@makinzm makinzm commented Mar 25, 2026

Summary

  • 複数言語(TS + PY + Go)が混在するプロジェクトの E2E fixture を2パターン追加
    • multilang_mixed_sample: レイヤー内に複数言語ファイルが混在(domain/model.ts + domain/entity.py + domain/user.go
    • multilang_split_sample: 言語ごとにディレクトリ分離(ts/domain/, py/domain/, go/domain/
  • DispatchingResolver を Registry パターンにリファクタ
    • 全7言語の固定フィールド → HashMap<&str, Box<dyn Resolver>>
    • [project] languages で宣言された言語のみ Resolver を生成・登録
    • 未登録拡張子は RustResolver にフォールバック(後方互換)

変更内容

  1. [test] tests/fixtures/multilang_mixed_sample/ + tests/e2e_multilang_mixed.rs (11テスト)
  2. [test] tests/fixtures/multilang_split_sample/ + tests/e2e_multilang_split.rs (11テスト)
  3. [fix] CI dogfooding に multilang fixture の mille check ステップ追加
  4. [refactor] DispatchingResolver を Registry パターンに移行、from_resolve_config()languages 引数追加

Test plan

  • 新規22テスト(multilang_mixed 11 + multilang_split 11)全通過
  • 既存テスト全通過(397 unit + 全 E2E)
  • lefthook (clippy + fmt + test) 通過
  • CI dogfooding で multilang fixture が mille check 通過

🤖 Generated with Claude Code

makinzm and others added 4 commits March 26, 2026 00:47
…クタ前の安全網

2パターンの複数言語 fixture を追加:
- multilang_mixed_sample: TS/PY/Go がレイヤー内混在 (domain/ に .ts .py .go)
- multilang_split_sample: 言語ごとにディレクトリ分離 (ts/domain/, py/domain/, go/domain/)

各 fixture で e2e_checklist の全項目をカバー (dep opt-in/out, external opt-in/out, call_patterns)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ver の生成削減

- 全7言語のフィールドを HashMap<&str, Box<dyn Resolver>> に変更
- from_resolve_config() に languages 引数を追加、宣言された言語のみ登録
- runner.rs の3箇所で app_config.project.languages を渡すよう更新
- 未登録拡張子は RustResolver にフォールバック(後方互換)
- DispatchingResolver::new() を削除(未使用)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@makinzm makinzm merged commit 9e1281d into main Mar 25, 2026
8 checks passed
@makinzm makinzm deleted the feat/pr80-multilang-fixture-and-resolver-refactor branch March 25, 2026 16:14
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