Makelore 2.0 initial clean snapshot
This commit is contained in:
46
tests/e2e/zoom-shortcuts.spec.ts
Normal file
46
tests/e2e/zoom-shortcuts.spec.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
import type { ElectronApplication } from '@playwright/test';
|
||||
import { closeElectronApp, expect, getStableWindow, test } from './fixtures/electron';
|
||||
|
||||
async function getZoomLevel(app: ElectronApplication): Promise<number> {
|
||||
return await app.evaluate(({ BrowserWindow }) => {
|
||||
const win = BrowserWindow.getAllWindows()[0];
|
||||
return win?.webContents.getZoomLevel() ?? 0;
|
||||
});
|
||||
}
|
||||
|
||||
async function sendZoomShortcut(app: ElectronApplication, action: 'in' | 'out'): Promise<void> {
|
||||
await app.evaluate(({ BrowserWindow }, zoomAction) => {
|
||||
const win = BrowserWindow.getAllWindows()[0];
|
||||
const contents = win?.webContents;
|
||||
if (!contents) return;
|
||||
|
||||
const input = zoomAction === 'out'
|
||||
? { key: '-', code: 'Minus', control: true, meta: false, alt: false }
|
||||
: { key: '=', code: 'Equal', control: true, meta: false, alt: false };
|
||||
|
||||
contents.emit('before-input-event', { preventDefault() {} }, input);
|
||||
}, action);
|
||||
}
|
||||
|
||||
test.describe('NianCode window zoom shortcuts', () => {
|
||||
test('can zoom back in after zooming out with keyboard shortcuts', async ({ launchElectronApp }) => {
|
||||
const app = await launchElectronApp({ skipSetup: true });
|
||||
|
||||
try {
|
||||
const page = await getStableWindow(app);
|
||||
await expect(page.getByTestId('main-layout')).toBeVisible();
|
||||
|
||||
await app.evaluate(({ BrowserWindow }) => {
|
||||
BrowserWindow.getAllWindows()[0]?.webContents.setZoomLevel(0);
|
||||
});
|
||||
|
||||
await sendZoomShortcut(app, 'out');
|
||||
await expect.poll(async () => await getZoomLevel(app)).toBe(-1);
|
||||
|
||||
await sendZoomShortcut(app, 'in');
|
||||
await expect.poll(async () => await getZoomLevel(app)).toBe(0);
|
||||
} finally {
|
||||
await closeElectronApp(app);
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user