61 lines
2.0 KiB
JavaScript
61 lines
2.0 KiB
JavaScript
// Copyright (C) 2020-2022 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
/// <reference types="cypress" />
|
|
|
|
/* eslint-disable security/detect-non-literal-fs-filename */
|
|
|
|
const fs = require('fs');
|
|
const fg = require('fast-glob');
|
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
const { isFileExist } = require('cy-verify-downloads');
|
|
const { imageGenerator, bufferToImage } = require('./imageGenerator/addPlugin');
|
|
const { createZipArchive } = require('./createZipArchive/addPlugin');
|
|
const { compareImages } = require('./compareImages/addPlugin');
|
|
const { unpackZipArchive } = require('./unpackZipArchive/addPlugin');
|
|
|
|
module.exports = (on, config) => {
|
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
require('@cypress/code-coverage/task')(on, config);
|
|
on('task', { imageGenerator });
|
|
on('task', { createZipArchive });
|
|
on('task', { compareImages });
|
|
on('task', { unpackZipArchive });
|
|
on('task', { bufferToImage });
|
|
on('task', {
|
|
log(message) {
|
|
console.log(message);
|
|
return null;
|
|
},
|
|
});
|
|
on('task', {
|
|
listFiles(folderName) {
|
|
return fs.readdirSync(folderName);
|
|
},
|
|
});
|
|
on('task', {
|
|
async findFiles({ pattern }) {
|
|
const files = await fg(pattern, { dot: true });
|
|
return files;
|
|
},
|
|
});
|
|
on('task', { isFileExist });
|
|
// Try to resolve "Cypress failed to make a connection to the Chrome DevTools Protocol"
|
|
// https://github.com/cypress-io/cypress/issues/7450
|
|
on('before:browser:launch', (browser, launchOptions) => {
|
|
if (browser.name === 'chrome') {
|
|
if (browser.isHeadless) {
|
|
launchOptions.args.push('--disable-gpu');
|
|
}
|
|
}
|
|
return launchOptions;
|
|
});
|
|
on('after:spec', (spec, results) => {
|
|
if (results && results.stats.failures === 0 && results.video) {
|
|
fs.unlinkSync(results.video);
|
|
}
|
|
});
|
|
return config;
|
|
};
|