diff --git a/server/src/services/version.service.spec.ts b/server/src/services/version.service.spec.ts index 84c7b578dd..7872f720a9 100644 --- a/server/src/services/version.service.spec.ts +++ b/server/src/services/version.service.spec.ts @@ -130,7 +130,7 @@ describe(VersionService.name, () => { }); }); - describe('onWebsocketConnectionEvent', () => { + describe('onWebsocketConnection', () => { it('should send on_server_version client event', async () => { await sut.onWebsocketConnection({ userId: '42' }); expect(mocks.websocket.clientSend).toHaveBeenCalledWith('on_server_version', '42', expect.any(SemVer)); @@ -143,5 +143,12 @@ describe(VersionService.name, () => { expect(mocks.websocket.clientSend).toHaveBeenCalledWith('on_server_version', '42', expect.any(SemVer)); expect(mocks.websocket.clientSend).toHaveBeenCalledWith('on_new_release', '42', expect.any(Object)); }); + + it('should not send a release notification when the version check is disabled', async () => { + mocks.systemMetadata.get.mockResolvedValueOnce({ newVersionCheck: { enabled: false } }); + await sut.onWebsocketConnection({ userId: '42' }); + expect(mocks.websocket.clientSend).toHaveBeenCalledWith('on_server_version', '42', expect.any(SemVer)); + expect(mocks.websocket.clientSend).not.toHaveBeenCalledWith('on_new_release', '42', expect.any(Object)); + }); }); }); diff --git a/server/src/services/version.service.ts b/server/src/services/version.service.ts index 2d3924bc49..fd51fa9adf 100644 --- a/server/src/services/version.service.ts +++ b/server/src/services/version.service.ts @@ -105,6 +105,12 @@ export class VersionService extends BaseService { @OnEvent({ name: 'WebsocketConnect' }) async onWebsocketConnection({ userId }: ArgOf<'WebsocketConnect'>) { this.websocketRepository.clientSend('on_server_version', userId, serverVersion); + + const { newVersionCheck } = await this.getConfig({ withCache: true }); + if (!newVersionCheck.enabled) { + return; + } + const metadata = await this.systemMetadataRepository.get(SystemMetadataKey.VersionCheckState); if (metadata) { this.websocketRepository.clientSend('on_new_release', userId, asNotification(metadata));