mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-09 18:15:50 +00:00
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:
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user