1- import { ipcMain } from 'electron' ;
21import { logger } from '@internxt/drive-desktop-core/build/backend' ;
32import { vi } from 'vitest' ;
4- import { getIpcHandler } from '../../../../tests/vitest/ipc.helper' ;
53import { call , calls , partialSpyOn } from '../../../../tests/vitest/utils.helper' ;
64
75const mocks = vi . hoisted ( ( ) => {
@@ -22,12 +20,19 @@ vi.mock('./service', () => ({
2220 startRemoteSync : mocks . startRemoteSync ,
2321} ) ) ;
2422
23+ type IpcMainHandleMock = {
24+ handle : { mock : { calls : Array < [ string , ( ...args : unknown [ ] ) => unknown ] > } } ;
25+ } ;
26+
2527async function loadHandlersModule ( ) {
2628 vi . resetModules ( ) ;
2729
30+ const electronModule = await import ( 'electron' ) ;
2831 const eventBusModule = await import ( '../../../apps/main/event-bus' ) ;
2932 const initialSyncReadyModule = await import ( './InitialSyncReady' ) ;
3033
34+ const ipcMain = electronModule . ipcMain as unknown as IpcMainHandleMock ;
35+
3136 const eventBusOnMock = partialSpyOn ( eventBusModule . default , 'on' , false ) ;
3237 const eventBusEmitMock = partialSpyOn ( eventBusModule . default , 'emit' ) ;
3338 const setInitialSyncStateMock = partialSpyOn ( initialSyncReadyModule , 'setInitialSyncState' ) ;
@@ -37,10 +42,15 @@ async function loadHandlersModule() {
3742 return {
3843 eventBusEmitMock,
3944 eventBusOnMock,
45+ ipcMain,
4046 setInitialSyncStateMock,
4147 } ;
4248}
4349
50+ function getIpcHandler ( ipcMain : IpcMainHandleMock , eventName : string ) {
51+ return ipcMain . handle . mock . calls . find ( ( [ name ] ) => name === eventName ) ?. [ 1 ] ;
52+ }
53+
4454function getEventBusHandler ( eventBusOnMock : ReturnType < typeof partialSpyOn > , eventName : string ) {
4555 const calls = eventBusOnMock . mock . calls as Array < [ string , ( ...args : unknown [ ] ) => unknown ] > ;
4656
@@ -57,7 +67,7 @@ describe('handlers.test', () => {
5767
5868 it ( 'should register ipc handlers and event listeners' , async ( ) => {
5969 // When
60- const { eventBusOnMock } = await loadHandlersModule ( ) ;
70+ const { eventBusOnMock, ipcMain } = await loadHandlersModule ( ) ;
6171
6272 // Then
6373 expect ( ipcMain . handle ) . toHaveBeenCalledWith ( 'START_REMOTE_SYNC' , expect . any ( Function ) ) ;
@@ -69,8 +79,8 @@ describe('handlers.test', () => {
6979
7080 it ( 'should start a sync from the ipc handler and emit remote changes synched' , async ( ) => {
7181 // Given
72- const { eventBusEmitMock } = await loadHandlersModule ( ) ;
73- const handler = getIpcHandler ( 'START_REMOTE_SYNC' ) ;
82+ const { eventBusEmitMock, ipcMain } = await loadHandlersModule ( ) ;
83+ const handler = getIpcHandler ( ipcMain , 'START_REMOTE_SYNC' ) ;
7484
7585 // When
7686 await handler ?.( ) ;
@@ -83,8 +93,8 @@ describe('handlers.test', () => {
8393 it ( 'should return the current sync status from the ipc handler' , async ( ) => {
8494 // Given
8595 mocks . remoteSyncController . getSyncStatus . mockReturnValue ( 'SYNCED' ) ;
86- await loadHandlersModule ( ) ;
87- const handler = getIpcHandler ( 'get-remote-sync-status' ) ;
96+ const { ipcMain } = await loadHandlersModule ( ) ;
97+ const handler = getIpcHandler ( ipcMain , 'get-remote-sync-status' ) ;
8898
8999 // When
90100 const result = await handler ?.( ) ;
0 commit comments