Add CLI and integration tests

This commit is contained in:
2026-02-02 21:37:38 +00:00
parent 308a4a488e
commit 0a3393766b

76
tests/unit/test_cli.py Normal file
View File

@@ -0,0 +1,76 @@
import pytest
from unittest.mock import patch, Mock
from click.testing import CliRunner
from pathlib import Path
import tempfile
import json
@pytest.fixture
def runner():
return CliRunner()
class TestCLI:
def test_version_option(self, runner):
from depaudit.cli import main
result = runner.invoke(main, ["--version"])
assert result.exit_code == 0
assert "1.0.0" in result.output
def test_audit_command_exists(self, runner):
from depaudit.cli import main
result = runner.invoke(main, ["--help"])
assert result.exit_code == 0
assert "audit" in result.output.lower()
class TestAuditCommand:
def test_audit_no_path(self, runner):
from depaudit.cli import audit
with tempfile.TemporaryDirectory() as tmpdir:
result = runner.invoke(audit, [tmpdir])
assert result.exit_code == 0
def test_audit_single_file(self, runner):
from depaudit.cli import audit
with tempfile.TemporaryDirectory() as tmpdir:
pkg_file = Path(tmpdir) / "package.json"
pkg_file.write_text(json.dumps({
"name": "test",
"version": "1.0.0",
"dependencies": {}
}))
result = runner.invoke(audit, [str(pkg_file)])
assert result.exit_code == 0
class TestGenerateCICDCommand:
def test_generate_github_workflow(self, runner):
from depaudit.cli import generate_cicd
with tempfile.TemporaryDirectory() as tmpdir:
result = runner.invoke(generate_cicd, ["github", tmpdir])
assert result.exit_code == 0
class TestParseCommand:
def test_parse_package_json(self, runner):
from depaudit.cli import parse
with tempfile.TemporaryDirectory() as tmpdir:
pkg_file = Path(tmpdir) / "package.json"
pkg_file.write_text(json.dumps({
"name": "test-project",
"version": "1.0.0",
"dependencies": {"express": "^4.0.0"}
}))
result = runner.invoke(parse, [str(pkg_file)])
assert result.exit_code == 0
assert "test-project" in result.output