@lynxwall/cucumber-tsflow 5.0.4 → 5.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -51
- package/lib/behave.js +5 -15
- package/lib/cli/argv-parser.js +97 -107
- package/lib/cli/index.js +81 -96
- package/lib/cli/load-configuration.js +78 -89
- package/lib/cli/run.js +37 -47
- package/lib/cucumber/binding-decorator.js +164 -159
- package/lib/cucumber/binding-registry.js +198 -208
- package/lib/cucumber/hook-decorators.js +99 -109
- package/lib/cucumber/managed-scenario-context.js +71 -81
- package/lib/cucumber/message-collector.js +115 -125
- package/lib/cucumber/step-definition-decorators.js +86 -96
- package/lib/cucumber/utils.js +73 -83
- package/lib/esnode.js +3 -4
- package/lib/esvue.js +35 -46
- package/lib/formatters/behave-json-formatter.js +47 -58
- package/lib/formatters/tsflow-snippet-syntax.js +89 -99
- package/lib/gherkin/configuration.js +26 -36
- package/lib/gherkin/gherkin-feature.js +285 -295
- package/lib/gherkin/gherkin-manager.js +93 -103
- package/lib/gherkin/models.js +2 -12
- package/lib/index.js +9 -19
- package/lib/snippet.js +5 -15
- package/lib/transpilers/esbuild-transpiler.js +19 -29
- package/lib/transpilers/esbuild.js +51 -62
- package/lib/transpilers/vue-sfc/compiler.js +20 -30
- package/lib/transpilers/vue-sfc/index.d.ts +0 -2
- package/lib/transpilers/vue-sfc/index.js +44 -61
- package/lib/transpilers/vue-sfc/main.js +223 -235
- package/lib/transpilers/vue-sfc/script.js +40 -51
- package/lib/transpilers/vue-sfc/template.js +94 -105
- package/lib/transpilers/vue-sfc/types.js +2 -12
- package/lib/transpilers/vue-sfc/utils/descriptorCache.d.ts +1 -1
- package/lib/transpilers/vue-sfc/utils/descriptorCache.js +52 -62
- package/lib/transpilers/vue-sfc/utils/error.js +22 -32
- package/lib/transpilers/vue-sfc/utils/query.js +32 -42
- package/lib/tsnode.js +3 -4
- package/lib/tsvue.js +34 -45
- package/lib/types/scenario-context.js +4 -14
- package/lib/types/scenario-info.js +18 -28
- package/lib/types/step-binding-flags.js +57 -67
- package/lib/types/step-binding.js +4 -14
- package/lib/types/types.js +2 -12
- package/lib/utils/helpers.js +17 -27
- package/lib/utils/logger.js +7 -17
- package/lib/utils/our-callsite.d.ts +1 -0
- package/lib/utils/our-callsite.js +43 -50
- package/lib/version.d.ts +1 -1
- package/lib/version.js +6 -16
- package/package.json +12 -12
package/lib/cli/index.js
CHANGED
|
@@ -1,105 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
4
|
};
|
|
4
|
-
(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const messages_1 = require("@cucumber/messages");
|
|
7
|
+
const index_1 = require("@cucumber/cucumber/lib/configuration/index");
|
|
8
|
+
const index_2 = require("@cucumber/cucumber/lib/api/index");
|
|
9
|
+
const load_configuration_1 = require("./load-configuration");
|
|
10
|
+
const i18n_1 = require("@cucumber/cucumber/lib/cli/i18n");
|
|
11
|
+
const install_validator_1 = require("@cucumber/cucumber/lib/cli/install_validator");
|
|
12
|
+
const paths_1 = require("@cucumber/cucumber/lib/api/paths");
|
|
13
|
+
const environment_1 = require("@cucumber/cucumber/lib/api/environment");
|
|
14
|
+
const support_1 = require("@cucumber/cucumber/lib/api/support");
|
|
15
|
+
const binding_registry_1 = require("../cucumber/binding-registry");
|
|
16
|
+
const argv_parser_1 = __importDefault(require("./argv-parser"));
|
|
17
|
+
const message_collector_1 = __importDefault(require("../cucumber/message-collector"));
|
|
18
|
+
const console_1 = require("console");
|
|
19
|
+
class Cli {
|
|
20
|
+
constructor({ argv, cwd, stdout, stderr, env }) {
|
|
21
|
+
this.argv = argv;
|
|
22
|
+
this.cwd = cwd;
|
|
23
|
+
this.stdout = stdout;
|
|
24
|
+
this.stderr = stderr;
|
|
25
|
+
this.env = env;
|
|
8
26
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const load_configuration_1 = require("./load-configuration");
|
|
19
|
-
const i18n_1 = require("@cucumber/cucumber/lib/cli/i18n");
|
|
20
|
-
const install_validator_1 = require("@cucumber/cucumber/lib/cli/install_validator");
|
|
21
|
-
const paths_1 = require("@cucumber/cucumber/lib/api/paths");
|
|
22
|
-
const environment_1 = require("@cucumber/cucumber/lib/api/environment");
|
|
23
|
-
const support_1 = require("@cucumber/cucumber/lib/api/support");
|
|
24
|
-
const binding_registry_1 = require("../cucumber/binding-registry");
|
|
25
|
-
const argv_parser_1 = __importDefault(require("./argv-parser"));
|
|
26
|
-
const cucumber_expressions_1 = require("@cucumber/cucumber-expressions");
|
|
27
|
-
const message_collector_1 = __importDefault(require("../cucumber/message-collector"));
|
|
28
|
-
const console_1 = require("console");
|
|
29
|
-
class Cli {
|
|
30
|
-
constructor({ argv, cwd, stdout, stderr, env }) {
|
|
31
|
-
this.argv = argv;
|
|
32
|
-
this.cwd = cwd;
|
|
33
|
-
this.stdout = stdout;
|
|
34
|
-
this.stderr = stderr;
|
|
35
|
-
this.env = env;
|
|
36
|
-
}
|
|
37
|
-
async run() {
|
|
38
|
-
await (0, install_validator_1.validateInstall)(this.cwd);
|
|
39
|
-
const { options, configuration: argvConfiguration } = argv_parser_1.default.parse(this.argv);
|
|
40
|
-
if (options.i18nLanguages) {
|
|
41
|
-
this.stdout.write((0, i18n_1.getLanguages)());
|
|
42
|
-
return {
|
|
43
|
-
shouldAdvertisePublish: false,
|
|
44
|
-
shouldExitImmediately: true,
|
|
45
|
-
success: true
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
if (options.i18nKeywords) {
|
|
49
|
-
this.stdout.write((0, i18n_1.getKeywords)(options.i18nKeywords));
|
|
50
|
-
return {
|
|
51
|
-
shouldAdvertisePublish: false,
|
|
52
|
-
shouldExitImmediately: true,
|
|
53
|
-
success: true
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
const environment = {
|
|
57
|
-
cwd: this.cwd,
|
|
58
|
-
stdout: this.stdout,
|
|
59
|
-
stderr: this.stderr,
|
|
60
|
-
env: this.env
|
|
27
|
+
async run() {
|
|
28
|
+
await (0, install_validator_1.validateInstall)(this.cwd);
|
|
29
|
+
const { options, configuration: argvConfiguration } = argv_parser_1.default.parse(this.argv);
|
|
30
|
+
if (options.i18nLanguages) {
|
|
31
|
+
this.stdout.write((0, i18n_1.getLanguages)());
|
|
32
|
+
return {
|
|
33
|
+
shouldAdvertisePublish: false,
|
|
34
|
+
shouldExitImmediately: true,
|
|
35
|
+
success: true
|
|
61
36
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
file: options.config,
|
|
66
|
-
profiles: options.profile,
|
|
67
|
-
provided: argvConfiguration
|
|
68
|
-
}, environment);
|
|
69
|
-
// get run options
|
|
70
|
-
const { cwd } = (0, environment_1.mergeEnvironment)(environment);
|
|
71
|
-
const newId = messages_1.IdGenerator.uuid();
|
|
72
|
-
const runOptions = runConfiguration;
|
|
73
|
-
const supportCoordinates = 'World' in runOptions.support ? runOptions.support.originalCoordinates : runOptions.support;
|
|
74
|
-
const { requirePaths, importPaths } = await (0, paths_1.resolvePaths)(cwd, runOptions.sources, supportCoordinates);
|
|
75
|
-
// Load the step and hook definitions
|
|
76
|
-
const supportCodeLibrary = 'World' in runOptions.support
|
|
77
|
-
? runOptions.support
|
|
78
|
-
: await (0, support_1.getSupportCodeLibrary)({
|
|
79
|
-
cwd,
|
|
80
|
-
newId,
|
|
81
|
-
requirePaths,
|
|
82
|
-
importPaths,
|
|
83
|
-
requireModules: supportCoordinates.requireModules
|
|
84
|
-
});
|
|
85
|
-
// Set support to the updated step and hook definitions
|
|
86
|
-
// in the supportCodeLibrary
|
|
87
|
-
runOptions.support = binding_registry_1.BindingRegistry.instance.updateSupportCodeLibrary(supportCodeLibrary);
|
|
88
|
-
// define a custom boolean type this has to be done
|
|
89
|
-
// after all of the definitions have been loaded
|
|
90
|
-
const boolParam = new cucumber_expressions_1.ParameterType('boolean', /true|false/, null, s => (s === 'true' ? true : false), true, false);
|
|
91
|
-
supportCodeLibrary.parameterTypeRegistry.defineParameterType(boolParam);
|
|
92
|
-
// now we can run cucumber
|
|
93
|
-
const { success } = await (0, index_2.runCucumber)(runOptions, environment, message_collector_1.default.parseEnvelope.bind(message_collector_1.default));
|
|
37
|
+
}
|
|
38
|
+
if (options.i18nKeywords) {
|
|
39
|
+
this.stdout.write((0, i18n_1.getKeywords)(options.i18nKeywords));
|
|
94
40
|
return {
|
|
95
|
-
shouldAdvertisePublish:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
shouldExitImmediately: configuration.forceExit,
|
|
99
|
-
success
|
|
41
|
+
shouldAdvertisePublish: false,
|
|
42
|
+
shouldExitImmediately: true,
|
|
43
|
+
success: true
|
|
100
44
|
};
|
|
101
45
|
}
|
|
46
|
+
const environment = {
|
|
47
|
+
cwd: this.cwd,
|
|
48
|
+
stdout: this.stdout,
|
|
49
|
+
stderr: this.stderr,
|
|
50
|
+
env: this.env
|
|
51
|
+
};
|
|
52
|
+
const logger = new console_1.Console(environment.stdout, environment.stderr);
|
|
53
|
+
logger.info('Loading configuration and step definitions...');
|
|
54
|
+
const { useConfiguration: configuration, runConfiguration } = await (0, load_configuration_1.loadConfiguration)({
|
|
55
|
+
file: options.config,
|
|
56
|
+
profiles: options.profile,
|
|
57
|
+
provided: argvConfiguration
|
|
58
|
+
}, environment);
|
|
59
|
+
// get run options
|
|
60
|
+
const { cwd } = (0, environment_1.mergeEnvironment)(environment);
|
|
61
|
+
const newId = messages_1.IdGenerator.uuid();
|
|
62
|
+
const runOptions = runConfiguration;
|
|
63
|
+
const supportCoordinates = 'World' in runOptions.support ? runOptions.support.originalCoordinates : runOptions.support;
|
|
64
|
+
const { requirePaths, importPaths } = await (0, paths_1.resolvePaths)(cwd, runOptions.sources, supportCoordinates);
|
|
65
|
+
// Load the step and hook definitions
|
|
66
|
+
const supportCodeLibrary = 'World' in runOptions.support
|
|
67
|
+
? runOptions.support
|
|
68
|
+
: await (0, support_1.getSupportCodeLibrary)({
|
|
69
|
+
cwd,
|
|
70
|
+
newId,
|
|
71
|
+
requirePaths,
|
|
72
|
+
importPaths,
|
|
73
|
+
requireModules: supportCoordinates.requireModules
|
|
74
|
+
});
|
|
75
|
+
// Set support to the updated step and hook definitions
|
|
76
|
+
// in the supportCodeLibrary
|
|
77
|
+
runOptions.support = binding_registry_1.BindingRegistry.instance.updateSupportCodeLibrary(supportCodeLibrary);
|
|
78
|
+
// now we can run cucumber
|
|
79
|
+
const { success } = await (0, index_2.runCucumber)(runOptions, environment, message_collector_1.default.parseEnvelope.bind(message_collector_1.default));
|
|
80
|
+
return {
|
|
81
|
+
shouldAdvertisePublish: !runConfiguration.formats.publish &&
|
|
82
|
+
!configuration.publishQuiet &&
|
|
83
|
+
!(0, index_1.isTruthyString)(this.env.CUCUMBER_PUBLISH_QUIET),
|
|
84
|
+
shouldExitImmediately: configuration.forceExit,
|
|
85
|
+
success
|
|
86
|
+
};
|
|
102
87
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
}
|
|
89
|
+
exports.default = Cli;
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQWlEO0FBQ2pELHNFQUE0RTtBQUU1RSw0REFBNEU7QUFDNUUsNkRBQXlEO0FBQ3pELDBEQUE0RTtBQUM1RSxvRkFBK0U7QUFDL0UsNERBQWdFO0FBQ2hFLHdFQUEwRTtBQUMxRSxnRUFBMkU7QUFDM0UsbUVBQStEO0FBQy9ELGdFQUF1QztBQUN2QyxzRkFBNkQ7QUFDN0QscUNBQWtDO0FBUWxDLE1BQXFCLEdBQUc7SUFPdkIsWUFBWSxFQUNYLElBQUksRUFDSixHQUFHLEVBQ0gsTUFBTSxFQUNOLE1BQU0sRUFDTixHQUFHLEVBT0g7UUFDQSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRztRQUNSLE1BQU0sSUFBQSxtQ0FBZSxFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLHFCQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRixJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDekIsSUFBSSxDQUFDLE1BQWMsQ0FBQyxLQUFLLENBQUMsSUFBQSxtQkFBWSxHQUFFLENBQUMsQ0FBQztZQUMzQyxPQUFPO2dCQUNOLHNCQUFzQixFQUFFLEtBQUs7Z0JBQzdCLHFCQUFxQixFQUFFLElBQUk7Z0JBQzNCLE9BQU8sRUFBRSxJQUFJO2FBQ2Is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
|
|
@@ -1,98 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
4
|
};
|
|
4
|
-
(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loadConfiguration = void 0;
|
|
7
|
+
const console_1 = require("console");
|
|
8
|
+
const locate_file_1 = require("@cucumber/cucumber/lib/configuration/locate_file");
|
|
9
|
+
const index_1 = require("@cucumber/cucumber/lib/configuration/index");
|
|
10
|
+
const validate_configuration_1 = require("@cucumber/cucumber/lib/configuration/validate_configuration");
|
|
11
|
+
const convert_configuration_1 = require("@cucumber/cucumber/lib/api/convert_configuration");
|
|
12
|
+
const environment_1 = require("@cucumber/cucumber/lib/api/environment");
|
|
13
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
14
|
+
const helpers_1 = require("../utils/helpers");
|
|
15
|
+
const gherkin_manager_1 = __importDefault(require("../gherkin/gherkin-manager"));
|
|
16
|
+
/**
|
|
17
|
+
* Load user-authored configuration to be used in a test run.
|
|
18
|
+
*
|
|
19
|
+
* @public
|
|
20
|
+
* @param options - Coordinates required to find configuration.
|
|
21
|
+
* @param environment - Project environment.
|
|
22
|
+
*/
|
|
23
|
+
const loadConfiguration = async (options = {}, environment = {}) => {
|
|
24
|
+
const { cwd, env } = (0, environment_1.mergeEnvironment)(environment);
|
|
25
|
+
const configFile = options.file ?? (0, locate_file_1.locateFile)(cwd);
|
|
26
|
+
const profileConfiguration = configFile ? await (0, index_1.fromFile)(cwd, configFile, options.profiles) : {};
|
|
27
|
+
const logger = new console_1.Console(environment.stdout, environment.stderr);
|
|
28
|
+
// if a feature was passed in on command line it's added
|
|
29
|
+
// to the provided configuration as paths. We need to clear
|
|
30
|
+
// any paths from configuration so that only the feature passed
|
|
31
|
+
// in is executed.
|
|
32
|
+
if (options.provided?.paths && options.provided.paths?.length > 0) {
|
|
33
|
+
profileConfiguration.paths = [];
|
|
8
34
|
}
|
|
9
|
-
|
|
10
|
-
|
|
35
|
+
const original = (0, index_1.mergeConfigurations)(index_1.DEFAULT_CONFIGURATION, profileConfiguration, options.provided);
|
|
36
|
+
switch (original.transpiler) {
|
|
37
|
+
case 'esvue':
|
|
38
|
+
original.requireModule.push('@lynxwall/cucumber-tsflow/lib/esvue');
|
|
39
|
+
break;
|
|
40
|
+
case 'tsvue':
|
|
41
|
+
original.requireModule.push('@lynxwall/cucumber-tsflow/lib/tsvue');
|
|
42
|
+
break;
|
|
43
|
+
case 'tsnode':
|
|
44
|
+
original.requireModule.push('@lynxwall/cucumber-tsflow/lib/tsnode');
|
|
45
|
+
break;
|
|
46
|
+
default:
|
|
47
|
+
// defaulting to esbuild
|
|
48
|
+
original.requireModule.push('@lynxwall/cucumber-tsflow/lib/esnode');
|
|
49
|
+
break;
|
|
11
50
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
* @param options - Coordinates required to find configuration.
|
|
30
|
-
* @param environment - Project environment.
|
|
31
|
-
*/
|
|
32
|
-
const loadConfiguration = async (options = {}, environment = {}) => {
|
|
33
|
-
var _a, _b, _c;
|
|
34
|
-
const { cwd, env } = (0, environment_1.mergeEnvironment)(environment);
|
|
35
|
-
const configFile = (_a = options.file) !== null && _a !== void 0 ? _a : (0, locate_file_1.locateFile)(cwd);
|
|
36
|
-
const profileConfiguration = configFile ? await (0, index_1.fromFile)(cwd, configFile, options.profiles) : {};
|
|
37
|
-
const logger = new console_1.Console(environment.stdout, environment.stderr);
|
|
38
|
-
// if a feature was passed in on command line it's added
|
|
39
|
-
// to the provided configuration as paths. We need to clear
|
|
40
|
-
// any paths from configuration so that only the feature passed
|
|
41
|
-
// in is executed.
|
|
42
|
-
if (((_b = options.provided) === null || _b === void 0 ? void 0 : _b.paths) && ((_c = options.provided.paths) === null || _c === void 0 ? void 0 : _c.length) > 0) {
|
|
43
|
-
profileConfiguration.paths = [];
|
|
44
|
-
}
|
|
45
|
-
const original = (0, index_1.mergeConfigurations)(index_1.DEFAULT_CONFIGURATION, profileConfiguration, options.provided);
|
|
46
|
-
switch (original.transpiler) {
|
|
47
|
-
case 'esvue':
|
|
48
|
-
original.requireModule.push('@lynxwall/cucumber-tsflow/lib/esvue');
|
|
49
|
-
break;
|
|
50
|
-
case 'tsvue':
|
|
51
|
-
original.requireModule.push('@lynxwall/cucumber-tsflow/lib/tsvue');
|
|
52
|
-
break;
|
|
53
|
-
case 'tsnode':
|
|
54
|
-
original.requireModule.push('@lynxwall/cucumber-tsflow/lib/tsnode');
|
|
55
|
-
break;
|
|
56
|
-
default:
|
|
57
|
-
// defaulting to esbuild
|
|
58
|
-
original.requireModule.push('@lynxwall/cucumber-tsflow/lib/esnode');
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
// set the snippet syntax
|
|
62
|
-
if (!original.formatOptions.snippetSyntax) {
|
|
63
|
-
original.formatOptions.snippetSyntax = '@lynxwall/cucumber-tsflow/lib/snippet.js';
|
|
51
|
+
// set the snippet syntax
|
|
52
|
+
if (!original.formatOptions.snippetSyntax) {
|
|
53
|
+
original.formatOptions.snippetSyntax = '@lynxwall/cucumber-tsflow/lib/snippet.js';
|
|
54
|
+
}
|
|
55
|
+
// look for behave format
|
|
56
|
+
const behaveIdx = original.format.findIndex(e => e.startsWith('behave:'));
|
|
57
|
+
if (behaveIdx >= 0) {
|
|
58
|
+
original.format[behaveIdx] = original.format[behaveIdx].replace('behave', '@lynxwall/cucumber-tsflow/lib/behave.js');
|
|
59
|
+
}
|
|
60
|
+
// check to see if a debugFile was passed in
|
|
61
|
+
if ((0, helpers_1.hasStringValue)(original.debugFile)) {
|
|
62
|
+
let featurePath = '';
|
|
63
|
+
// Initialize gherkin manager with path to feature files
|
|
64
|
+
const gherkin = new gherkin_manager_1.default(original.paths);
|
|
65
|
+
const featureInfo = gherkin.findFeatureByStepFile(original.debugFile);
|
|
66
|
+
if (featureInfo) {
|
|
67
|
+
featurePath = featureInfo.featureFile;
|
|
64
68
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
original.format[behaveIdx] = original.format[behaveIdx].replace('behave', '@lynxwall/cucumber-tsflow/lib/behave.js');
|
|
69
|
+
if ((0, helpers_1.hasStringValue)(featurePath)) {
|
|
70
|
+
original.paths = [];
|
|
71
|
+
original.paths.push(featurePath);
|
|
69
72
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const gherkin = new gherkin_manager_1.default(original.paths);
|
|
75
|
-
const featureInfo = gherkin.findFeatureByStepFile(original.debugFile);
|
|
76
|
-
if (featureInfo) {
|
|
77
|
-
featurePath = featureInfo.featureFile;
|
|
78
|
-
}
|
|
79
|
-
if ((0, helpers_1.hasStringValue)(featurePath)) {
|
|
80
|
-
original.paths = [];
|
|
81
|
-
original.paths.push(featurePath);
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
// log a message if the feature path is not found
|
|
85
|
-
logger.warn(chalk_1.default.yellow(`\nUnable to find feature for debugFile: ${original.debugFile}`));
|
|
86
|
-
logger.warn(chalk_1.default.yellow('All tests will be executed\n'));
|
|
87
|
-
}
|
|
73
|
+
else {
|
|
74
|
+
// log a message if the feature path is not found
|
|
75
|
+
logger.warn(chalk_1.default.yellow(`\nUnable to find feature for debugFile: ${original.debugFile}`));
|
|
76
|
+
logger.warn(chalk_1.default.yellow('All tests will be executed\n'));
|
|
88
77
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
78
|
+
}
|
|
79
|
+
(0, validate_configuration_1.validateConfiguration)(original);
|
|
80
|
+
const runnable = await (0, convert_configuration_1.convertConfiguration)(original, env);
|
|
81
|
+
return {
|
|
82
|
+
useConfiguration: original,
|
|
83
|
+
runConfiguration: runnable
|
|
95
84
|
};
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
};
|
|
86
|
+
exports.loadConfiguration = loadConfiguration;
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1jb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9sb2FkLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscUNBQWtDO0FBRWxDLGtGQUE4RTtBQUM5RSxzRUFLb0Q7QUFDcEQsd0dBQW9HO0FBQ3BHLDRGQUF3RjtBQUN4Rix3RUFBMEU7QUFFMUUsa0RBQTBCO0FBQzFCLDhDQUFrRDtBQUNsRCxpRkFBd0Q7QUFheEQ7Ozs7OztHQU1HO0FBQ0ksTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQ3JDLFVBQXFDLEVBQUUsRUFDdkMsY0FBK0IsRUFBRSxFQUNPLEVBQUU7SUFDMUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFBLDhCQUFnQixFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBQSx3QkFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUEsZ0JBQVEsRUFBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2pHLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQU8sQ0FBQyxXQUFXLENBQUMsTUFBYSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUxRSx3REFBd0Q7SUFDeEQsMkRBQTJEO0lBQzNELCtEQUErRDtJQUMvRCxrQkFBa0I7SUFDbEIsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2xFLG9CQUFvQixDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7S0FDaEM7SUFFRCxNQUFNLFFBQVEs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
|
package/lib/cli/run.js
CHANGED
|
@@ -1,54 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
2
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
3
4
|
};
|
|
4
|
-
(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
/* eslint-disable no-console */
|
|
7
|
+
/* This is one rare place where we're fine to use process/console directly,
|
|
8
|
+
* but other code abstracts those to remain composable and testable. */
|
|
9
|
+
const _1 = __importDefault(require("./"));
|
|
10
|
+
const verror_1 = __importDefault(require("verror"));
|
|
11
|
+
const validate_node_engine_version_1 = require("@cucumber/cucumber/lib/cli/validate_node_engine_version");
|
|
12
|
+
function logErrorMessageAndExit(message) {
|
|
13
|
+
console.error(message);
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
async function run() {
|
|
17
|
+
(0, validate_node_engine_version_1.validateNodeEngineVersion)(process.version, (error) => {
|
|
18
|
+
console.error(error);
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}, console.warn);
|
|
21
|
+
const cli = new _1.default({
|
|
22
|
+
argv: process.argv,
|
|
23
|
+
cwd: process.cwd(),
|
|
24
|
+
stdout: process.stdout,
|
|
25
|
+
stderr: process.stderr,
|
|
26
|
+
env: process.env
|
|
27
|
+
});
|
|
28
|
+
let result;
|
|
29
|
+
try {
|
|
30
|
+
result = await cli.run();
|
|
8
31
|
}
|
|
9
|
-
|
|
10
|
-
|
|
32
|
+
catch (error) {
|
|
33
|
+
logErrorMessageAndExit(verror_1.default.fullStack(error));
|
|
11
34
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/* eslint-disable no-console */
|
|
16
|
-
/* This is one rare place where we're fine to use process/console directly,
|
|
17
|
-
* but other code abstracts those to remain composable and testable. */
|
|
18
|
-
const _1 = __importDefault(require("./"));
|
|
19
|
-
const verror_1 = __importDefault(require("verror"));
|
|
20
|
-
const validate_node_engine_version_1 = require("@cucumber/cucumber/lib/cli/validate_node_engine_version");
|
|
21
|
-
function logErrorMessageAndExit(message) {
|
|
22
|
-
console.error(message);
|
|
23
|
-
process.exit(1);
|
|
35
|
+
const exitCode = result.success ? 0 : 1;
|
|
36
|
+
if (result.shouldExitImmediately) {
|
|
37
|
+
process.exit(exitCode);
|
|
24
38
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
console.error(error);
|
|
28
|
-
process.exit(1);
|
|
29
|
-
}, console.warn);
|
|
30
|
-
const cli = new _1.default({
|
|
31
|
-
argv: process.argv,
|
|
32
|
-
cwd: process.cwd(),
|
|
33
|
-
stdout: process.stdout,
|
|
34
|
-
stderr: process.stderr,
|
|
35
|
-
env: process.env
|
|
36
|
-
});
|
|
37
|
-
let result;
|
|
38
|
-
try {
|
|
39
|
-
result = await cli.run();
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
logErrorMessageAndExit(verror_1.default.fullStack(error));
|
|
43
|
-
}
|
|
44
|
-
const exitCode = result.success ? 0 : 1;
|
|
45
|
-
if (result.shouldExitImmediately) {
|
|
46
|
-
process.exit(exitCode);
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
process.exitCode = exitCode;
|
|
50
|
-
}
|
|
39
|
+
else {
|
|
40
|
+
process.exitCode = exitCode;
|
|
51
41
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
}
|
|
43
|
+
exports.default = run;
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9ydW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBK0I7QUFDL0I7dUVBQ3VFO0FBQ3ZFLDBDQUF3QztBQUN4QyxvREFBNEI7QUFDNUIsMEdBQW9HO0FBRXBHLFNBQVMsc0JBQXNCLENBQUMsT0FBZTtJQUM5QyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakIsQ0FBQztBQUVjLEtBQUssVUFBVSxHQUFHO0lBQ2hDLElBQUEsd0RBQXlCLEVBQ3hCLE9BQU8sQ0FBQyxPQUFPLEVBQ2YsQ0FBQyxLQUFVLEVBQUUsRUFBRTtRQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDLEVBQ0QsT0FBTyxDQUFDLElBQUksQ0FDWixDQUFDO0lBRUYsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFHLENBQUM7UUFDbkIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN0QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDdEIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO0tBQ2hCLENBQUMsQ0FBQztJQUVILElBQUksTUFBc0IsQ0FBQztJQUMzQixJQUFJO1FBQ0gsTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0tBQ3pCO0lBQUMsT0FBTyxLQUFVLEVBQUU7UUFDcEIsc0JBQXNCLENBQUMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUNoRDtJQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLElBQUksTUFBTSxDQUFDLHFCQUFxQixFQUFFO1FBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDdkI7U0FBTTtRQUNOLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0tBQzVCO0FBQ0YsQ0FBQztBQS9CRCxzQkErQkMifQ==
|