@@ -756,39 +756,6 @@ def test_download_and_extract_template_blocks_zip_path_traversal(self, tmp_path,
756756
757757 assert not (tmp_path / "evil.txt" ).exists ()
758758
759- def test_here_mode_commands_preserved (self , tmp_path , monkeypatch ):
760- """For --here on existing repos, commands must NOT be removed."""
761- from typer .testing import CliRunner
762-
763- runner = CliRunner ()
764- # Create a mock existing project with commands already present
765- target = tmp_path / "existing"
766- target .mkdir ()
767- agent_folder = AGENT_CONFIG ["claude" ]["folder" ]
768- cmds_dir = target / agent_folder .rstrip ("/" ) / "commands"
769- cmds_dir .mkdir (parents = True )
770- (cmds_dir / "speckit.specify.md" ).write_text ("# spec" )
771-
772- # --here uses CWD, so chdir into the target
773- monkeypatch .chdir (target )
774-
775- def fake_download (project_path , * args , ** kwargs ):
776- pass # commands already exist, no need to re-create
777-
778- with patch ("specify_cli.integrations.get_integration" , return_value = None ), \
779- patch ("specify_cli.download_and_extract_template" , side_effect = fake_download ), \
780- patch ("specify_cli.ensure_executable_scripts" ), \
781- patch ("specify_cli.ensure_constitution_from_template" ), \
782- patch ("specify_cli.install_ai_skills" , return_value = True ), \
783- patch ("specify_cli.is_git_repo" , return_value = True ), \
784- patch ("specify_cli.shutil.which" , return_value = "/usr/bin/git" ):
785- result = runner .invoke (app , ["init" , "--here" , "--ai" , "claude" , "--ai-skills" , "--script" , "sh" , "--no-git" ], input = "y\n " )
786-
787- assert result .exit_code == 0
788- # Commands must remain for --here
789- assert cmds_dir .exists ()
790- assert (cmds_dir / "speckit.specify.md" ).exists ()
791-
792759# ===== Skip-If-Exists Tests =====
793760
794761class TestSkipIfExists :
0 commit comments