From d96d5e15898a07bb6d3ebb6471811829a3e683f6 Mon Sep 17 00:00:00 2001 From: seavor Date: Sun, 12 Apr 2026 03:03:01 -0500 Subject: [PATCH] fix build and lint --- .../websocket/__mocks__/callbackHelpers.ts | 8 ++++-- webclient/src/websocket/__mocks__/helpers.ts | 4 +-- .../commands/room/roomCommands.spec.ts | 3 +- .../session/sessionCommands-complex.spec.ts | 4 ++- .../session/sessionCommands-simple.spec.ts | 28 ++++++++++++++----- .../websocket/services/BackendService.spec.ts | 6 ++-- .../services/ProtoController.spec.ts | 4 +-- .../services/WebSocketService.spec.ts | 5 ++-- 8 files changed, 42 insertions(+), 20 deletions(-) diff --git a/webclient/src/websocket/__mocks__/callbackHelpers.ts b/webclient/src/websocket/__mocks__/callbackHelpers.ts index ffa4f04b5..964e7df6e 100644 --- a/webclient/src/websocket/__mocks__/callbackHelpers.ts +++ b/webclient/src/websocket/__mocks__/callbackHelpers.ts @@ -19,7 +19,9 @@ export function makeCallbackHelpers(mockFn: jest.Mock, optsArgIndex = 2) { function invokeResponseCode(code: number, raw: any = { responseCode: code }) { const opts = getLastSendOpts(); - if (opts?.onResponseCode?.[code]) opts.onResponseCode[code](raw); + if (opts?.onResponseCode?.[code]) { + opts.onResponseCode[code](raw); + } } function invokeOnError(code: number = 99, raw: any = {}) { @@ -28,7 +30,9 @@ export function makeCallbackHelpers(mockFn: jest.Mock, optsArgIndex = 2) { function invokeCallback(callbackName: string, ...args: any[]) { const opts = getLastSendOpts(); - if (opts?.[callbackName]) opts[callbackName](...args); + if (opts?.[callbackName]) { + opts[callbackName](...args); + } } return { getLastSendOpts, invokeOnSuccess, invokeResponseCode, invokeOnError, invokeCallback }; diff --git a/webclient/src/websocket/__mocks__/helpers.ts b/webclient/src/websocket/__mocks__/helpers.ts index 669792ea7..a511125a8 100644 --- a/webclient/src/websocket/__mocks__/helpers.ts +++ b/webclient/src/websocket/__mocks__/helpers.ts @@ -13,9 +13,9 @@ export function makeMockProtoRoot() { encode: jest.fn().mockReturnValue(encode), }, SessionCommand: { create: jest.fn(args => ({ ...args })) }, - RoomCommand: { create: jest.fn(args => ({ ...args })) }, + RoomCommand: { create: jest.fn(args => ({ ...args })) }, ModeratorCommand: { create: jest.fn(args => ({ ...args })) }, - AdminCommand: { create: jest.fn(args => ({ ...args })) }, + AdminCommand: { create: jest.fn(args => ({ ...args })) }, ServerMessage: { decode: jest.fn(), MessageType: { diff --git a/webclient/src/websocket/commands/room/roomCommands.spec.ts b/webclient/src/websocket/commands/room/roomCommands.spec.ts index 652a5d792..c2842bd19 100644 --- a/webclient/src/websocket/commands/room/roomCommands.spec.ts +++ b/webclient/src/websocket/commands/room/roomCommands.spec.ts @@ -18,7 +18,8 @@ import { RoomPersistence } from '../../persistence'; const { getLastSendOpts, invokeOnSuccess } = makeCallbackHelpers( BackendService.sendRoomCommand as jest.Mock, - 3 // sendRoomCommand(roomId, commandName, params, options) — options at index 3 + // sendRoomCommand(roomId, commandName, params, options) — options at index 3 + 3 ); beforeEach(() => jest.clearAllMocks()); diff --git a/webclient/src/websocket/commands/session/sessionCommands-complex.spec.ts b/webclient/src/websocket/commands/session/sessionCommands-complex.spec.ts index c6c11c41b..edcbf6983 100644 --- a/webclient/src/websocket/commands/session/sessionCommands-complex.spec.ts +++ b/webclient/src/websocket/commands/session/sessionCommands-complex.spec.ts @@ -360,7 +360,9 @@ describe('forgotPasswordChallenge', () => { it('sends Command_ForgotPasswordChallenge', () => { forgotPasswordChallenge({ userName: 'alice', email: 'a@b.com' } as any); - expect(BackendService.sendSessionCommand).toHaveBeenCalledWith('Command_ForgotPasswordChallenge', expect.any(Object), expect.any(Object)); + expect(BackendService.sendSessionCommand).toHaveBeenCalledWith( + 'Command_ForgotPasswordChallenge', expect.any(Object), expect.any(Object) + ); }); it('onSuccess calls resetPassword and disconnect', () => { diff --git a/webclient/src/websocket/commands/session/sessionCommands-simple.spec.ts b/webclient/src/websocket/commands/session/sessionCommands-simple.spec.ts index 1bd86f568..f6af910db 100644 --- a/webclient/src/websocket/commands/session/sessionCommands-simple.spec.ts +++ b/webclient/src/websocket/commands/session/sessionCommands-simple.spec.ts @@ -170,7 +170,9 @@ describe('deckNewDir', () => { it('sends Command_DeckNewDir', () => { deckNewDir('/path', 'dir'); - expect(BackendService.sendSessionCommand).toHaveBeenCalledWith('Command_DeckNewDir', { path: '/path', dirName: 'dir' }, expect.any(Object)); + expect(BackendService.sendSessionCommand).toHaveBeenCalledWith( + 'Command_DeckNewDir', { path: '/path', dirName: 'dir' }, expect.any(Object) + ); }); it('calls createServerDeckDir on success', () => { @@ -295,7 +297,9 @@ describe('message', () => { it('sends Command_Message', () => { message('bob', 'hi'); - expect(BackendService.sendSessionCommand).toHaveBeenCalledWith('Command_Message', { userName: 'bob', message: 'hi' }, expect.any(Object)); + expect(BackendService.sendSessionCommand).toHaveBeenCalledWith( + 'Command_Message', { userName: 'bob', message: 'hi' }, expect.any(Object) + ); }); it('calls directMessageSent on success', () => { @@ -363,7 +367,9 @@ describe('replayModifyMatch', () => { it('sends Command_ReplayModifyMatch', () => { replayModifyMatch(7, true); - expect(BackendService.sendSessionCommand).toHaveBeenCalledWith('Command_ReplayModifyMatch', { gameId: 7, doNotHide: true }, expect.any(Object)); + expect(BackendService.sendSessionCommand).toHaveBeenCalledWith( + 'Command_ReplayModifyMatch', { gameId: 7, doNotHide: true }, expect.any(Object) + ); }); it('calls replayModifyMatch on success', () => { @@ -379,12 +385,16 @@ describe('addToList / addToBuddyList / addToIgnoreList', () => { it('addToBuddyList sends Command_AddToList with list=buddy', () => { addToBuddyList('alice'); - expect(BackendService.sendSessionCommand).toHaveBeenCalledWith('Command_AddToList', { list: 'buddy', userName: 'alice' }, expect.any(Object)); + expect(BackendService.sendSessionCommand).toHaveBeenCalledWith( + 'Command_AddToList', { list: 'buddy', userName: 'alice' }, expect.any(Object) + ); }); it('addToIgnoreList sends Command_AddToList with list=ignore', () => { addToIgnoreList('bob'); - expect(BackendService.sendSessionCommand).toHaveBeenCalledWith('Command_AddToList', { list: 'ignore', userName: 'bob' }, expect.any(Object)); + expect(BackendService.sendSessionCommand).toHaveBeenCalledWith( + 'Command_AddToList', { list: 'ignore', userName: 'bob' }, expect.any(Object) + ); }); it('onSuccess calls SessionPersistence.addToList', () => { @@ -400,12 +410,16 @@ describe('removeFromList / removeFromBuddyList / removeFromIgnoreList', () => { it('removeFromBuddyList sends Command_RemoveFromList with list=buddy', () => { removeFromBuddyList('alice'); - expect(BackendService.sendSessionCommand).toHaveBeenCalledWith('Command_RemoveFromList', { list: 'buddy', userName: 'alice' }, expect.any(Object)); + expect(BackendService.sendSessionCommand).toHaveBeenCalledWith( + 'Command_RemoveFromList', { list: 'buddy', userName: 'alice' }, expect.any(Object) + ); }); it('removeFromIgnoreList sends Command_RemoveFromList with list=ignore', () => { removeFromIgnoreList('bob'); - expect(BackendService.sendSessionCommand).toHaveBeenCalledWith('Command_RemoveFromList', { list: 'ignore', userName: 'bob' }, expect.any(Object)); + expect(BackendService.sendSessionCommand).toHaveBeenCalledWith( + 'Command_RemoveFromList', { list: 'ignore', userName: 'bob' }, expect.any(Object) + ); }); it('onSuccess calls SessionPersistence.removeFromList', () => { diff --git a/webclient/src/websocket/services/BackendService.spec.ts b/webclient/src/websocket/services/BackendService.spec.ts index e203a3dd6..bdc92c2a1 100644 --- a/webclient/src/websocket/services/BackendService.spec.ts +++ b/webclient/src/websocket/services/BackendService.spec.ts @@ -34,11 +34,11 @@ function captureCallback(sendFn: jest.Mock) { describe('BackendService', () => { describe('send commands', () => { - it.each<[string, () => void]>([ + it.each([ ['sendSessionCommand', () => BackendService.sendSessionCommand('Command_Test', { x: 1 }, {})], - ['sendRoomCommand', () => BackendService.sendRoomCommand(5, 'Command_Room', { y: 2 }, {})], + ['sendRoomCommand', () => BackendService.sendRoomCommand(5, 'Command_Room', { y: 2 }, {})], ['sendModeratorCommand', () => BackendService.sendModeratorCommand('Command_Mod', { z: 3 }, {})], - ['sendAdminCommand', () => BackendService.sendAdminCommand('Command_Admin', {}, {})], + ['sendAdminCommand', () => BackendService.sendAdminCommand('Command_Admin', {}, {})], ])('%s creates the command and delegates to protobuf', (methodName, invoke) => { invoke(); expect((webClient.protobuf as any)[methodName]).toHaveBeenCalled(); diff --git a/webclient/src/websocket/services/ProtoController.spec.ts b/webclient/src/websocket/services/ProtoController.spec.ts index 32a15a46f..b2460d8e4 100644 --- a/webclient/src/websocket/services/ProtoController.spec.ts +++ b/webclient/src/websocket/services/ProtoController.spec.ts @@ -23,7 +23,7 @@ describe('ProtoController', () => { it('calls initialized when callback succeeds', () => { const loadSpy = jest.spyOn(protobuf.Root.prototype, 'load').mockImplementation( - (_files: any, _opts: any, cb: any) => cb(null) + ((_files: any, _opts: any, cb: any) => cb(null)) as any ); ProtoController.load(); expect(SessionPersistence.initialized).toHaveBeenCalled(); @@ -32,7 +32,7 @@ describe('ProtoController', () => { it('throws when callback receives an error', () => { const loadSpy = jest.spyOn(protobuf.Root.prototype, 'load').mockImplementation( - (_files: any, _opts: any, cb: any) => cb(new Error('load failed')) + ((_files: any, _opts: any, cb: any) => cb(new Error('load failed'))) as any ); expect(() => ProtoController.load()).toThrow('load failed'); loadSpy.mockRestore(); diff --git a/webclient/src/websocket/services/WebSocketService.spec.ts b/webclient/src/websocket/services/WebSocketService.spec.ts index 275a88a66..828b60213 100644 --- a/webclient/src/websocket/services/WebSocketService.spec.ts +++ b/webclient/src/websocket/services/WebSocketService.spec.ts @@ -131,7 +131,7 @@ describe('WebSocketService', () => { const startSpy = jest.spyOn((service as any).keepAliveService, 'startPingLoop'); service.connect({ host: 'h', port: 1 } as any, 'ws'); mockInstance.onopen(); - const pingCb = startSpy.mock.calls[0][1]; + const pingCb = startSpy.mock.calls[0][1] as (done: Function) => void; const done = jest.fn(); pingCb(done); expect(mockWebClient.keepAlive).toHaveBeenCalledWith(done); @@ -212,7 +212,8 @@ describe('WebSocketService', () => { it('returns false when readyState does not match', () => { const service = createConnectedService(); - mockInstance.readyState = 3; // CLOSED + // CLOSED + mockInstance.readyState = 3; expect(service.checkReadyState(WebSocket.OPEN)).toBe(false); });