Add spectron test for zoom functionality (#948)

This commit is contained in:
Johan Kwarnmark 2020-03-27 07:40:09 +01:00 committed by GitHub
parent 86854315b3
commit e1bf469206
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 69 additions and 0 deletions

View File

@ -26,6 +26,33 @@ class RobotActions {
robot.keyToggle('f', 'up', [ 'command', 'control' ]);
}
/**
* Zoom in via keyboard Command/Ctrl +
*/
public zoomIn(): void {
const modifier = isMac ? [ 'command' ] : [ 'control' ];
robot.keyToggle('+', 'down', modifier);
robot.keyToggle('+', 'up', modifier);
}
/**
* Zoom out via keyboard
*/
public zoomOut(): void {
const modifier = isMac ? [ 'command' ] : [ 'control' ];
robot.keyToggle('-', 'down', modifier);
robot.keyToggle('-', 'up', modifier);
}
/**
* Zoom reset via keyboard
*/
public zoomReset(): void {
const modifier = isMac ? [ 'command' ] : [ 'control' ];
robot.keyToggle('0', 'down', modifier);
robot.keyToggle('0', 'up', modifier);
}
/**
* Click the App menu
*/

42
spectron/zoom.spec.ts Normal file
View File

@ -0,0 +1,42 @@
import test from 'ava';
import { Application } from 'spectron';
import { robotActions } from './fixtures/robot-actions';
import {
getDemoFilePath, loadURL,
sleep,
startApplication,
stopApplication,
Timeouts,
} from './fixtures/spectron-setup';
let app;
test.before(async (t) => {
app = await startApplication() as Application;
t.true(app.isRunning());
});
test.after.always(async () => {
await stopApplication(app);
});
test('zoom: verify application zoom feature', async (t) => {
await loadURL(app, getDemoFilePath());
await app.client.waitUntilWindowLoaded(Timeouts.fiveSec);
robotActions.zoomIn();
t.is(await app.webContents.getZoomLevel(), 0.5);
await sleep(Timeouts.oneSec);
robotActions.zoomIn();
t.is(await app.webContents.getZoomLevel(), 1);
await sleep(Timeouts.oneSec);
robotActions.zoomOut();
t.is(await app.webContents.getZoomLevel(), 0.5);
await sleep(Timeouts.oneSec);
robotActions.zoomReset();
t.is(await app.webContents.getZoomLevel(), 0);
});