test(licensing): preserve community multi-tenant entitlement boundary

Hosted organisation E2E failures exposed an ambiguity between runtime identity and entitlement provisioning. Assert that Community preserves a granted multi_tenant capability without manufacturing it when absent, so fixture repairs do not wrongly require a private binary or weaken capability gating.

Change-source: pulse-maintainer
This commit is contained in:
pulse-triage[bot]
2026-09-09 10:51:06 +01:00
parent e188a36eed
commit 26c9d19f39
+16
View File
@@ -456,6 +456,22 @@ func TestFilterCapabilitiesForRuntimeIdentity_BlocksPrivateRuntimeCapabilitiesOn
}
}
// The E2E runtime flag can enable backend development gates, but it is not
// an entitlement. Community builds retain multi-tenancy only when supplied
// by the entitlement payload; a private runtime is not required for this key.
func TestFilterCapabilitiesForRuntimeIdentity_CommunityMultiTenantEntitlement(t *testing.T) {
for _, granted := range []bool{false, true} {
capabilities := []string{FeatureRelay}
if granted {
capabilities = append(capabilities, FeatureMultiTenant)
}
filtered, blocked := FilterCapabilitiesForRuntimeIdentity(capabilities, CommunityRuntimeIdentity())
if !reflect.DeepEqual(filtered, capabilities) || len(blocked) != 0 {
t.Fatalf("granted=%v: filtered=%v blocked=%v, want %v without blocks", granted, filtered, blocked, capabilities)
}
}
}
func TestFilterCapabilitiesForRuntimeIdentity_PreservesPrivateRuntimeCapabilitiesOnProBuild(t *testing.T) {
capabilities := []string{FeatureRelay, FeatureAuditLogging, FeatureRBAC, FeatureAIAutoFix}
filtered, blocked := FilterCapabilitiesForRuntimeIdentity(capabilities, ProRuntimeIdentity())