import pytest from click.testing import CliRunner from src.cli import main @pytest.fixture def runner(): return CliRunner() def test_cli_help(runner): result = runner.invoke(main, ['--help']) assert result.exit_code == 0 assert 'LocalAPI Docs' in result.output def test_cli_serve(runner, tmp_path, sample_spec): result = runner.invoke(main, ['serve', str(sample_spec)]) assert result.exit_code == 0 def test_cli_generate(runner, tmp_path, sample_spec): output = tmp_path / "output.html" result = runner.invoke(main, ['generate', str(sample_spec), '-o', str(output)]) assert result.exit_code == 0 assert output.exists() def test_cli_validate(runner, sample_spec): result = runner.invoke(main, ['validate', str(sample_spec)]) assert result.exit_code == 0 assert 'valid' in result.output.lower()