blob: 4fd53057175470b462ad68c87d08526960f0483f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
/**
@license
Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
const puppeteer = require('puppeteer');
const {startServer} = require('polyserve');
const path = require('path');
const fs = require('fs');
const baselineDir = `${process.cwd()}/test/integration/screenshots-baseline`;
describe('🎁 regenerate screenshots', function() {
let polyserve, browser, page;
before(async function() {
polyserve = await startServer({port:4444, root:path.join(__dirname, '../../..'), moduleResolution:'node'});
// Create the test directory if needed.
if (!fs.existsSync(baselineDir)){
fs.mkdirSync(baselineDir);
}
// And it's subdirectories.
if (!fs.existsSync(`${baselineDir}/wide`)){
fs.mkdirSync(`${baselineDir}/wide`);
}
if (!fs.existsSync(`${baselineDir}/narrow`)){
fs.mkdirSync(`${baselineDir}/narrow`);
}
});
after((done) => polyserve.close(done));
beforeEach(async function() {
browser = await puppeteer.launch();
page = await browser.newPage();
});
afterEach(() => browser.close());
it('did it', async function() {
return generateBaselineScreenshots(page);
});
});
async function generateBaselineScreenshots(page) {
const breakpoints = [
{width: 800, height: 600},
{width: 375, height: 667}];
const prefixes = ['wide', 'narrow'];
for (let i = 0; i < prefixes.length; i++) {
const prefix = prefixes[i];
console.log(prefix + '...');
page.setViewport(breakpoints[i]);
// Index.
await page.goto('http://127.0.0.1:4444/');
await page.screenshot({path: `${baselineDir}/${prefix}/index.png`});
// Views.
for (let i = 1; i <= 3; i++) {
await page.goto(`http://127.0.0.1:4444/view${i}`);
await page.screenshot({path: `${baselineDir}/${prefix}/view${i}.png`});
}
// 404.
await page.goto('http://127.0.0.1:4444/batmanNotAView');
await page.screenshot({path: `${baselineDir}/${prefix}/batmanNotAView.png`});
}
}
|