mirror of
https://github.com/quine-global/hyper.git
synced 2026-01-13 12:38:39 -09:00
58 lines
1.8 KiB
TypeScript
58 lines
1.8 KiB
TypeScript
// Native
|
|
import path from 'path';
|
|
import fs from 'fs-extra';
|
|
|
|
// Packages
|
|
import test from 'ava';
|
|
import {_electron, ElectronApplication} from 'playwright';
|
|
|
|
let app: ElectronApplication;
|
|
|
|
test.before(async () => {
|
|
let pathToBinary;
|
|
|
|
switch (process.platform) {
|
|
case 'linux':
|
|
pathToBinary = path.join(__dirname, '../dist/linux-unpacked/hyper');
|
|
break;
|
|
|
|
case 'darwin':
|
|
pathToBinary = path.join(__dirname, '../dist/mac/Hyper.app/Contents/MacOS/Hyper');
|
|
break;
|
|
|
|
case 'win32':
|
|
pathToBinary = path.join(__dirname, '../dist/win-unpacked/Hyper.exe');
|
|
break;
|
|
|
|
default:
|
|
throw new Error('Path to the built binary needs to be defined for this platform in test/index.js');
|
|
}
|
|
|
|
app = await _electron.launch({
|
|
executablePath: pathToBinary
|
|
});
|
|
await app.firstWindow();
|
|
await new Promise((resolve) => setTimeout(resolve, 5000));
|
|
});
|
|
|
|
test.after(async () => {
|
|
await app
|
|
.evaluate(async ({BrowserWindow, desktopCapturer, screen}) => {
|
|
// eslint-disable-next-line prefer-const
|
|
let {width, height, ...position} = BrowserWindow.getFocusedWindow()!.getBounds();
|
|
const {scaleFactor} = screen.getDisplayNearestPoint(position);
|
|
width *= scaleFactor;
|
|
height *= scaleFactor;
|
|
const sources = await desktopCapturer.getSources({types: ['window'], thumbnailSize: {width, height}});
|
|
return sources[0].thumbnail.toPNG().toString('base64');
|
|
})
|
|
.then((img) => Buffer.from(img || '', 'base64'))
|
|
.then(async (imageBuffer) => {
|
|
await fs.writeFile(`dist/tmp/${process.platform}_test.png`, imageBuffer);
|
|
});
|
|
await app.close();
|
|
});
|
|
|
|
test('see if dev tools are open', async (t) => {
|
|
t.false(await app.evaluate(({webContents}) => webContents.getFocusedWebContents().isDevToolsOpened()));
|
|
});
|