@@ -12,13 +12,17 @@ def test_adapter_output_paths_match_golden(tmp_path) -> None:
1212 for tool in ("opencode" , "claude-code" , "codex" ):
1313 write_tool_adapter (tmp_path , tool )
1414
15- assert _file_list (tmp_path ) == _golden_lines ("adapter_paths.txt" )
15+ paths = _file_list (tmp_path )
16+ assert _casefold_collisions (paths ) == {}
17+ assert paths == _golden_lines ("adapter_paths.txt" )
1618
1719
1820def test_knowledge_output_paths_match_golden (tmp_path ) -> None :
1921 write_knowledge_base (tmp_path )
2022
21- assert _file_list (tmp_path ) == _golden_lines ("knowledge_paths.txt" )
23+ paths = _file_list (tmp_path )
24+ assert _casefold_collisions (paths ) == {}
25+ assert paths == _golden_lines ("knowledge_paths.txt" )
2226
2327
2428def test_setup_output_paths_match_golden (tmp_path , capsys ) -> None :
@@ -30,6 +34,7 @@ def test_setup_output_paths_match_golden(tmp_path, capsys) -> None:
3034 for path in _file_list (tmp_path )
3135 if path .startswith (".coding-scaffold/" ) or path .startswith (".opencode/" ) or path == "opencode.json"
3236 ]
37+ assert _casefold_collisions (generated ) == {}
3338 assert generated == _golden_lines ("scaffold_paths.txt" )
3439
3540
@@ -39,3 +44,10 @@ def _file_list(root: Path) -> list[str]:
3944
4045def _golden_lines (name : str ) -> list [str ]:
4146 return (GOLDEN / name ).read_text (encoding = "utf-8" ).splitlines ()
47+
48+
49+ def _casefold_collisions (paths : list [str ]) -> dict [str , list [str ]]:
50+ grouped : dict [str , list [str ]] = {}
51+ for path in paths :
52+ grouped .setdefault (path .casefold (), []).append (path )
53+ return {key : values for key , values in grouped .items () if len (values ) > 1 }
0 commit comments