grafana/packages/grafana-e2e/cli.js

44 lines
1.3 KiB
JavaScript
Raw Normal View History

const execa = require('execa');
const program = require('commander');
const resolveBin = require('resolve-as-bin');
const { resolve, sep } = require('path');
const cypress = commandName => {
// Support running an unpublished dev build
const dirname = __dirname.split(sep).pop();
const projectPath = resolve(`${__dirname}${dirname === 'dist' ? '/..' : ''}`);
const cypressOptions = [commandName, '--env', `CWD=${process.cwd()}`, `--project=${projectPath}`];
const execaOptions = {
cwd: __dirname,
stdio: 'inherit',
};
return execa(resolveBin('cypress'), cypressOptions, execaOptions)
.then(() => {}) // no return value
.catch(error => {
console.error(error.message);
process.exitCode = 1;
});
};
module.exports = () => {
const configOption = '-c, --config <path>';
const configDescription = 'path to JSON file where configuration values are set; defaults to "cypress.json"';
program
.command('open')
.description('runs tests within the interactive GUI')
.option(configOption, configDescription)
.action(() => cypress('open'));
program
.command('run')
.description('runs tests from the CLI without the GUI')
.option(configOption, configDescription)
.action(() => cypress('run'));
program.parse(process.argv);
};