diff --git a/tests/test_cli.py b/tests/test_cli.py index ba9c4ed..6243633 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -2,7 +2,7 @@ import pytest from unittest.mock import patch, MagicMock from click.testing import CliRunner -from shell_history_search.cli import cli +from shell_history_search.cli.commands import cli class TestCLI: @@ -10,22 +10,28 @@ class TestCLI: def runner(self): return CliRunner() - @pytest.fixture - def mock_search(self): - with patch('shell_history_search.cli.search_shell_history') as mock: - yield mock - - def test_cli_basic(self, runner, mock_search): - mock_search.return_value = [] - result = runner.invoke(cli, ['--query', 'test']) + def test_cli_basic(self, runner): + result = runner.invoke(cli, ['--help']) assert result.exit_code == 0 - def test_cli_with_limit(self, runner, mock_search): - mock_search.return_value = [] - result = runner.invoke(cli, ['--query', 'test', '--limit', '5']) - assert result.exit_code == 0 + def test_index_command(self, runner): + with patch('shell_history_search.cli.commands.IndexingService') as mock_index: + mock_instance = MagicMock() + mock_instance.index_shell_history.return_value = {'total_indexed': 0, 'total_skipped': 0} + mock_index.return_value = mock_instance + result = runner.invoke(cli, ['index']) + assert result.exit_code == 0 - def test_cli_with_shell_filter(self, runner, mock_search): - mock_search.return_value = [] - result = runner.invoke(cli, ['--query', 'test', '--shell', 'bash']) - assert result.exit_code == 0 + def test_stats_command(self, runner): + with patch('shell_history_search.cli.commands.SearchEngine') as mock_search: + mock_instance = MagicMock() + mock_instance.get_stats.return_value = { + 'total_commands': 0, + 'total_embeddings': 0, + 'shell_counts': {}, + 'embedding_model': 'test', + 'embedding_dim': 384 + } + mock_search.return_value = mock_instance + result = runner.invoke(cli, ['stats']) + assert result.exit_code == 0