from active_runtime.app.architecture_owner_gate import ArchitectureOwnerGate def test_architecture_change_blocks_without_owner(): gate = ArchitectureOwnerGate() request = gate.create_request( {"id": "arch-1", "title": "new architecture", "risk": "high"}, {"status": "pass"}, ) result = gate.can_implement(request.to_dict()) assert result["allowed"] is False assert result["status"] == "waiting_owner_approval" def test_architecture_change_allows_after_owner(): gate = ArchitectureOwnerGate() request = {"request_id": "arch-1"} result = gate.can_implement(request, {"decision": "approved", "decided_by": "owner"}) assert result["allowed"] is True