@lynxwall/cucumber-tsflow 5.0.6 → 5.1.0

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.
Files changed (61) hide show
  1. package/README.md +10 -9
  2. package/lib/behave.js +5 -15
  3. package/lib/cli/argv-parser.js +97 -107
  4. package/lib/cli/index.js +82 -91
  5. package/lib/cli/load-configuration.js +78 -89
  6. package/lib/cli/run.js +37 -47
  7. package/lib/cucumber/binding-decorator.js +162 -173
  8. package/lib/cucumber/binding-registry.js +198 -208
  9. package/lib/cucumber/hook-decorators.js +99 -109
  10. package/lib/cucumber/managed-scenario-context.js +71 -81
  11. package/lib/cucumber/message-collector.d.ts +34 -9
  12. package/lib/cucumber/message-collector.js +225 -127
  13. package/lib/cucumber/parallel/coordinator.d.ts +77 -0
  14. package/lib/cucumber/parallel/coordinator.js +228 -0
  15. package/lib/cucumber/parallel/run-worker.d.ts +1 -0
  16. package/lib/cucumber/parallel/run-worker.js +32 -0
  17. package/lib/cucumber/parallel/worker.d.ts +31 -0
  18. package/lib/cucumber/parallel/worker.js +104 -0
  19. package/lib/cucumber/run-cucumber.d.ts +14 -0
  20. package/lib/cucumber/run-cucumber.js +118 -0
  21. package/lib/cucumber/runtime.d.ts +24 -0
  22. package/lib/cucumber/runtime.js +40 -0
  23. package/lib/cucumber/step-definition-decorators.js +86 -96
  24. package/lib/cucumber/utils.js +73 -83
  25. package/lib/esnode.js +3 -4
  26. package/lib/esvue.js +35 -46
  27. package/lib/formatters/behave-json-formatter.js +47 -58
  28. package/lib/formatters/tsflow-snippet-syntax.js +89 -99
  29. package/lib/gherkin/configuration.js +26 -36
  30. package/lib/gherkin/gherkin-feature.js +285 -295
  31. package/lib/gherkin/gherkin-manager.js +93 -103
  32. package/lib/gherkin/models.js +2 -12
  33. package/lib/index.js +9 -19
  34. package/lib/snippet.js +5 -15
  35. package/lib/transpilers/esbuild-transpiler.js +19 -29
  36. package/lib/transpilers/esbuild.js +51 -62
  37. package/lib/transpilers/vue-sfc/compiler.js +20 -30
  38. package/lib/transpilers/vue-sfc/index.d.ts +0 -2
  39. package/lib/transpilers/vue-sfc/index.js +44 -61
  40. package/lib/transpilers/vue-sfc/main.js +223 -235
  41. package/lib/transpilers/vue-sfc/script.js +40 -51
  42. package/lib/transpilers/vue-sfc/template.js +94 -105
  43. package/lib/transpilers/vue-sfc/types.js +2 -12
  44. package/lib/transpilers/vue-sfc/utils/descriptorCache.d.ts +1 -1
  45. package/lib/transpilers/vue-sfc/utils/descriptorCache.js +62 -61
  46. package/lib/transpilers/vue-sfc/utils/error.js +22 -32
  47. package/lib/transpilers/vue-sfc/utils/query.js +32 -42
  48. package/lib/tsnode.js +3 -4
  49. package/lib/tsvue.js +34 -45
  50. package/lib/types/scenario-context.js +4 -14
  51. package/lib/types/scenario-info.js +18 -28
  52. package/lib/types/step-binding-flags.js +57 -67
  53. package/lib/types/step-binding.js +4 -14
  54. package/lib/types/types.js +2 -12
  55. package/lib/utils/helpers.js +17 -27
  56. package/lib/utils/logger.js +7 -17
  57. package/lib/utils/our-callsite.d.ts +1 -0
  58. package/lib/utils/our-callsite.js +43 -50
  59. package/lib/version.d.ts +1 -1
  60. package/lib/version.js +6 -16
  61. package/package.json +17 -18
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # cucumber-tsflow
4
4
 
