diff --git a/packages/cli/test/integration/commands/license.cmd.test.ts b/packages/cli/test/integration/commands/license.cmd.test.ts index f7c05a7c774f3..4dba8d163f629 100644 --- a/packages/cli/test/integration/commands/license.cmd.test.ts +++ b/packages/cli/test/integration/commands/license.cmd.test.ts @@ -1,10 +1,14 @@ -import { License } from '@/license'; -import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials'; -import { ClearLicenseCommand } from '@/commands/license/clear'; +import { Container } from 'typedi'; import { setupTestCommand } from '@test-integration/utils/test-command'; import { mockInstance } from '../../shared/mocking'; +import { ClearLicenseCommand } from '@/commands/license/clear'; +import { SETTINGS_LICENSE_CERT_KEY } from '@/constants'; +import { SettingsRepository } from '@/databases/repositories/settings.repository'; +import { License } from '@/license'; +import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials'; + mockInstance(LoadNodesAndCredentials); const license = mockInstance(License); const command = setupTestCommand(ClearLicenseCommand); @@ -15,3 +19,17 @@ test('license:clear invokes shutdown() to release any floating entitlements', as expect(license.init).toHaveBeenCalledTimes(1); expect(license.shutdown).toHaveBeenCalledTimes(1); }); + +test('license:clear deletes the license from the DB even if shutdown() fails', async () => { + license.shutdown.mockRejectedValueOnce(new Error('shutdown failed')); + + const settingsRepository = Container.get(SettingsRepository); + + settingsRepository.delete = jest.fn(); + + await command.run(); + + expect(settingsRepository.delete).toHaveBeenCalledWith({ + key: SETTINGS_LICENSE_CERT_KEY, + }); +});