from click.testing import CliRunner import markitect_tool as api from markitect_tool.cli import main def test_mkt_completion_generates_bash_script(): result = CliRunner().invoke(main, ["completion", "bash"]) assert result.exit_code == 0, result.output assert "_mkt_completion" in result.output assert "_MKT_COMPLETE=bash_complete" in result.output def test_mkt_completion_instructions_are_unix_shell_friendly(): result = CliRunner().invoke(main, ["completion", "zsh", "--instructions"]) assert result.exit_code == 0, result.output assert "_MKT_COMPLETE=zsh_source mkt" in result.output assert "~/.zshrc" in result.output def test_mkt_extension_commands_exposes_builtin_cli_affordances(): result = CliRunner().invoke(main, ["extension", "commands", "--format", "json"]) assert result.exit_code == 0, result.output assert '"command": "mkt query"' in result.output assert '"command": "mkt extension commands"' in result.output assert '"command": "mkt docs api"' in result.output def test_mkt_extension_inspect_explains_descriptor(): result = CliRunner().invoke(main, ["extension", "inspect", "memory.context-package"]) assert result.exit_code == 0, result.output assert "memory.context-package" in result.output assert "mkt context pack" in result.output def test_mkt_docs_cli_generates_command_reference(): result = CliRunner().invoke(main, ["docs", "cli"]) assert result.exit_code == 0, result.output assert "# Markitect CLI Reference" in result.output assert "## `mkt extension commands`" in result.output assert "## `mkt docs api`" in result.output def test_mkt_docs_api_generates_public_api_reference(): result = CliRunner().invoke(main, ["docs", "api"]) assert result.exit_code == 0, result.output assert "# Markitect API Reference" in result.output assert "query_document_jsonpath" in result.output assert "ExtensionDescriptor" in result.output assert "LocalSnapshotStore" in result.output def test_top_level_api_exports_newer_architecture_surfaces(): assert api.query_document_jsonpath assert api.extract_document_with_engine assert api.LocalSnapshotStore assert api.ExtensionDescriptor assert api.builtin_extension_registry assert api.validate_schema