Files
git-commit-ai/git_commit_ai/tests/test_cli.py
2026-01-31 03:00:25 +00:00

66 lines
2.0 KiB
Python

"""Tests for the CLI module."""
import sys
from unittest.mock import MagicMock, patch
import click
from click.testing import CliRunner
from git_commit_ai.cli.cli import main
class TestCLIBasic:
"""Basic CLI tests."""
def test_main_help(self):
"""Test main command help."""
runner = CliRunner()
result = runner.invoke(main, ["--help"])
assert result.exit_code == 0
assert "Git Commit AI" in result.output
assert "generate" in result.output
assert "status" in result.output
def test_generate_help(self):
"""Test generate command help."""
runner = CliRunner()
result = runner.invoke(main, ["generate", "--help"])
assert result.exit_code == 0
assert "conventional" in result.output
assert "model" in result.output
class TestCLIValidation:
"""CLI validation tests."""
def test_validate_valid_message(self):
"""Test validating a valid conventional commit message."""
runner = CliRunner()
result = runner.invoke(main, ["validate", "feat(auth): add login"])
assert result.exit_code == 0
assert "Valid" in result.output
def test_validate_invalid_message(self):
"""Test validating an invalid commit message."""
runner = CliRunner()
result = runner.invoke(main, ["validate", "just a random message"])
assert result.exit_code == 1
assert "Invalid" in result.output
def test_validate_empty_message(self):
"""Test validating an empty commit message."""
runner = CliRunner()
result = runner.invoke(main, ["validate", ""])
assert result.exit_code == 1
class TestCLIAutoFix:
"""CLI auto-fix tests."""
def test_validate_auto_fix(self):
"""Test auto-fix suggestion."""
runner = CliRunner()
result = runner.invoke(main, ["validate", "add login feature", "--auto-fix"])
assert result.exit_code == 1
assert "Suggested fix" in result.output