Activate whynot npm credential lane

This commit is contained in:
2026-06-29 00:13:09 +02:00
parent e88c7829f3
commit 8f617fcbf4
5 changed files with 67 additions and 31 deletions

View File

@@ -52,33 +52,25 @@ class CredentialChangeTests(unittest.TestCase):
self.assertIn("whynot-design npm publish token lane", rendered)
self.assertIn("platform/workloads/coulomb/whynot-design/npm-publish", rendered)
self.assertIn("whynot-design-npm-publish", rendered)
self.assertIn("readiness: applied-pending-verify resolvable=False", rendered)
self.assertIn("readiness: ready resolvable=True", rendered)
self.assertIn("approve | deny | needs_changes", rendered)
def test_status_payload_marks_applied_pending_verify_not_resolvable(self) -> None:
def test_status_payload_marks_active_ready_resolvable(self) -> None:
ccr, _errors, warnings = credential_change.validate_ccr(self.sample)
payload = credential_change.status_payload(ccr, warnings)
self.assertFalse(payload["apply_allowed"])
self.assertTrue(payload["apply_complete"])
self.assertFalse(payload["frontdoor_resolvable"])
self.assertEqual(payload["status"], "applied")
self.assertEqual(payload["access_frontdoor"]["readiness"], "applied-pending-verify")
self.assertTrue(payload["frontdoor_resolvable"])
self.assertEqual(payload["status"], "active")
self.assertEqual(payload["access_frontdoor"]["readiness"], "ready")
self.assertEqual(payload["access_frontdoor"]["catalog_id"], "whynot-design-npm-publish")
self.assertEqual(payload["apply_blockers"], [])
self.assertEqual(payload["frontdoor_blockers"], [])
self.assertEqual(payload["warnings"], [])
self.assertEqual(
payload["state_hub"]["decision_id"],
"e6381a56-6b04-4fd5-b2de-f3ef59cde888",
)
self.assertIn(
"front door requires CCR status active, got applied",
payload["frontdoor_blockers"],
)
self.assertIn(
"front door readiness must be ready, got applied-pending-verify",
payload["frontdoor_blockers"],
)
self.assertIn("front door is marked resolvable=false", payload["frontdoor_blockers"])
def test_state_hub_rationale_prefix_maps_to_ccr_status(self) -> None:
cases = {
@@ -101,6 +93,10 @@ class CredentialChangeTests(unittest.TestCase):
copied = Path(tmp) / self.sample.name
shutil.copy2(self.sample, copied)
copied_ccr = credential_change.load_yaml(copied)
copied_ccr["status"] = "proposed"
copied_ccr["access_frontdoor"]["readiness"] = "template"
copied_ccr["access_frontdoor"]["resolvable"] = False
copied_ccr["access_frontdoor"]["activation"] = "pending-review"
copied_ccr.setdefault("state_hub", {})[
"decision_id"
] = "250669d0-8475-4527-9624-cd072249f9a9"