UNPKG

2.21 kBJavaScriptView Raw
1(function (factory) {
2 if (typeof module === "object" && typeof module.exports === "object") {
3 var v = factory(require, exports);
4 if (v !== undefined) module.exports = v;
5 }
6 else if (typeof define === "function" && define.amd) {
7 define(["require", "exports", "@leanup/cli/lib/common-cli"], factory);
8 }
9})(function (require, exports) {
10 "use strict";
11 Object.defineProperty(exports, "__esModule", { value: true });
12 const common_cli_1 = require("@leanup/cli/lib/common-cli");
13 module.exports = (CLI) => {
14 const fs = require('fs');
15 const path = require('path');
16 CLI.addCommand('cucumber', 'E2E-Testing (https://cucumber.io/)', [
17 { flags: '-e, --env <env>', description: 'test running environment' },
18 { flags: '--headless', description: 'run tests in the headless mode' },
19 ].concat(common_cli_1.commonOptions), (options) => {
20 let reportDir = path.resolve(process.cwd(), '.reports');
21 if (!fs.existsSync(reportDir)) {
22 fs.mkdirSync(reportDir);
23 }
24 reportDir = path.resolve(reportDir, 'cucumber');
25 if (!fs.existsSync(reportDir)) {
26 fs.mkdirSync(reportDir);
27 }
28 let spawnArgs = ['cross-env'];
29 if (options.env) {
30 spawnArgs.push(`NIGHTWATCH_ENV=${options.env}`);
31 }
32 spawnArgs = spawnArgs.concat([
33 'cucumber-js',
34 'tests/cucumber/features/**/*.feature',
35 '--require',
36 '@babel/register',
37 '--require',
38 'cucumber.conf.js',
39 '--require',
40 'tests/cucumber/step-definitions',
41 '--format',
42 'node_modules/cucumber-pretty',
43 '--format',
44 'json:.reports/cucumber/report.json',
45 ]);
46 if (options.filter) {
47 spawnArgs.push(`--filter=${options.filter}`);
48 }
49 if (options.headless) {
50 spawnArgs.push('--headless');
51 }
52 return spawnArgs;
53 });
54 };
55});
56//# sourceMappingURL=cli.js.map
\No newline at end of file