From 0a3393766bbad3199697dcff3860c0f552c8431d Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Mon, 2 Feb 2026 21:37:38 +0000 Subject: [PATCH] Add CLI and integration tests --- tests/unit/test_cli.py | 76 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 tests/unit/test_cli.py diff --git a/tests/unit/test_cli.py b/tests/unit/test_cli.py new file mode 100644 index 0000000..86dd31d --- /dev/null +++ b/tests/unit/test_cli.py @@ -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