5
- Provides 'specflow' like bindings for CucumberJS 8.0.0+ in TypeScript 1.7+.
5
+ Provides 'specflow' like bindings for CucumberJS 8.5.0+ in TypeScript 1.7+.
6
6
 
7
7
  Supports Vue3 files in cucumber tests.
8
8
 
@@ -18,6 +18,7 @@ In addition, the following features have been added:
18
18
  - WrapperOptions in step definitions
19
19
  - BeforeStep and AfterStep Hooks
20
20
  - Boolean custom definition added to cucumber expressions
21
+ - Support for Parallel execution of tests
21
22
  - A behave-json-formatter that fixes json so it can be used with Behave Pro
22
23
  - tsflow-snippet-syntax used to format snippet examples
23
24
  - snippets use the [Cucumber Expressions](https://github.com/cucumber/cucumber-expressions#readme) Syntax for parameters
@@ -362,15 +363,15 @@ class MySteps {
362
363
  ...
363
364
  }
364
365
 
365
- @beforeStep('@addNumbers')
366
- beforeStep() {
367
- ...
368
- }
366
+ @beforeStep('@addNumbers')
367
+ public beforeStep() {
368
+ ...
369
+ }
369
370
 
370
- @afterStep('@addNumbers')
371
- afterStep() {
372
- ...
373
- }
371
+ @afterStep('@addNumbers')
372
+ public afterStep() {
373
+ ...
374
+ }
374
375
 
375
376
  @after()
376
377
  public afterAllScenarios(): void {
package/lib/behave.js CHANGED
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
3
  if (k2 === undefined) k2 = k;
3
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -21,18 +22,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
21
22
  __setModuleDefault(result, mod);
22
23
  return result;
23
24
  };
24
- (function (factory) {
25
- if (typeof module === "object" && typeof module.exports === "object") {
26
- var v = factory(require, exports);
27
- if (v !== undefined) module.exports = v;
28
- }
29
- else if (typeof define === "function" && define.amd) {
30
- define(["require", "exports", "./formatters/behave-json-formatter"], factory);
31
- }
32
- })(function (require, exports) {
33
- "use strict";
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- const behave = __importStar(require("./formatters/behave-json-formatter"));
36
- module.exports = behave;
37
- });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2JlaGF2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBQUEsMkVBQTZEO0lBRTdELE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDIn0=
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const behave = __importStar(require("./formatters/behave-json-formatter"));
27
+ module.exports = behave;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2JlaGF2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkVBQTZEO0FBRTdELE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDIn0=
@@ -1,117 +1,107 @@
1
+ "use strict";
1
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
2
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
3
4
  };
