From 00bafb899db661b2fec857dd6e4e944d5a074a3f Mon Sep 17 00:00:00 2001 From: izzy Date: Fri, 19 Dec 2025 14:08:31 +0000 Subject: [PATCH] chore: mock the app restart callback --- server/src/services/cli.service.spec.ts | 12 +++++++----- server/src/services/cli.service.ts | 10 ++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/server/src/services/cli.service.spec.ts b/server/src/services/cli.service.spec.ts index 49fa5cf5b8..3987575fb0 100644 --- a/server/src/services/cli.service.spec.ts +++ b/server/src/services/cli.service.spec.ts @@ -5,6 +5,8 @@ import { factory } from 'test/small.factory'; import { newTestService, ServiceMocks } from 'test/utils'; import { describe, it } from 'vitest'; +const mockSendRestart = vi.fn(); + describe(CliService.name, () => { let sut: CliService; let mocks: ServiceMocks; @@ -85,7 +87,7 @@ describe(CliService.name, () => { describe('disableMaintenanceMode', () => { it('should not do anything if not in maintenance mode', async () => { mocks.systemMetadata.get.mockResolvedValue({ isMaintenanceMode: false }); - await expect(sut.disableMaintenanceMode()).resolves.toEqual({ + await expect(sut.disableMaintenanceMode(mockSendRestart)).resolves.toEqual({ alreadyDisabled: true, }); @@ -95,7 +97,7 @@ describe(CliService.name, () => { it('should disable maintenance mode', async () => { mocks.systemMetadata.get.mockResolvedValue({ isMaintenanceMode: true, secret: 'secret' }); - await expect(sut.disableMaintenanceMode()).resolves.toEqual({ + await expect(sut.disableMaintenanceMode(mockSendRestart)).resolves.toEqual({ alreadyDisabled: false, }); @@ -108,7 +110,7 @@ describe(CliService.name, () => { describe('enableMaintenanceMode', () => { it('should not do anything if in maintenance mode', async () => { mocks.systemMetadata.get.mockResolvedValue({ isMaintenanceMode: true, secret: 'secret' }); - await expect(sut.enableMaintenanceMode()).resolves.toEqual( + await expect(sut.enableMaintenanceMode(mockSendRestart)).resolves.toEqual( expect.objectContaining({ alreadyEnabled: true, }), @@ -120,7 +122,7 @@ describe(CliService.name, () => { it('should enable maintenance mode', async () => { mocks.systemMetadata.get.mockResolvedValue({ isMaintenanceMode: false }); - await expect(sut.enableMaintenanceMode()).resolves.toEqual( + await expect(sut.enableMaintenanceMode(mockSendRestart)).resolves.toEqual( expect.objectContaining({ alreadyEnabled: false, }), @@ -137,7 +139,7 @@ describe(CliService.name, () => { it('should return a valid login URL', async () => { mocks.systemMetadata.get.mockResolvedValue({ isMaintenanceMode: true, secret: 'secret' }); - const result = await sut.enableMaintenanceMode(); + const result = await sut.enableMaintenanceMode(mockSendRestart); expect(result).toEqual( expect.objectContaining({ diff --git a/server/src/services/cli.service.ts b/server/src/services/cli.service.ts index 7f6cb68d87..7ab81043b2 100644 --- a/server/src/services/cli.service.ts +++ b/server/src/services/cli.service.ts @@ -42,7 +42,7 @@ export class CliService extends BaseService { await this.updateConfig(config); } - async disableMaintenanceMode(): Promise<{ alreadyDisabled: boolean }> { + async disableMaintenanceMode(sendAppRestartCallback = sendOneShotAppRestart): Promise<{ alreadyDisabled: boolean }> { const currentState = await this.systemMetadataRepository .get(SystemMetadataKey.MaintenanceMode) .then((state) => state ?? { isMaintenanceMode: false as const }); @@ -56,14 +56,16 @@ export class CliService extends BaseService { const state = { isMaintenanceMode: false as const }; await this.systemMetadataRepository.set(SystemMetadataKey.MaintenanceMode, state); - await sendOneShotAppRestart(state); + await sendAppRestartCallback(state); return { alreadyDisabled: false, }; } - async enableMaintenanceMode(): Promise<{ authUrl: string; alreadyEnabled: boolean }> { + async enableMaintenanceMode( + sendAppRestartCallback = sendOneShotAppRestart, + ): Promise<{ authUrl: string; alreadyEnabled: boolean }> { const { server } = await this.getConfig({ withCache: true }); const baseUrl = getExternalDomain(server); @@ -89,7 +91,7 @@ export class CliService extends BaseService { secret, }); - await sendOneShotAppRestart({ + await sendAppRestartCallback({ isMaintenanceMode: true, });