|
6 | 6 | ENTERPRISE_FEATURE_LEGACY_DEFAULTS, |
7 | 7 | type EnterpriseFeature, |
8 | 8 | resolveEnterpriseEntitlement, |
| 9 | + resolveSandboxFeatureAvailability, |
9 | 10 | } from '@/lib/core/config/enterprise-entitlements' |
10 | 11 |
|
11 | 12 | describe('resolveEnterpriseEntitlement', () => { |
@@ -114,3 +115,45 @@ describe('resolveEnterpriseEntitlement', () => { |
114 | 115 | }) |
115 | 116 | }) |
116 | 117 | }) |
| 118 | + |
| 119 | +describe('resolveSandboxFeatureAvailability', () => { |
| 120 | + it.each([ |
| 121 | + { |
| 122 | + name: 'hosted billing with a provider', |
| 123 | + billingEnabled: true, |
| 124 | + deploymentEntitled: false, |
| 125 | + remoteProviderEnabled: true, |
| 126 | + expected: true, |
| 127 | + }, |
| 128 | + { |
| 129 | + name: 'hosted billing without a provider', |
| 130 | + billingEnabled: true, |
| 131 | + deploymentEntitled: false, |
| 132 | + remoteProviderEnabled: false, |
| 133 | + expected: false, |
| 134 | + }, |
| 135 | + { |
| 136 | + name: 'billing-free Enterprise or feature entitlement with a provider', |
| 137 | + billingEnabled: false, |
| 138 | + deploymentEntitled: true, |
| 139 | + remoteProviderEnabled: true, |
| 140 | + expected: true, |
| 141 | + }, |
| 142 | + { |
| 143 | + name: 'billing-free provider credentials without an entitlement', |
| 144 | + billingEnabled: false, |
| 145 | + deploymentEntitled: false, |
| 146 | + remoteProviderEnabled: true, |
| 147 | + expected: false, |
| 148 | + }, |
| 149 | + { |
| 150 | + name: 'billing-free entitlement without a provider', |
| 151 | + billingEnabled: false, |
| 152 | + deploymentEntitled: true, |
| 153 | + remoteProviderEnabled: false, |
| 154 | + expected: false, |
| 155 | + }, |
| 156 | + ])('$name resolves to $expected', ({ expected, ...input }) => { |
| 157 | + expect(resolveSandboxFeatureAvailability(input)).toBe(expected) |
| 158 | + }) |
| 159 | +}) |
0 commit comments