diff --git a/ee/packages/license/src/license.spec.ts b/ee/packages/license/src/license.spec.ts index a1a226bdff5b..cbe74bafb4c5 100644 --- a/ee/packages/license/src/license.spec.ts +++ b/ee/packages/license/src/license.spec.ts @@ -279,6 +279,9 @@ describe('License.getInfo', () => { it('should respect the default if there is no license applied', async () => { const licenseManager = new LicenseImp(); + licenseManager.setLicenseLimitCounter('privateApps', () => 0); + licenseManager.setLicenseLimitCounter('marketplaceApps', () => 0); + expect( ( await licenseManager.getInfo({ diff --git a/ee/packages/license/src/license.ts b/ee/packages/license/src/license.ts index c8a5c0a514d5..8d13e6bcb3cd 100644 --- a/ee/packages/license/src/license.ts +++ b/ee/packages/license/src/license.ts @@ -139,12 +139,13 @@ export class LicenseManager extends Emitter { this._valid = false; this._lockedLicense = undefined; - this.shouldPreventActionResults.clear(); + this.states.clear(); clearPendingLicense.call(this); } private invalidateLicense(): void { this._valid = false; + this.states.clear(); licenseInvalidated.call(this); invalidateAll.call(this); } @@ -327,6 +328,8 @@ export class LicenseManager extends Emitter { 'monthlyActiveContacts', ]; + const license = this.getLicense(); + const items = await Promise.all( keys.map(async (limit) => { const cached = this.shouldPreventActionResults.get(limit as LicenseLimitKind); @@ -335,15 +338,17 @@ export class LicenseManager extends Emitter { return [limit as LicenseLimitKind, cached]; } - const fresh = this._license + const fresh = license ? isBehaviorsInResult( - await validateLicenseLimits.call(this, this._license, { + await validateLicenseLimits.call(this, license, { behaviors: ['prevent_action'], limits: [limit], }), ['prevent_action'], ) - : false; + : isBehaviorsInResult(await validateDefaultLimits.call(this, { behaviors: ['prevent_action'], limits: [limit] }), [ + 'prevent_action', + ]); this.shouldPreventActionResults.set(limit as LicenseLimitKind, fresh); diff --git a/ee/packages/license/src/validation/getCurrentValueForLicenseLimit.ts b/ee/packages/license/src/validation/getCurrentValueForLicenseLimit.ts index 8f9c6ed4034e..6dd3f143fc72 100644 --- a/ee/packages/license/src/validation/getCurrentValueForLicenseLimit.ts +++ b/ee/packages/license/src/validation/getCurrentValueForLicenseLimit.ts @@ -24,7 +24,7 @@ export async function getCurrentValueForLicenseLimit const counterFn = this.dataCounters.get(limitKey); if (!counterFn) { logger.error({ msg: 'Unable to validate license limit due to missing data counter.', limitKey }); - throw new Error('Unable to validate license limit due to missing data counter.'); + throw new Error(`Unable to validate license limit due to missing ${limitKey} data counter`); } return counterFn(context as LimitContext | undefined);