test/index.js
- import PuppeteerBrowser from '../source/index';
-
- import { equal, notEqual } from 'should';
-
- import { spy } from 'sinon';
-
- import desktopEnv from 'desktop-env';
-
- import activeWin from 'active-win';
-
- import processOf from 'find-process';
-
- import promisify from 'promisify-node';
-
- const { mkdir, writeFile, appendFile, unlink, rmdir } = promisify('fs');
-
-
- function wait(second) {
-
- return new Promise(resolve => setTimeout(resolve, second * 1000));
- }
-
- async function isActiveWindow(page, yes = true) {
-
- const assert = yes ? equal : notEqual;
-
- const window = await activeWin(), path = PuppeteerBrowser.executablePath();
-
- if ( window.owner.path )
- assert(path, window.owner.path);
- else
- assert(path.match( /([^/]+)(\.\w+)?$/ )[1], window.owner.name);
- }
-
-
- describe('Static methods', () => {
-
- const file = 'test/example/test.js'; var GUI;
-
- before(async () => {
-
- await mkdir('test/example');
-
- GUI = ('N/A' !== await desktopEnv());
- });
-
- /**
- * @test {PuppeteerBrowser.watch}
- */
- it('Watch files changing', async () => {
-
- const onChange = spy();
-
- await writeFile(file, '');
-
- PuppeteerBrowser.watch('test/example/', onChange);
-
- await wait( 1 );
-
- await appendFile(file, 'test');
-
- await wait( 1 );
-
- onChange.should.be.calledOnce();
- });
-
- /**
- * @test {PuppeteerBrowser.getBrowser}
- * @test {PuppeteerBrowser.getPage}
- */
- it('Open a background page', async () => {
-
- const page = await PuppeteerBrowser.getPage('docs/');
-
- const browser = await PuppeteerBrowser.getBrowser();
-
- const task = await processOf('pid', browser.process().pid);
-
- if (! process.env.npm_lifecycle_script.includes('--inspect'))
- task[0].cmd.should.containEql('--headless');
-
- if ( GUI ) await isActiveWindow(page, false);
-
- await browser.close();
- });
-
- /**
- * @test {PuppeteerBrowser.getPage}
- */
- it('Open a preview page', async () => {
-
- if (! GUI)
- return console.info(
- 'Can\'t test Browser window without Desktop environment'
- );
-
- const page = await PuppeteerBrowser.getPage('docs/', null, () => { });
-
- await isActiveWindow( page );
-
- await page.browser().close();
- });
-
-
- after(async () => {
-
- await unlink( file );
-
- await rmdir('test/example');
- });
- });