import json import unittest from pathlib import Path REPO_ROOT = Path(__file__).resolve().parents[1] FIXTURE_ROOT = REPO_ROOT / "tests" / "conformance" / "issue-tracker" REQUIRED_FIXTURE_FILES = { "README.md", "boundary_test.go", "go.mod", "go.sum", "managed_workflow.go", "managed_workflow_lifecycle.go", "managed_workflow_test.go", "point_read.go", "point_read_test.go", "testdata/point_read_golden.json", } FORBIDDEN_RELEASE_ROOTS = { "issue-tracker-standard", "dialects/dialect-issue-tracker", } FORBIDDEN_FIXTURE_ARTIFACTS = { "Dockerfile", "Makefile", "main.go", "pack.json", "package.json", "source-index.json", "source-manifest.json", } class ConformanceFixtureBoundaryTest(unittest.TestCase): def test_sealed_fixture_is_complete(self): files = { path.relative_to(FIXTURE_ROOT).as_posix() for path in FIXTURE_ROOT.rglob("*") if path.is_file() } self.assertTrue(REQUIRED_FIXTURE_FILES.issubset(files)) self.assertEqual( (FIXTURE_ROOT / "go.mod").read_text(encoding="utf-8").splitlines()[0], "module github.com/nexuscrm/app-packs-conformance/issue-tracker", ) def test_release_shaped_roots_are_absent(self): for relative in FORBIDDEN_RELEASE_ROOTS: with self.subTest(path=relative): self.assertFalse((REPO_ROOT / relative).exists()) def test_fixture_is_only_issue_tracker_named_path(self): fixture_relative = FIXTURE_ROOT.relative_to(REPO_ROOT) for path in REPO_ROOT.rglob("*"): relative = path.relative_to(REPO_ROOT) if relative == fixture_relative or fixture_relative in relative.parents: continue normalized = relative.as_posix().lower().replace("_", "-") self.assertNotIn("issue-tracker", normalized, relative) def test_fixture_has_no_product_or_release_entrypoint(self): for path in FIXTURE_ROOT.rglob("*"): if path.is_dir(): self.assertNotEqual(path.name, "cmd") continue self.assertNotIn(path.name, FORBIDDEN_FIXTURE_ARTIFACTS) def test_frontend_source_index_contains_only_real_frontends(self): source_index = json.loads( (REPO_ROOT / "frontend" / "source-index.json").read_text(encoding="utf-8") ) self.assertEqual( source_index["appFrontendManifests"], [ { "pack": "salesforce-crm-standard", "manifest": "salesforce-crm-standard/frontend/source-manifest.json", } ], ) if __name__ == "__main__": unittest.main()