electron-mock
v0.5.0
Published
The simplest way to mock Electron
Readme
Electron Mock
A lightweight utility for easily mocking Electron in tests.
Vitest
// vitest.setup.ts
import { beforeAll, beforeEach } from 'vitest';
import {
mockElectron,
mockIpcMainHandle,
mockIpcRendererInvoke,
} from 'electron-mock/vitest';
beforeAll(() => {
mockElectron();
mockIpcMainHandle();
});
beforeEach(() => {
mockIpcRendererInvoke();
});// electronIpcMain.test.ts
import { describe, expect, it, beforeAll, afterAll } from 'vitest';
import {
GET_APP_VERSION
} from '@/electron/ipc/mainProcess/electronIPC';
import { ElectronIpcMain } from '@/electron/ipcMain/electronIpcMain';
import {
electronVitestMock,
getHandle,
resetIpcHandleMock,
} from 'electron-mock/vitest';
const mockWindow = electronVitestMock.BrowserWindow;
const mockApp = electronVitestMock.app;
const mockIpcMainInvokeEvent = electronVitestMock.IpcMainInvokeEvent;
describe('ElectronIpcMain', () => {
beforeAll(() => {
new ElectronIpcMain(mockWindow as unknown as Electron.BrowserWindow);
});
afterAll(() => {
resetIpcHandleMock();
});
it('GET_APP_VERSION', async () => {
const handler = getHandle(GET_APP_VERSION);
mockApp.getVersion.mockReturnValue('1.0.0');
const result = await handler(mockIpcMainInvokeEvent);
expect(result).toBe('1.0.0');
});
});