viz
Version:
Visual regression testing framework
58 lines (50 loc) • 1.54 kB
JavaScript
const compileTests = require('../util/compile-tests');
const clean = require('../util/clean');
const setupPuppeteer = require('../util/setup-puppeteer');
const takeScreenshots = require('../util/take-screenshots');
const getTestsByViewport = require('../util/tests-by-viewport');
const ensureDirs = require('../util/ensure-dirs');
const logger = require('../util/logger');
module.exports = async function takeBaselineScreenshots({
shouldReplaceMissingOnly,
specificSuiteNames,
skipCompile,
config,
}) {
await clean({
config,
skipCompile,
clearBaselineScreenshots: !!specificSuiteNames && !!shouldReplaceMissingOnly,
});
if (!skipCompile) {
await compileTests(config);
}
const {browsers, server, pages} = await setupPuppeteer(config);
try {
const testsByViewport = await getTestsByViewport({
pages,
shouldReplaceMissingOnly,
specificSuiteNames,
isTest: false,
config,
});
await ensureDirs({
testsByViewport,
config,
});
await takeScreenshots({
config,
testsByViewport,
pages,
isTest: false,
});
} catch (e) {
logger.error('Error interacting with browser', e);
throw e;
}
// We always want to clean up
await Promise.all([
...browsers.map((browser) => browser.close()),
new Promise((resolve) => void server.close(resolve)),
]);
};