Add remaining test files: test_fixes, test_llm, test_generate, test_report, test_utils
This commit is contained in:
87
tests/test_generate.py
Normal file
87
tests/test_generate.py
Normal file
@@ -0,0 +1,87 @@
|
||||
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"))
|
||||
Reference in New Issue
Block a user