diff --git a/packages/cli/src/license/__tests__/license.service.test.ts b/packages/cli/src/license/__tests__/license.service.test.ts index 895861ce86..f1894e8fbf 100644 --- a/packages/cli/src/license/__tests__/license.service.test.ts +++ b/packages/cli/src/license/__tests__/license.service.test.ts @@ -76,6 +76,15 @@ describe('LicenseService', () => { }); describe('renewLicense', () => { + test('should skip renewal for unlicensed user (Community plan)', async () => { + license.getPlanName.mockReturnValueOnce('Community'); + + await licenseService.renewLicense(); + + expect(license.renew).not.toHaveBeenCalled(); + expect(eventService.emit).not.toHaveBeenCalled(); + }); + test('on success', async () => { license.renew.mockResolvedValueOnce(); await licenseService.renewLicense(); diff --git a/packages/cli/src/license/license.service.ts b/packages/cli/src/license/license.service.ts index 97bc9a3bdc..7f2ebbc37f 100644 --- a/packages/cli/src/license/license.service.ts +++ b/packages/cli/src/license/license.service.ts @@ -120,6 +120,8 @@ export class LicenseService { } async renewLicense() { + if (this.license.getPlanName() === 'Community') return; // unlicensed, nothing to renew + try { await this.license.renew(); } catch (e) { diff --git a/packages/cli/test/integration/license.api.test.ts b/packages/cli/test/integration/license.api.test.ts index 3d044c4f85..357ef5fed7 100644 --- a/packages/cli/test/integration/license.api.test.ts +++ b/packages/cli/test/integration/license.api.test.ts @@ -101,6 +101,7 @@ describe('POST /license/renew', () => { }); test('errors out properly', async () => { + License.prototype.getPlanName = jest.fn().mockReturnValue('Enterprise'); License.prototype.renew = jest.fn().mockImplementation(() => { throw new Error(GENERIC_ERROR_MESSAGE); });