import pytest from pathlib import Path from unittest.mock import MagicMock, patch from setup.components.mcp_docs import MCPDocsComponent class TestMCPDocsComponent: @patch('setup.components.mcp_docs.MCPDocsComponent._post_install', return_value=True) def test_install_calls_post_install_even_if_no_docs(self, mock_post_install): component = MCPDocsComponent(install_dir=Path('/fake/dir')) # Simulate no servers selected config = { "selected_mcp_servers": [] } success = component._install(config) assert success is True mock_post_install.assert_called_once() @patch('setup.components.mcp_docs.MCPDocsComponent._post_install', return_value=True) @patch('setup.components.mcp_docs.MCPDocsComponent.get_files_to_install', return_value=[]) @patch('setup.core.base.Component.validate_prerequisites', return_value=(True, [])) def test_install_calls_post_install_if_docs_not_found(self, mock_validate_prereqs, mock_get_files, mock_post_install): component = MCPDocsComponent(install_dir=Path('/tmp/fake_dir')) # Simulate a server was selected, but the doc file doesn't exist config = { "selected_mcp_servers": ["some_server_with_no_doc_file"] } success = component._install(config) assert success is True mock_post_install.assert_called_once()