Files
config-auditor-cli/tests/test_generate.py
7000pctAUTO 156352036a
Some checks failed
CI / test (push) Has been cancelled
CI / build (push) Has been cancelled
Add remaining test files: test_fixes, test_llm, test_generate, test_report, test_utils
2026-01-30 18:05:17 +00:00

88 lines
2.9 KiB
Python

import pytest
from pathlib import Path
import tempfile
import json
from config_auditor.generate import ConfigGenerator
class TestConfigGenerator:
def test_detect_node_project(self):
with tempfile.TemporaryDirectory() as tmpdir:
(Path(tmpdir) / "package.json").write_text('{"name": "test"}')
generator = ConfigGenerator()
result = generator.detect_project_type(Path(tmpdir))
assert result == "node"
def test_detect_python_project(self):
with tempfile.TemporaryDirectory() as tmpdir:
(Path(tmpdir) / "pyproject.toml").write_text('[tool.poetry]\nname = "test"')
generator = ConfigGenerator()
result = generator.detect_project_type(Path(tmpdir))
assert result == "python"
def test_detect_typescript_project(self):
with tempfile.TemporaryDirectory() as tmpdir:
(Path(tmpdir) / "tsconfig.json").write_text('{"compilerOptions": {}}')
generator = ConfigGenerator()
result = generator.detect_project_type(Path(tmpdir))
assert result == "typescript"
def test_detect_from_source_files(self):
with tempfile.TemporaryDirectory() as tmpdir:
src = Path(tmpdir) / "src"
src.mkdir()
(src / "main.ts").write_text("const x = 1;")
generator = ConfigGenerator()
result = generator.detect_project_type(Path(tmpdir))
assert result == "typescript"
def test_generate_from_node_template(self):
generator = ConfigGenerator()
config = generator.generate_from_template("node", Path("/tmp"))
assert "name" in config
assert "version" in config
assert "scripts" in config
assert "test" in config["scripts"]
def test_generate_from_python_template(self):
generator = ConfigGenerator()
config = generator.generate_from_template("python", Path("/tmp"))
assert "tool" in config
assert "poetry" in config["tool"]
def test_generate_from_typescript_template(self):
generator = ConfigGenerator()
config = generator.generate_from_template("typescript", Path("/tmp"))
assert "compilerOptions" in config
assert config["compilerOptions"]["strict"] is True
def test_analyze_project(self):
with tempfile.TemporaryDirectory() as tmpdir:
(Path(tmpdir) / "package.json").write_text('{"name": "test"}')
(Path(tmpdir) / "index.js").write_text("console.log('test');")
generator = ConfigGenerator()
result = generator.analyze_project(Path(tmpdir))
assert result["type"] == "node"
assert "package.json" in result["files"]
assert "index.js" in result["files"]
def test_unknown_template_raises_error(self):
generator = ConfigGenerator()
with pytest.raises(ValueError):
generator.generate_from_template("unknown", Path("/tmp"))