refactor: establish standalone application boundary
This commit is contained in:
@@ -19,7 +19,7 @@ ROOT = Path(__file__).resolve().parents[1]
|
||||
|
||||
|
||||
class MaintenanceToolTests(unittest.TestCase):
|
||||
def test_generated_candidate_registries_are_current(self) -> None:
|
||||
def test_generated_registries_are_current(self) -> None:
|
||||
expected_api = json.loads(
|
||||
(ROOT / "config" / "api.config.json").read_text(encoding="utf-8")
|
||||
)
|
||||
@@ -31,20 +31,29 @@ class MaintenanceToolTests(unittest.TestCase):
|
||||
self.assertEqual(expected_api, build_api_registry())
|
||||
self.assertEqual(expected_architecture, build_architecture_inventory())
|
||||
|
||||
def test_baseline_verifier_uses_the_candidate_frontend(self) -> None:
|
||||
def test_baseline_verifier_uses_the_application_frontend(self) -> None:
|
||||
source = (ROOT / "tools" / "verify_baseline.py").read_text(encoding="utf-8")
|
||||
self.assertIn('FRONTEND_ROOT = ROOT / "frontend"', source)
|
||||
self.assertIn('FRONTEND_ROOT.rglob("*.js")', source)
|
||||
self.assertIn('path.suffix in {".js", ".mjs"}', source)
|
||||
self.assertIn("start_e2e_server()", source)
|
||||
self.assertIn("stop_e2e_server(server)", source)
|
||||
self.assertNotIn('"static/app.js"', source)
|
||||
|
||||
def test_standalone_verifier_excludes_only_migration_comparison_modules(self) -> None:
|
||||
repository_command = python_test_command(preservation_baseline=True)
|
||||
standalone_command = python_test_command(preservation_baseline=False)
|
||||
self.assertIn("discover", repository_command)
|
||||
self.assertTrue(any(item == "tests.test_frontend_contract" for item in standalone_command))
|
||||
self.assertFalse(any("test_preservation_" in item for item in standalone_command))
|
||||
def test_runtime_artifacts_have_one_ignored_root(self) -> None:
|
||||
gitignore = (ROOT / ".gitignore").read_text(encoding="utf-8")
|
||||
dockerignore = (ROOT / ".dockerignore").read_text(encoding="utf-8")
|
||||
playwright = (ROOT / "playwright.config.js").read_text(encoding="utf-8")
|
||||
launcher = (ROOT / "tools" / "start_local.ps1").read_text(encoding="utf-8")
|
||||
self.assertIn("runtime/*", gitignore)
|
||||
self.assertIn("runtime/", dockerignore)
|
||||
self.assertIn('outputDir: "./runtime/test-results"', playwright)
|
||||
self.assertIn('Join-Path $runtime "logs"', launcher)
|
||||
self.assertEqual(list(ROOT.glob("*.log")), [])
|
||||
|
||||
def test_verifier_runs_the_complete_standalone_suite(self) -> None:
|
||||
command = python_test_command()
|
||||
self.assertIn("discover", command)
|
||||
self.assertIn("tests", command)
|
||||
|
||||
def test_architecture_metrics_are_independent_of_checkout_line_endings(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
@@ -70,19 +79,16 @@ class MaintenanceToolTests(unittest.TestCase):
|
||||
)
|
||||
self.assertEqual(result.returncode, 0, result.stderr)
|
||||
|
||||
def test_migration_only_tools_are_explicitly_classified(self) -> None:
|
||||
readme = (ROOT / "tools" / "README.md").read_text(encoding="utf-8")
|
||||
def test_migration_only_tools_are_retired(self) -> None:
|
||||
for name in (
|
||||
"build_preservation_manifest.py",
|
||||
"compare_preservation_apis.py",
|
||||
"compare_preservation_databases.py",
|
||||
"move_class_methods.py",
|
||||
"split_frontend_runtime.py",
|
||||
"run_preservation_runtime.py",
|
||||
):
|
||||
self.assertIn(name, readme)
|
||||
manifest = (ROOT / "tools" / "build_preservation_manifest.py").read_text(
|
||||
encoding="utf-8"
|
||||
)
|
||||
self.assertNotIn('TARGET = ROOT / "app"', manifest)
|
||||
self.assertIn('required=True', manifest)
|
||||
with self.subTest(name=name):
|
||||
self.assertFalse((ROOT / "tools" / name).exists())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user