from sentinelscan.core.engine import SentinelEngine

def test_engine_run_basic():
    engine = SentinelEngine(target="example.com", ports="1-10")
    results = engine.run()
    assert isinstance(results, list)

def test_engine_with_subdomains():
    engine = SentinelEngine(target="example.com", ports="1-10", subdomains=True)
    results = engine.run()
    assert isinstance(results, list)

def test_engine_with_web_recon():
    engine = SentinelEngine(target="example.com", ports="1-10", web=True)
    results = engine.run()
    assert isinstance(results, list)

def test_engine_with_vuln_checks():
    engine = SentinelEngine(target="example.com", ports="1-10", vuln=True)
    results = engine.run()
    assert isinstance(results, list)

def test_engine_reporting_json(tmp_path):
    report_file = tmp_path / "report.json"
    engine = SentinelEngine(target="example.com", ports="1-10", output=str(report_file), fmt="json")
    results = engine.run()
    assert report_file.exists()