4
- (function (factory) {
5
- if (typeof module === "object" && typeof module.exports === "object") {
6
- var v = factory(require, exports);
7
- if (v !== undefined) module.exports = v;
8
- }
9
- else if (typeof define === "function" && define.amd) {
10
- define(["require", "exports", "commander", "lodash.merge", "path", "@cucumber/gherkin", "@cucumber/cucumber/lib/formatter/helpers/formatters", "../version"], factory);
11
- }
12
- })(function (require, exports) {
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const commander_1 = require("commander");
16
- const lodash_merge_1 = __importDefault(require("lodash.merge"));
17
- const path_1 = __importDefault(require("path"));
18
- const gherkin_1 = require("@cucumber/gherkin");
19
- const formatters_1 = __importDefault(require("@cucumber/cucumber/lib/formatter/helpers/formatters"));
20
- const version_1 = require("../version");
21
- const ArgvParser = {
22
- collect(val, memo = []) {
23
- if (val) {
24
- return [...memo, val];
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const commander_1 = require("commander");
7
+ const lodash_merge_1 = __importDefault(require("lodash.merge"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const gherkin_1 = require("@cucumber/gherkin");
10
+ const formatters_1 = __importDefault(require("@cucumber/cucumber/lib/formatter/helpers/formatters"));
11
+ const version_1 = require("../version");
12
+ const ArgvParser = {
13
+ collect(val, memo = []) {
14
+ if (val) {
15
+ return [...memo, val];
16
+ }
17
+ return undefined;
18
+ },
19
+ mergeJson(option) {
20
+ return function (str, memo = {}) {
21
+ let val;
22
+ try {
23
+ val = JSON.parse(str);
25
24
  }
26
- return undefined;
27
- },
28
- mergeJson(option) {
29
- return function (str, memo = {}) {
30
- let val;
31
- try {
32
- val = JSON.parse(str);
33
- }
34
- catch (error) {
35
- const e = error;
36
- throw new Error(`${option} passed invalid JSON: ${e.message}: ${str}`);
37
- }
38
- if (typeof val !== 'object' || Array.isArray(val)) {
39
- throw new Error(`${option} must be passed JSON of an object: ${str}`);
40
- }
41
- return (0, lodash_merge_1.default)(memo, val);
42
- };
43
- },
44
- mergeTags(value, memo) {
45
- return memo ? `${memo} and (${value})` : `(${value})`;
46
- },
47
- validateCountOption(value, optionName) {
48
- const numericValue = parseInt(value);
49
- if (isNaN(numericValue) || numericValue < 0) {
50
- throw new Error(`${optionName} must be a non negative integer`);
25
+ catch (error) {
26
+ const e = error;
27
+ throw new Error(`${option} passed invalid JSON: ${e.message}: ${str}`);
51
28
  }
52
- return numericValue;
53
- },
54
- validateLanguage(value) {
55
- if (!Object.keys(gherkin_1.dialects).includes(value)) {
56
- throw new Error(`Unsupported ISO 639-1: ${value}`);
29
+ if (typeof val !== 'object' || Array.isArray(val)) {
30
+ throw new Error(`${option} must be passed JSON of an object: ${str}`);
57
31
  }
58
- return value;
59
- },
60
- parse(argv) {
61
- const program = new commander_1.Command(path_1.default.basename(argv[1]));
62
- program
63
- .storeOptionsAsProperties(false)
64
- .usage('[options] [<GLOB|DIR|FILE[:LINE]>...]')
65
- .version(version_1.version, '-v, --version')
66
- .option('-b, --backtrace', 'show full backtrace for errors')
67
- .option('-c, --config <PATH>', 'specify configuration file')
68
- .option('-d, --dry-run', 'invoke formatters without executing steps')
69
- .option('--debug-file <STRING>', 'path to a file with steps for debugging')
70
- .option('--exit, --force-exit', 'force shutdown of the event loop when the test run has finished: cucumber will call process.exit')
71
- .option('--fail-fast', 'abort the run on first failure')
72
- .option('-f, --format <TYPE[:PATH]>', 'specify the output format, optionally supply PATH to redirect formatter output (repeatable). Available formats:\n' +
73
- formatters_1.default.buildFormattersDocumentationString(), ArgvParser.collect)
74
- .option('--format-options <JSON>', 'provide options for formatters (repeatable)', ArgvParser.mergeJson('--format-options'))
75
- .option('--i18n-keywords <ISO 639-1>', 'list language keywords', ArgvParser.validateLanguage)
76
- .option('--i18n-languages', 'list languages')
77
- .option('-i, --import <GLOB|DIR|FILE>', 'import files before executing features (repeatable)', ArgvParser.collect)
78
- .option('--language <ISO 639-1>', 'provide the default language for feature files')
79
- .option('--name <REGEXP>', 'only execute the scenarios with name matching the expression (repeatable)', ArgvParser.collect)
80
- .option('--order <TYPE[:SEED]>', 'run scenarios in the specified order. Type should be `defined` or `random`')
81
- .option('-p, --profile <NAME>', 'specify the profile to use (repeatable)', ArgvParser.collect, [])
82
- .option('--parallel <NUMBER_OF_WORKERS>', 'run in parallel with the given number of workers', val => ArgvParser.validateCountOption(val, '--parallel'))
83
- .option('--publish', 'Publish a report to https://reports.cucumber.io')
84
- .option('--publish-quiet', "Don't print information banner about publishing reports")
85
- .option('-r, --require <GLOB|DIR|FILE>', 'require files before executing features (repeatable)', ArgvParser.collect)
86
- .option('--require-module <NODE_MODULE>', 'require node modules before requiring files (repeatable)', ArgvParser.collect)
87
- .option('--retry <NUMBER_OF_RETRIES>', 'specify the number of times to retry failing test cases (default: 0)', val => ArgvParser.validateCountOption(val, '--retry'))
88
- .option('--retry-tag-filter <EXPRESSION>', `only retries the features or scenarios with tags matching the expression (repeatable).
32
+ return (0, lodash_merge_1.default)(memo, val);
33
+ };
34
+ },
35
+ mergeTags(value, memo) {
36
+ return memo ? `${memo} and (${value})` : `(${value})`;
37
+ },
38
+ validateCountOption(value, optionName) {
39
+ const numericValue = parseInt(value);
40
+ if (isNaN(numericValue) || numericValue < 0) {
41
+ throw new Error(`${optionName} must be a non negative integer`);
42
+ }
43
+ return numericValue;
44
+ },
45
+ validateLanguage(value) {
46
+ if (!Object.keys(gherkin_1.dialects).includes(value)) {
47
+ throw new Error(`Unsupported ISO 639-1: ${value}`);
48
+ }
49
+ return value;
50
+ },
51
+ parse(argv) {
52
+ const program = new commander_1.Command(path_1.default.basename(argv[1]));
53
+ program
54
+ .storeOptionsAsProperties(false)
55
+ .usage('[options] [<GLOB|DIR|FILE[:LINE]>...]')
56
+ .version(version_1.version, '-v, --version')
57
+ .option('-b, --backtrace', 'show full backtrace for errors')
58
+ .option('-c, --config <PATH>', 'specify configuration file')
59
+ .option('-d, --dry-run', 'invoke formatters without executing steps')
60
+ .option('--debug-file <STRING>', 'path to a file with steps for debugging')
61
+ .option('--exit, --force-exit', 'force shutdown of the event loop when the test run has finished: cucumber will call process.exit')
62
+ .option('--fail-fast', 'abort the run on first failure')
63
+ .option('-f, --format <TYPE[:PATH]>', 'specify the output format, optionally supply PATH to redirect formatter output (repeatable). Available formats:\n' +
64
+ formatters_1.default.buildFormattersDocumentationString(), ArgvParser.collect)
65
+ .option('--format-options <JSON>', 'provide options for formatters (repeatable)', ArgvParser.mergeJson('--format-options'))
66
+ .option('--i18n-keywords <ISO 639-1>', 'list language keywords', ArgvParser.validateLanguage)
67
+ .option('--i18n-languages', 'list languages')
68
+ .option('-i, --import <GLOB|DIR|FILE>', 'import files before executing features (repeatable)', ArgvParser.collect)
69
+ .option('--language <ISO 639-1>', 'provide the default language for feature files')
70
+ .option('--name <REGEXP>', 'only execute the scenarios with name matching the expression (repeatable)', ArgvParser.collect)
71
+ .option('--order <TYPE[:SEED]>', 'run scenarios in the specified order. Type should be `defined` or `random`')
72
+ .option('-p, --profile <NAME>', 'specify the profile to use (repeatable)', ArgvParser.collect, [])
73
+ .option('--parallel <NUMBER_OF_WORKERS>', 'run in parallel with the given number of workers', val => ArgvParser.validateCountOption(val, '--parallel'))
74
+ .option('--publish', 'Publish a report to https://reports.cucumber.io')
75
+ .option('--publish-quiet', "Don't print information banner about publishing reports")
76
+ .option('-r, --require <GLOB|DIR|FILE>', 'require files before executing features (repeatable)', ArgvParser.collect)
77
+ .option('--require-module <NODE_MODULE>', 'require node modules before requiring files (repeatable)', ArgvParser.collect)
78
+ .option('--retry <NUMBER_OF_RETRIES>', 'specify the number of times to retry failing test cases (default: 0)', val => ArgvParser.validateCountOption(val, '--retry'))
79
+ .option('--retry-tag-filter <EXPRESSION>', `only retries the features or scenarios with tags matching the expression (repeatable).
89
80
  This option requires '--retry' to be specified.`, ArgvParser.mergeTags)
90
- .option('--strict', 'fail if there are pending steps')
91
- .option('--no-strict', 'succeed even if there are pending steps')
92
- .option('-t, --tags <EXPRESSION>', 'only execute the features or scenarios with tags matching the expression (repeatable)', ArgvParser.mergeTags)
93
- .option('--transpiler <ESNODE|TSNODE|ESVUE|TSVUE>', `built-in transpiler to use. ESxxx transpilers use esbuild and TSxxx transpilers use typescript.\n
81
+ .option('--strict', 'fail if there are pending steps')
82
+ .option('--no-strict', 'succeed even if there are pending steps')
83
+ .option('-t, --tags <EXPRESSION>', 'only execute the features or scenarios with tags matching the expression (repeatable)', ArgvParser.mergeTags)
84
+ .option('--transpiler <ESNODE|TSNODE|ESVUE|TSVUE>', `built-in transpiler to use. ESxxx transpilers use esbuild and TSxxx transpilers use typescript.\n
94
85
  Vue versions of the transpilers add a hook for .vue transforms and initialize jsdom globally.\n
95
86
  Default: ESNODE (esbuild without Vue support)`)
96
- .option('--world-parameters <JSON>', 'provide parameters that will be passed to the world constructor (repeatable)', ArgvParser.mergeJson('--world-parameters'));
97
- program.addHelpText('afterAll', 'For more details please visit https://github.com/cucumber/cucumber-js/blob/main/docs/cli.md');
98
- program.parse(argv);
99
- const { config, i18nKeywords, i18nLanguages, profile, ...regularStuff } = program.opts();
100
- const configuration = regularStuff;
101
- if (program.args.length > 0) {
102
- configuration.paths = program.args;
103
- }
104
- return {
105
- options: {
106
- config,
107
- i18nKeywords,
108
- i18nLanguages,
109
- profile
110
- },
111
- configuration
112
- };
87
+ .option('--world-parameters <JSON>', 'provide parameters that will be passed to the world constructor (repeatable)', ArgvParser.mergeJson('--world-parameters'));
88
+ program.addHelpText('afterAll', 'For more details please visit https://github.com/cucumber/cucumber-js/blob/main/docs/cli.md');
89
+ program.parse(argv);
90
+ const { config, i18nKeywords, i18nLanguages, profile, ...regularStuff } = program.opts();
91
+ const configuration = regularStuff;
92
+ if (program.args.length > 0) {
93
+ configuration.paths = program.args;
113
94
  }
114
- };
115
- exports.default = ArgvParser;
116
- });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJndi1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2FyZ3YtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0lBQUEseUNBQW9DO0lBQ3BDLGdFQUFpQztJQUNqQyxnREFBd0I7SUFDeEIsK0NBQTZDO0lBQzdDLHFHQUE2RTtJQUM3RSx3Q0FBcUM7SUFzQnJDLE1BQU0sVUFBVSxHQUFHO1FBQ2xCLE9BQU8sQ0FBSSxHQUFNLEVBQUUsT0FBWSxFQUFFO1lBQ2hDLElBQUksR0FBRyxFQUFFO2dCQUNSLE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQzthQUN0QjtZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ2xCLENBQUM7UUFFRCxTQUFTLENBQUMsTUFBYztZQUN2QixPQUFPLFVBQVUsR0FBVyxFQUFFLE9BQWUsRUFBRTtnQkFDOUMsSUFBSSxHQUFXLENBQUM7Z0JBQ2hCLElBQUk7b0JBQ0gsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3RCO2dCQUFDLE9BQU8sS0FBSyxFQUFFO29CQUNmLE1BQU0sQ0FBQyxHQUFVLEtBQWMsQ0FBQztvQkFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLE1BQU0seUJBQXlCLENBQUMsQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztpQkFDdkU7Z0JBQ0QsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLE1BQU0sc0NBQXNDLEdBQUcsRUFBRSxDQUFDLENBQUM7aUJBQ3RFO2dCQUNELE9BQU8sSUFBQSxzQkFBSyxFQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN6QixDQUFDLENBQUM7UUFDSCxDQUFDO1FBRUQsU0FBUyxDQUFDLEtB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
95
+ return {
96
+ options: {
97
+ config,
98
+ i18nKeywords,
99
+ i18nLanguages,
100
+ profile
101
+ },
102
+ configuration
103
+ };
104
+ }
105
+ };
106
+ exports.default = ArgvParser;
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJndi1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2FyZ3YtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQW9DO0FBQ3BDLGdFQUFpQztBQUNqQyxnREFBd0I7QUFDeEIsK0NBQTZDO0FBQzdDLHFHQUE2RTtBQUM3RSx3Q0FBcUM7QUFzQnJDLE1BQU0sVUFBVSxHQUFHO0lBQ2xCLE9BQU8sQ0FBSSxHQUFNLEVBQUUsT0FBWSxFQUFFO1FBQ2hDLElBQUksR0FBRyxFQUFFO1lBQ1IsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3ZCLE9BQU8sVUFBVSxHQUFXLEVBQUUsT0FBZSxFQUFFO1lBQzlDLElBQUksR0FBVyxDQUFDO1lBQ2hCLElBQUk7Z0JBQ0gsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdEI7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZixNQUFNLENBQUMsR0FBVSxLQUFjLENBQUM7Z0JBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxNQUFNLHlCQUF5QixDQUFDLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7YUFDdkU7WUFDRCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNsRCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsTUFBTSxzQ0FBc0MsR0FBRyxFQUFFLENBQUMsQ0FBQzthQUN0RTtZQUNELE9BQU8sSUFBQSxzQkFBSyxFQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFhO1FBQ3JD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
package/lib/cli/index.js CHANGED
@@ -1,100 +1,91 @@
1
+ "use strict";
1
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
2
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
3
4
  };
4
- (function (factory) {
5
- if (typeof module === "object" && typeof module.exports === "object") {
6
- var v = factory(require, exports);
7
- if (v !== undefined) module.exports = v;
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 run_cucumber_1 = require("../cucumber/run-cucumber");
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 console_1 = require("console");
18
+ class Cli {
19
+ constructor({ argv, cwd, stdout, stderr, env }) {
20
+ this.argv = argv;
21
+ this.cwd = cwd;
22
+ this.stdout = stdout;
23
+ this.stderr = stderr;
24
+ this.env = env;
8
25
  }
9
- else if (typeof define === "function" && define.amd) {
10
- define(["require", "exports", "@cucumber/messages", "@cucumber/cucumber/lib/configuration/index", "@cucumber/cucumber/lib/api/index", "./load-configuration", "@cucumber/cucumber/lib/cli/i18n", "@cucumber/cucumber/lib/cli/install_validator", "@cucumber/cucumber/lib/api/paths", "@cucumber/cucumber/lib/api/environment", "@cucumber/cucumber/lib/api/support", "../cucumber/binding-registry", "./argv-parser", "../cucumber/message-collector", "console"], factory);
11
- }
12
- })(function (require, exports) {
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const messages_1 = require("@cucumber/messages");
16
- const index_1 = require("@cucumber/cucumber/lib/configuration/index");
17
- const index_2 = require("@cucumber/cucumber/lib/api/index");
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 message_collector_1 = __importDefault(require("../cucumber/message-collector"));
27
- const console_1 = require("console");
28
- class Cli {
29
- constructor({ argv, cwd, stdout, stderr, env }) {
30
- this.argv = argv;
31
- this.cwd = cwd;
32
- this.stdout = stdout;
33
- this.stderr = stderr;
34
- this.env = env;
35
- }
36
- async run() {
37
- await (0, install_validator_1.validateInstall)(this.cwd);
38
- const { options, configuration: argvConfiguration } = argv_parser_1.default.parse(this.argv);
39
- if (options.i18nLanguages) {
40
- this.stdout.write((0, i18n_1.getLanguages)());
41
- return {
42
- shouldAdvertisePublish: false,
43
- shouldExitImmediately: true,
44
- success: true
45
- };
46
- }
47
- if (options.i18nKeywords) {
48
- this.stdout.write((0, i18n_1.getKeywords)(options.i18nKeywords));
49
- return {
50
- shouldAdvertisePublish: false,
51
- shouldExitImmediately: true,
52
- success: true
53
- };
54
- }
55
- const environment = {
56
- cwd: this.cwd,
57
- stdout: this.stdout,
58
- stderr: this.stderr,
59
- env: this.env
26
+ async run() {
27
+ await (0, install_validator_1.validateInstall)();
28
+ const { options, configuration: argvConfiguration } = argv_parser_1.default.parse(this.argv);
29
+ if (options.i18nLanguages) {
30
+ this.stdout.write((0, i18n_1.getLanguages)());
31
+ return {
32
+ shouldAdvertisePublish: false,
33
+ shouldExitImmediately: true,
34
+ success: true
60
35
  };
61
- const logger = new console_1.Console(environment.stdout, environment.stderr);
62
- logger.info('Loading configuration and step definitions...');
63
- const { useConfiguration: configuration, runConfiguration } = await (0, load_configuration_1.loadConfiguration)({
64
- file: options.config,
65
- profiles: options.profile,
66
- provided: argvConfiguration
67
- }, environment);
68
- // get run options
69
- const { cwd } = (0, environment_1.mergeEnvironment)(environment);
70
- const newId = messages_1.IdGenerator.uuid();
71
- const runOptions = runConfiguration;
72
- const supportCoordinates = 'World' in runOptions.support ? runOptions.support.originalCoordinates : runOptions.support;
73
- const { requirePaths, importPaths } = await (0, paths_1.resolvePaths)(cwd, runOptions.sources, supportCoordinates);
74
- // Load the step and hook definitions
75
- const supportCodeLibrary = 'World' in runOptions.support
76
- ? runOptions.support
77
- : await (0, support_1.getSupportCodeLibrary)({
78
- cwd,
79
- newId,
80
- requirePaths,
81
- importPaths,
82
- requireModules: supportCoordinates.requireModules
83
- });
84
- // Set support to the updated step and hook definitions
85
- // in the supportCodeLibrary
86
- runOptions.support = binding_registry_1.BindingRegistry.instance.updateSupportCodeLibrary(supportCodeLibrary);
87
- // now we can run cucumber
88
- const { success } = await (0, index_2.runCucumber)(runOptions, environment, message_collector_1.default.parseEnvelope.bind(message_collector_1.default));
36
+ }
37
+ if (options.i18nKeywords) {
38
+ this.stdout.write((0, i18n_1.getKeywords)(options.i18nKeywords));
89
39
  return {
90
- shouldAdvertisePublish: !runConfiguration.formats.publish &&
91
- !configuration.publishQuiet &&
92
- !(0, index_1.isTruthyString)(this.env.CUCUMBER_PUBLISH_QUIET),
93
- shouldExitImmediately: configuration.forceExit,
94
- success
40
+ shouldAdvertisePublish: false,
41
+ shouldExitImmediately: true,
42
+ success: true
95
43
  };
96
44
  }
45
+ const environment = {
46
+ cwd: this.cwd,
47
+ stdout: this.stdout,
48
+ stderr: this.stderr,
49
+ env: this.env
50
+ };
51
+ const logger = new console_1.Console(environment.stdout, environment.stderr);
52
+ logger.info('Loading configuration and step definitions...');
53
+ const { useConfiguration: configuration, runConfiguration } = await (0, load_configuration_1.loadConfiguration)({
54
+ file: options.config,
55
+ profiles: options.profile,
56
+ provided: argvConfiguration
57
+ }, environment);
58
+ // get run options
59
+ const { cwd } = (0, environment_1.mergeEnvironment)(environment);
60
+ const newId = messages_1.IdGenerator.uuid();
61
+ const runOptions = runConfiguration;
62
+ const supportCoordinates = 'World' in runOptions.support ? runOptions.support.originalCoordinates : runOptions.support;
63
+ const { requirePaths, importPaths } = await (0, paths_1.resolvePaths)(cwd, runOptions.sources, supportCoordinates);
64
+ // Load the step and hook definitions
65
+ const supportCodeLibrary = 'World' in runOptions.support
66
+ ? runOptions.support
67
+ : await (0, support_1.getSupportCodeLibrary)({
68
+ cwd,
69
+ newId,
70
+ requirePaths,
71
+ importPaths,
72
+ requireModules: supportCoordinates.requireModules
73
+ });
74
+ // Set support to the updated step and hook definitions
75
+ // in the supportCodeLibrary. We also need to initialize originalCoordinates
76
+ // to support parallel execution.
77
+ runOptions.support = binding_registry_1.BindingRegistry.instance.updateSupportCodeLibrary(supportCodeLibrary);
78
+ runOptions.support = { ...runOptions.support, ...{ originalCoordinates: supportCoordinates } };
79
+ // now we can run cucumber
80
+ const { success } = await (0, run_cucumber_1.runCucumber)(runOptions, environment);
81
+ return {
82
+ shouldAdvertisePublish: !runConfiguration.formats.publish &&
83
+ !configuration.publishQuiet &&
84
+ !(0, index_1.isTruthyString)(this.env.CUCUMBER_PUBLISH_QUIET),
85
+ shouldExitImmediately: configuration.forceExit,
86
+ success
87
+ };
97
88
  }
98
- exports.default = Cli;
99
- });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0lBQUEsaURBQWlEO0lBQ2pELHNFQUE0RTtJQUU1RSw0REFBNEU7SUFDNUUsNkRBQXlEO0lBQ3pELDBEQUE0RTtJQUM1RSxvRkFBK0U7SUFDL0UsNERBQWdFO0lBQ2hFLHdFQUEwRTtJQUMxRSxnRUFBMkU7SUFDM0UsbUVBQStEO0lBQy9ELGdFQUF1QztJQUN2QyxzRkFBNkQ7SUFDN0QscUNBQWtDO0lBUWxDLE1BQXFCLEdBQUc7UUFPdkIsWUFBWSxFQUNYLElBQUksRUFDSixHQUFHLEVBQ0gsTUFBTSxFQUNOLE1BQU0sRUFDTixHQUFHLEVBT0g7WUFDQSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNqQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2hCLENBQUM7UUFFRCxLQUFLLENBQUMsR0FBRztZQUNSLE1BQU0sSUFBQSxtQ0FBZSxFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLHFCQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRixJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxNQUFjLENBQUMsS0FBSyxDQUFDLElBQUEsbUJBQVksR0FBRSxDQUFDLENBQUM7Z0JBQzNDLE9BQU87b0JBQ04sc0JBQXNCLEVBQUUsS0FBSztvQkFDN0IscUJBQXFCLEVBQUUsSUFBSTtvQkFDM0IsT0FBTyxFQUFF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
89
+ }
90
+ exports.default = Cli;
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQWlEO0FBQ2pELHNFQUE0RTtBQUc1RSwyREFBdUQ7QUFDdkQsNkRBQXlEO0FBQ3pELDBEQUE0RTtBQUM1RSxvRkFBK0U7QUFDL0UsNERBQWdFO0FBQ2hFLHdFQUEwRTtBQUMxRSxnRUFBMkU7QUFDM0UsbUVBQStEO0FBQy9ELGdFQUF1QztBQUN2QyxxQ0FBa0M7QUFRbEMsTUFBcUIsR0FBRztJQU92QixZQUFZLEVBQ1gsSUFBSSxFQUNKLEdBQUcsRUFDSCxNQUFNLEVBQ04sTUFBTSxFQUNOLEdBQUcsRUFPSDtRQUNBLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFHO1FBQ1IsTUFBTSxJQUFBLG1DQUFlLEdBQUUsQ0FBQztRQUV4QixNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLHFCQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRixJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDekIsSUFBSSxDQUFDLE1BQWMsQ0FBQyxLQUFLLENBQUMsSUFBQSxtQkFBWSxHQUFFLENBQUMsQ0FBQztZQUMzQyxPQUFPO2dCQUNOLHNCQUFzQixFQUFFLEtBQUs7Z0JBQzdCLHFCQUFxQixFQUFFLElBQUk7Z0JBQzNCLE9BQU8sRUFBRSxJQUFJO2FBQ2IsQ0FBQztTQUNGO1FBQ0QsSUFBSSxPQUFPLENBQUMsWUFB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