diff --git a/src/components/app/data/services/subsidies/subscriptions.js b/src/components/app/data/services/subsidies/subscriptions.js index 224b15806..04ac8f8b3 100644 --- a/src/components/app/data/services/subsidies/subscriptions.js +++ b/src/components/app/data/services/subsidies/subscriptions.js @@ -96,11 +96,14 @@ export async function getAutoAppliedSubscriptionLicense({ const hasSubscriptionForAutoAppliedLicenses = !!customerAgreement.subscriptionForAutoAppliedLicenses; const hasIdentityProvider = enterpriseCustomer.identityProvider; + const hasAutoAppliedWithUniversalLink = !!customerAgreement.enableAutoAppliedSubscriptionsWithUniversalLink; + const hasIdpOrAutoAppliedWithUniversalLink = hasIdentityProvider || hasAutoAppliedWithUniversalLink; // If customer agreement has no configured subscription plan for auto-applied - // licenses, or the enterprise customer does not have an identity provider, + // licenses, or the enterprise customer does not have either a identity provider or + // the field `enableAutoAppliedSubscriptionsWithUniversalLink` enabled // return early. - if (!hasSubscriptionForAutoAppliedLicenses || !hasIdentityProvider) { + if (!(hasSubscriptionForAutoAppliedLicenses && hasIdpOrAutoAppliedWithUniversalLink)) { return null; } diff --git a/src/components/app/data/services/subsidies/subscriptions.test.js b/src/components/app/data/services/subsidies/subscriptions.test.js index ed181d21b..83661b2f5 100644 --- a/src/components/app/data/services/subsidies/subscriptions.test.js +++ b/src/components/app/data/services/subsidies/subscriptions.test.js @@ -377,36 +377,77 @@ describe('activateOrAutoApplySubscriptionLicense', () => { { identityProvider: null, subscriptionForAutoAppliedLicenses: null, + enableAutoAppliedSubscriptionsWithUniversalLink: false, isLinkedToEnterpriseCustomer: false, shouldAutoApply: false, }, { identityProvider: null, subscriptionForAutoAppliedLicenses: mockSubscriptionPlanUUID, + enableAutoAppliedSubscriptionsWithUniversalLink: false, isLinkedToEnterpriseCustomer: false, shouldAutoApply: false, }, { identityProvider: 'identity-provider', subscriptionForAutoAppliedLicenses: null, + enableAutoAppliedSubscriptionsWithUniversalLink: false, isLinkedToEnterpriseCustomer: false, shouldAutoApply: false, }, { identityProvider: 'identity-provider', subscriptionForAutoAppliedLicenses: mockSubscriptionPlanUUID, + enableAutoAppliedSubscriptionsWithUniversalLink: false, isLinkedToEnterpriseCustomer: false, shouldAutoApply: false, }, { identityProvider: 'identity-provider', subscriptionForAutoAppliedLicenses: mockSubscriptionPlanUUID, + enableAutoAppliedSubscriptionsWithUniversalLink: false, + isLinkedToEnterpriseCustomer: true, + shouldAutoApply: true, + }, + { + identityProvider: null, + subscriptionForAutoAppliedLicenses: null, + enableAutoAppliedSubscriptionsWithUniversalLink: true, + isLinkedToEnterpriseCustomer: false, + shouldAutoApply: false, + }, + { + identityProvider: null, + subscriptionForAutoAppliedLicenses: mockSubscriptionPlanUUID, + enableAutoAppliedSubscriptionsWithUniversalLink: true, + isLinkedToEnterpriseCustomer: false, + shouldAutoApply: false, + }, + { + identityProvider: 'identity-provider', + subscriptionForAutoAppliedLicenses: null, + enableAutoAppliedSubscriptionsWithUniversalLink: true, + isLinkedToEnterpriseCustomer: false, + shouldAutoApply: false, + }, + { + identityProvider: 'identity-provider', + subscriptionForAutoAppliedLicenses: mockSubscriptionPlanUUID, + enableAutoAppliedSubscriptionsWithUniversalLink: true, + isLinkedToEnterpriseCustomer: false, + shouldAutoApply: false, + }, + { + identityProvider: 'identity-provider', + subscriptionForAutoAppliedLicenses: mockSubscriptionPlanUUID, + enableAutoAppliedSubscriptionsWithUniversalLink: true, isLinkedToEnterpriseCustomer: true, shouldAutoApply: true, }, ])('auto-applies subscription license (%s)', async ({ identityProvider, subscriptionForAutoAppliedLicenses, + enableAutoAppliedSubscriptionsWithUniversalLink, isLinkedToEnterpriseCustomer, shouldAutoApply, }) => { @@ -418,6 +459,7 @@ describe('activateOrAutoApplySubscriptionLicense', () => { const mockCustomerAgreementWithAutoApplied = { ...mockCustomerAgreement, subscriptionForAutoAppliedLicenses, + enableAutoAppliedSubscriptionsWithUniversalLink, }; const mockSubscriptionsData = { customerAgreement: mockCustomerAgreementWithAutoApplied,