@dev-blinq/cucumber-js 1.0.6 → 1.0.8
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/bin/cucumber-js +0 -0
- package/bin/cucumber.js +0 -0
- package/lib/api/console_logger.d.ts +12 -12
- package/lib/api/console_logger.js +23 -23
- package/lib/api/convert_configuration.d.ts +4 -4
- package/lib/api/convert_configuration.js +64 -64
- package/lib/api/environment.d.ts +2 -2
- package/lib/api/environment.js +13 -13
- package/lib/api/formatters.d.ts +20 -20
- package/lib/api/formatters.js +60 -60
- package/lib/api/gherkin.d.ts +21 -21
- package/lib/api/gherkin.js +99 -99
- package/lib/api/index.d.ts +12 -12
- package/lib/api/index.js +27 -27
- package/lib/api/load_configuration.d.ts +9 -9
- package/lib/api/load_configuration.js +40 -40
- package/lib/api/load_sources.d.ts +9 -9
- package/lib/api/load_sources.js +52 -52
- package/lib/api/load_support.d.ts +10 -10
- package/lib/api/load_support.js +29 -29
- package/lib/api/paths.d.ts +8 -8
- package/lib/api/paths.js +101 -101
- package/lib/api/plugins.d.ts +4 -4
- package/lib/api/plugins.js +18 -18
- package/lib/api/run_cucumber.d.ts +11 -11
- package/lib/api/run_cucumber.js +114 -114
- package/lib/api/runtime.d.ts +21 -21
- package/lib/api/runtime.js +35 -35
- package/lib/api/support.d.ts +9 -9
- package/lib/api/support.js +25 -25
- package/lib/api/test_helpers.d.ts +3 -3
- package/lib/api/test_helpers.js +30 -30
- package/lib/api/types.d.ts +175 -175
- package/lib/api/types.js +2 -2
- package/lib/cli/helpers.d.ts +37 -37
- package/lib/cli/helpers.js +202 -202
- package/lib/cli/i18n.d.ts +2 -2
- package/lib/cli/i18n.js +69 -69
- package/lib/cli/index.d.ts +21 -21
- package/lib/cli/index.js +58 -58
- package/lib/cli/install_validator.d.ts +1 -1
- package/lib/cli/install_validator.js +13 -13
- package/lib/cli/run.d.ts +1 -1
- package/lib/cli/run.js +43 -43
- package/lib/cli/validate_node_engine_version.d.ts +10 -10
- package/lib/cli/validate_node_engine_version.js +23 -23
- package/lib/configuration/argv_parser.d.ts +20 -20
- package/lib/configuration/argv_parser.js +100 -100
- package/lib/configuration/check_schema.d.ts +2 -2
- package/lib/configuration/check_schema.js +59 -59
- package/lib/configuration/default_configuration.d.ts +2 -2
- package/lib/configuration/default_configuration.js +26 -26
- package/lib/configuration/from_file.d.ts +3 -3
- package/lib/configuration/from_file.js +84 -84
- package/lib/configuration/helpers.d.ts +1 -1
- package/lib/configuration/helpers.js +10 -10
- package/lib/configuration/index.d.ts +7 -7
- package/lib/configuration/index.js +28 -28
- package/lib/configuration/locate_file.d.ts +1 -1
- package/lib/configuration/locate_file.js +20 -20
- package/lib/configuration/merge_configurations.d.ts +2 -2
- package/lib/configuration/merge_configurations.js +47 -47
- package/lib/configuration/option_splitter.d.ts +3 -3
- package/lib/configuration/option_splitter.js +22 -22
- package/lib/configuration/types.d.ts +28 -28
- package/lib/configuration/types.js +2 -2
- package/lib/configuration/validate_configuration.d.ts +3 -3
- package/lib/configuration/validate_configuration.js +12 -12
- package/lib/filter_stack_trace.d.ts +3 -3
- package/lib/filter_stack_trace.js +37 -37
- package/lib/formatter/builder.d.ts +37 -37
- package/lib/formatter/builder.js +100 -100
- package/lib/formatter/bvt_formatter.d.ts +5 -0
- package/lib/formatter/bvt_formatter.js +21 -0
- package/lib/formatter/bvt_formatter.js.map +1 -0
- package/lib/formatter/feature_data_format.d.ts +14 -14
- package/lib/formatter/feature_data_format.js +80 -80
- package/lib/formatter/feature_data_format.js.map +1 -1
- package/lib/formatter/fixtures/typescript.d.ts +2 -2
- package/lib/formatter/fixtures/typescript.js +5 -5
- package/lib/formatter/get_color_fns.d.ts +15 -15
- package/lib/formatter/get_color_fns.js +55 -55
- package/lib/formatter/helpers/duration_helpers.d.ts +2 -2
- package/lib/formatter/helpers/duration_helpers.js +8 -8
- package/lib/formatter/helpers/event_data_collector.d.ts +30 -30
- package/lib/formatter/helpers/event_data_collector.js +125 -125
- package/lib/formatter/helpers/formatters.d.ts +6 -6
- package/lib/formatter/helpers/formatters.js +44 -42
- package/lib/formatter/helpers/formatters.js.map +1 -1
- package/lib/formatter/helpers/gherkin_document_parser.d.ts +5 -5
- package/lib/formatter/helpers/gherkin_document_parser.js +65 -65
- package/lib/formatter/helpers/index.d.ts +10 -10
- package/lib/formatter/helpers/index.js +51 -51
- package/lib/formatter/helpers/issue_helpers.d.ts +19 -19
- package/lib/formatter/helpers/issue_helpers.js +58 -58
- package/lib/formatter/helpers/keyword_type.d.ts +11 -11
- package/lib/formatter/helpers/keyword_type.js +31 -31
- package/lib/formatter/helpers/location_helpers.d.ts +2 -2
- package/lib/formatter/helpers/location_helpers.js +16 -16
- package/lib/formatter/helpers/pickle_parser.d.ts +17 -17
- package/lib/formatter/helpers/pickle_parser.js +27 -27
- package/lib/formatter/helpers/report_generator.d.ts +91 -0
- package/lib/formatter/helpers/report_generator.js +235 -0
- package/lib/formatter/helpers/report_generator.js.map +1 -0
- package/lib/formatter/helpers/step_argument_formatter.d.ts +2 -2
- package/lib/formatter/helpers/step_argument_formatter.js +47 -47
- package/lib/formatter/helpers/summary_helpers.d.ts +9 -9
- package/lib/formatter/helpers/summary_helpers.js +95 -95
- package/lib/formatter/helpers/test_case_attempt_formatter.d.ts +12 -12
- package/lib/formatter/helpers/test_case_attempt_formatter.js +113 -113
- package/lib/formatter/helpers/test_case_attempt_parser.d.ts +32 -32
- package/lib/formatter/helpers/test_case_attempt_parser.js +134 -134
- package/lib/formatter/helpers/usage_helpers/index.d.ts +23 -23
- package/lib/formatter/helpers/usage_helpers/index.js +110 -110
- package/lib/formatter/html_formatter.d.ts +7 -7
- package/lib/formatter/html_formatter.js +29 -29
- package/lib/formatter/index.d.ts +53 -53
- package/lib/formatter/index.js +20 -20
- package/lib/formatter/json_formatter.d.ts +78 -78
- package/lib/formatter/json_formatter.js +229 -229
- package/lib/formatter/junit_formatter.d.ts +17 -17
- package/lib/formatter/junit_formatter.js +180 -180
- package/lib/formatter/message_formatter.d.ts +5 -5
- package/lib/formatter/message_formatter.js +14 -14
- package/lib/formatter/progress_bar_formatter.d.ts +18 -18
- package/lib/formatter/progress_bar_formatter.js +98 -98
- package/lib/formatter/progress_formatter.d.ts +9 -9
- package/lib/formatter/progress_formatter.js +58 -58
- package/lib/formatter/rerun_formatter.d.ts +13 -13
- package/lib/formatter/rerun_formatter.js +79 -79
- package/lib/formatter/snippets_formatter.d.ts +6 -6
- package/lib/formatter/snippets_formatter.js +60 -60
- package/lib/formatter/step_definition_snippet_builder/index.d.ts +20 -20
- package/lib/formatter/step_definition_snippet_builder/index.js +45 -45
- package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.d.ts +7 -7
- package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js +45 -45
- package/lib/formatter/step_definition_snippet_builder/snippet_syntax.d.ts +16 -16
- package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js +10 -10
- package/lib/formatter/summary_formatter.d.ts +14 -14
- package/lib/formatter/summary_formatter.js +67 -67
- package/lib/formatter/usage_formatter.d.ts +6 -6
- package/lib/formatter/usage_formatter.js +97 -97
- package/lib/formatter/usage_json_formatter.d.ts +7 -7
- package/lib/formatter/usage_json_formatter.js +33 -33
- package/lib/index.d.ts +58 -58
- package/lib/index.js +108 -108
- package/lib/logger.d.ts +5 -5
- package/lib/logger.js +2 -2
- package/lib/models/data_table.d.ts +10 -10
- package/lib/models/data_table.js +45 -45
- package/lib/models/definition.d.ts +55 -55
- package/lib/models/definition.js +21 -21
- package/lib/models/gherkin_step_keyword.d.ts +1 -1
- package/lib/models/gherkin_step_keyword.js +2 -2
- package/lib/models/pickle_order.d.ts +1 -1
- package/lib/models/pickle_order.js +2 -2
- package/lib/models/step_definition.d.ts +11 -11
- package/lib/models/step_definition.js +36 -36
- package/lib/models/test_case_hook_definition.d.ts +10 -10
- package/lib/models/test_case_hook_definition.js +26 -26
- package/lib/models/test_run_hook_definition.d.ts +3 -3
- package/lib/models/test_run_hook_definition.js +9 -9
- package/lib/models/test_step_hook_definition.d.ts +9 -9
- package/lib/models/test_step_hook_definition.js +25 -25
- package/lib/pickle_filter.d.ts +42 -42
- package/lib/pickle_filter.js +98 -98
- package/lib/plugin/index.d.ts +2 -2
- package/lib/plugin/index.js +18 -18
- package/lib/plugin/plugin_manager.d.ts +13 -13
- package/lib/plugin/plugin_manager.js +35 -35
- package/lib/plugin/types.d.ts +14 -14
- package/lib/plugin/types.js +2 -2
- package/lib/publish/http_stream.d.ts +30 -30
- package/lib/publish/http_stream.js +111 -111
- package/lib/publish/index.d.ts +2 -2
- package/lib/publish/index.js +4 -4
- package/lib/publish/publish_plugin.d.ts +2 -2
- package/lib/publish/publish_plugin.js +47 -47
- package/lib/runtime/assemble_test_cases.d.ts +13 -13
- package/lib/runtime/assemble_test_cases.js +87 -87
- package/lib/runtime/attachment_manager/index.d.ts +33 -33
- package/lib/runtime/attachment_manager/index.js +118 -118
- package/lib/runtime/format_error.d.ts +2 -2
- package/lib/runtime/format_error.js +35 -35
- package/lib/runtime/helpers.d.ts +6 -6
- package/lib/runtime/helpers.js +100 -100
- package/lib/runtime/index.d.ts +40 -40
- package/lib/runtime/index.js +75 -75
- package/lib/runtime/parallel/command_types.d.ts +32 -32
- package/lib/runtime/parallel/command_types.js +2 -2
- package/lib/runtime/parallel/coordinator.d.ts +72 -72
- package/lib/runtime/parallel/coordinator.js +221 -221
- package/lib/runtime/parallel/run_worker.d.ts +1 -1
- package/lib/runtime/parallel/run_worker.js +28 -28
- package/lib/runtime/parallel/worker.d.ts +26 -26
- package/lib/runtime/parallel/worker.js +86 -86
- package/lib/runtime/run_test_run_hooks.d.ts +3 -3
- package/lib/runtime/run_test_run_hooks.js +27 -27
- package/lib/runtime/step_runner.d.ts +16 -16
- package/lib/runtime/step_runner.js +87 -87
- package/lib/runtime/stopwatch.d.ts +12 -12
- package/lib/runtime/stopwatch.js +33 -33
- package/lib/runtime/test_case_runner.d.ts +54 -54
- package/lib/runtime/test_case_runner.js +267 -267
- package/lib/step_arguments.d.ts +6 -6
- package/lib/step_arguments.js +18 -18
- package/lib/support_code_library_builder/build_parameter_type.d.ts +3 -3
- package/lib/support_code_library_builder/build_parameter_type.js +12 -12
- package/lib/support_code_library_builder/get_definition_line_and_uri.d.ts +3 -3
- package/lib/support_code_library_builder/get_definition_line_and_uri.js +28 -28
- package/lib/support_code_library_builder/index.d.ts +74 -74
- package/lib/support_code_library_builder/index.js +296 -296
- package/lib/support_code_library_builder/parallel_can_assign_helpers.d.ts +2 -2
- package/lib/support_code_library_builder/parallel_can_assign_helpers.js +15 -15
- package/lib/support_code_library_builder/sourced_parameter_type_registry.d.ts +7 -7
- package/lib/support_code_library_builder/sourced_parameter_type_registry.js +18 -18
- package/lib/support_code_library_builder/types.d.ts +88 -88
- package/lib/support_code_library_builder/types.js +2 -2
- package/lib/support_code_library_builder/validate_arguments.d.ts +12 -12
- package/lib/support_code_library_builder/validate_arguments.js +72 -72
- package/lib/support_code_library_builder/world.d.ts +18 -18
- package/lib/support_code_library_builder/world.js +10 -10
- package/lib/time.d.ts +18 -18
- package/lib/time.js +60 -60
- package/lib/try_require.d.ts +7 -7
- package/lib/try_require.js +22 -22
- package/lib/types/index.d.ts +4 -4
- package/lib/types/index.js +2 -2
- package/lib/uncaught_exception_manager.d.ts +7 -7
- package/lib/uncaught_exception_manager.js +11 -11
- package/lib/user_code_runner.d.ts +14 -14
- package/lib/user_code_runner.js +81 -81
- package/lib/value_checker.d.ts +3 -3
- package/lib/value_checker.js +18 -18
- package/lib/version.d.ts +1 -1
- package/lib/version.js +5 -5
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
package/lib/cli/helpers.js
CHANGED
|
@@ -1,203 +1,203 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.emitSupportCodeMessages = exports.emitMetaMessage = exports.orderPickles = exports.parseGherkinMessageStream = void 0;
|
|
30
|
-
const knuth_shuffle_seeded_1 = __importDefault(require("knuth-shuffle-seeded"));
|
|
31
|
-
const value_checker_1 = require("../value_checker");
|
|
32
|
-
const configuration_1 = require("../configuration");
|
|
33
|
-
const os_1 = __importDefault(require("os"));
|
|
34
|
-
const messages = __importStar(require("@cucumber/messages"));
|
|
35
|
-
const ci_environment_1 = __importDefault(require("@cucumber/ci-environment"));
|
|
36
|
-
const version_1 = require("../version");
|
|
37
|
-
/**
|
|
38
|
-
* Process a stream of envelopes from Gherkin and resolve to an array of filtered, ordered pickle Ids
|
|
39
|
-
*
|
|
40
|
-
* @param eventBroadcaster
|
|
41
|
-
* @param eventDataCollector
|
|
42
|
-
* @param gherkinMessageStream
|
|
43
|
-
* @param order
|
|
44
|
-
* @param pickleFilter
|
|
45
|
-
*/
|
|
46
|
-
async function parseGherkinMessageStream({ eventBroadcaster, eventDataCollector, gherkinMessageStream, order, pickleFilter, }) {
|
|
47
|
-
return await new Promise((resolve, reject) => {
|
|
48
|
-
const result = [];
|
|
49
|
-
gherkinMessageStream.on('data', (envelope) => {
|
|
50
|
-
eventBroadcaster.emit('envelope', envelope);
|
|
51
|
-
if ((0, value_checker_1.doesHaveValue)(envelope.pickle)) {
|
|
52
|
-
const pickle = envelope.pickle;
|
|
53
|
-
const pickleId = pickle.id;
|
|
54
|
-
const gherkinDocument = eventDataCollector.getGherkinDocument(pickle.uri);
|
|
55
|
-
if (pickleFilter.matches({ gherkinDocument, pickle })) {
|
|
56
|
-
result.push(pickleId);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
gherkinMessageStream.on('end', () => {
|
|
61
|
-
orderPickles(result, order, console);
|
|
62
|
-
resolve(result);
|
|
63
|
-
});
|
|
64
|
-
gherkinMessageStream.on('error', reject);
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
exports.parseGherkinMessageStream = parseGherkinMessageStream;
|
|
68
|
-
// Orders the pickleIds in place - morphs input
|
|
69
|
-
function orderPickles(pickleIds, order, logger) {
|
|
70
|
-
const [type, seed] = configuration_1.OptionSplitter.split(order);
|
|
71
|
-
switch (type) {
|
|
72
|
-
case 'defined':
|
|
73
|
-
break;
|
|
74
|
-
case 'random':
|
|
75
|
-
if (seed === '') {
|
|
76
|
-
const newSeed = Math.floor(Math.random() * 1000 * 1000).toString();
|
|
77
|
-
logger.warn(`Random order using seed: ${newSeed}`);
|
|
78
|
-
(0, knuth_shuffle_seeded_1.default)(pickleIds, newSeed);
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
(0, knuth_shuffle_seeded_1.default)(pickleIds, seed);
|
|
82
|
-
}
|
|
83
|
-
break;
|
|
84
|
-
default:
|
|
85
|
-
throw new Error('Unrecgonized order type. Should be `defined` or `random`');
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
exports.orderPickles = orderPickles;
|
|
89
|
-
async function emitMetaMessage(eventBroadcaster, env) {
|
|
90
|
-
const meta = {
|
|
91
|
-
protocolVersion: messages.version,
|
|
92
|
-
implementation: {
|
|
93
|
-
version: version_1.version,
|
|
94
|
-
name: 'cucumber-js',
|
|
95
|
-
},
|
|
96
|
-
cpu: {
|
|
97
|
-
name: os_1.default.arch(),
|
|
98
|
-
},
|
|
99
|
-
os: {
|
|
100
|
-
name: os_1.default.platform(),
|
|
101
|
-
version: os_1.default.release(),
|
|
102
|
-
},
|
|
103
|
-
runtime: {
|
|
104
|
-
name: 'node.js',
|
|
105
|
-
version: process.versions.node,
|
|
106
|
-
},
|
|
107
|
-
ci: (0, ci_environment_1.default)(env),
|
|
108
|
-
};
|
|
109
|
-
eventBroadcaster.emit('envelope', {
|
|
110
|
-
meta,
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
exports.emitMetaMessage = emitMetaMessage;
|
|
114
|
-
const makeSourceReference = (source) => ({
|
|
115
|
-
uri: source.uri,
|
|
116
|
-
location: {
|
|
117
|
-
line: source.line,
|
|
118
|
-
},
|
|
119
|
-
});
|
|
120
|
-
function emitParameterTypes(supportCodeLibrary, eventBroadcaster, newId) {
|
|
121
|
-
for (const parameterType of supportCodeLibrary.parameterTypeRegistry
|
|
122
|
-
.parameterTypes) {
|
|
123
|
-
if (parameterType.builtin) {
|
|
124
|
-
continue;
|
|
125
|
-
}
|
|
126
|
-
const source = supportCodeLibrary.parameterTypeRegistry.lookupSource(parameterType);
|
|
127
|
-
const envelope = {
|
|
128
|
-
parameterType: {
|
|
129
|
-
id: newId(),
|
|
130
|
-
name: parameterType.name,
|
|
131
|
-
preferForRegularExpressionMatch: parameterType.preferForRegexpMatch,
|
|
132
|
-
regularExpressions: parameterType.regexpStrings,
|
|
133
|
-
useForSnippets: parameterType.useForSnippets,
|
|
134
|
-
sourceReference: makeSourceReference(source),
|
|
135
|
-
},
|
|
136
|
-
};
|
|
137
|
-
eventBroadcaster.emit('envelope', envelope);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
function emitUndefinedParameterTypes(supportCodeLibrary, eventBroadcaster) {
|
|
141
|
-
for (const undefinedParameterType of supportCodeLibrary.undefinedParameterTypes) {
|
|
142
|
-
const envelope = {
|
|
143
|
-
undefinedParameterType,
|
|
144
|
-
};
|
|
145
|
-
eventBroadcaster.emit('envelope', envelope);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
function emitStepDefinitions(supportCodeLibrary, eventBroadcaster) {
|
|
149
|
-
supportCodeLibrary.stepDefinitions.forEach((stepDefinition) => {
|
|
150
|
-
const envelope = {
|
|
151
|
-
stepDefinition: {
|
|
152
|
-
id: stepDefinition.id,
|
|
153
|
-
pattern: {
|
|
154
|
-
source: stepDefinition.pattern.toString(),
|
|
155
|
-
type: typeof stepDefinition.pattern === 'string'
|
|
156
|
-
? messages.StepDefinitionPatternType.CUCUMBER_EXPRESSION
|
|
157
|
-
: messages.StepDefinitionPatternType.REGULAR_EXPRESSION,
|
|
158
|
-
},
|
|
159
|
-
sourceReference: makeSourceReference(stepDefinition),
|
|
160
|
-
},
|
|
161
|
-
};
|
|
162
|
-
eventBroadcaster.emit('envelope', envelope);
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
function emitTestCaseHooks(supportCodeLibrary, eventBroadcaster) {
|
|
166
|
-
;
|
|
167
|
-
[]
|
|
168
|
-
.concat(supportCodeLibrary.beforeTestCaseHookDefinitions, supportCodeLibrary.afterTestCaseHookDefinitions)
|
|
169
|
-
.forEach((testCaseHookDefinition) => {
|
|
170
|
-
const envelope = {
|
|
171
|
-
hook: {
|
|
172
|
-
id: testCaseHookDefinition.id,
|
|
173
|
-
name: testCaseHookDefinition.name,
|
|
174
|
-
tagExpression: testCaseHookDefinition.tagExpression,
|
|
175
|
-
sourceReference: makeSourceReference(testCaseHookDefinition),
|
|
176
|
-
},
|
|
177
|
-
};
|
|
178
|
-
eventBroadcaster.emit('envelope', envelope);
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
function emitTestRunHooks(supportCodeLibrary, eventBroadcaster) {
|
|
182
|
-
;
|
|
183
|
-
[]
|
|
184
|
-
.concat(supportCodeLibrary.beforeTestRunHookDefinitions, supportCodeLibrary.afterTestRunHookDefinitions)
|
|
185
|
-
.forEach((testRunHookDefinition) => {
|
|
186
|
-
const envelope = {
|
|
187
|
-
hook: {
|
|
188
|
-
id: testRunHookDefinition.id,
|
|
189
|
-
sourceReference: makeSourceReference(testRunHookDefinition),
|
|
190
|
-
},
|
|
191
|
-
};
|
|
192
|
-
eventBroadcaster.emit('envelope', envelope);
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
function emitSupportCodeMessages({ eventBroadcaster, supportCodeLibrary, newId, }) {
|
|
196
|
-
emitParameterTypes(supportCodeLibrary, eventBroadcaster, newId);
|
|
197
|
-
emitUndefinedParameterTypes(supportCodeLibrary, eventBroadcaster);
|
|
198
|
-
emitStepDefinitions(supportCodeLibrary, eventBroadcaster);
|
|
199
|
-
emitTestCaseHooks(supportCodeLibrary, eventBroadcaster);
|
|
200
|
-
emitTestRunHooks(supportCodeLibrary, eventBroadcaster);
|
|
201
|
-
}
|
|
202
|
-
exports.emitSupportCodeMessages = emitSupportCodeMessages;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.emitSupportCodeMessages = exports.emitMetaMessage = exports.orderPickles = exports.parseGherkinMessageStream = void 0;
|
|
30
|
+
const knuth_shuffle_seeded_1 = __importDefault(require("knuth-shuffle-seeded"));
|
|
31
|
+
const value_checker_1 = require("../value_checker");
|
|
32
|
+
const configuration_1 = require("../configuration");
|
|
33
|
+
const os_1 = __importDefault(require("os"));
|
|
34
|
+
const messages = __importStar(require("@cucumber/messages"));
|
|
35
|
+
const ci_environment_1 = __importDefault(require("@cucumber/ci-environment"));
|
|
36
|
+
const version_1 = require("../version");
|
|
37
|
+
/**
|
|
38
|
+
* Process a stream of envelopes from Gherkin and resolve to an array of filtered, ordered pickle Ids
|
|
39
|
+
*
|
|
40
|
+
* @param eventBroadcaster
|
|
41
|
+
* @param eventDataCollector
|
|
42
|
+
* @param gherkinMessageStream
|
|
43
|
+
* @param order
|
|
44
|
+
* @param pickleFilter
|
|
45
|
+
*/
|
|
46
|
+
async function parseGherkinMessageStream({ eventBroadcaster, eventDataCollector, gherkinMessageStream, order, pickleFilter, }) {
|
|
47
|
+
return await new Promise((resolve, reject) => {
|
|
48
|
+
const result = [];
|
|
49
|
+
gherkinMessageStream.on('data', (envelope) => {
|
|
50
|
+
eventBroadcaster.emit('envelope', envelope);
|
|
51
|
+
if ((0, value_checker_1.doesHaveValue)(envelope.pickle)) {
|
|
52
|
+
const pickle = envelope.pickle;
|
|
53
|
+
const pickleId = pickle.id;
|
|
54
|
+
const gherkinDocument = eventDataCollector.getGherkinDocument(pickle.uri);
|
|
55
|
+
if (pickleFilter.matches({ gherkinDocument, pickle })) {
|
|
56
|
+
result.push(pickleId);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
gherkinMessageStream.on('end', () => {
|
|
61
|
+
orderPickles(result, order, console);
|
|
62
|
+
resolve(result);
|
|
63
|
+
});
|
|
64
|
+
gherkinMessageStream.on('error', reject);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
exports.parseGherkinMessageStream = parseGherkinMessageStream;
|
|
68
|
+
// Orders the pickleIds in place - morphs input
|
|
69
|
+
function orderPickles(pickleIds, order, logger) {
|
|
70
|
+
const [type, seed] = configuration_1.OptionSplitter.split(order);
|
|
71
|
+
switch (type) {
|
|
72
|
+
case 'defined':
|
|
73
|
+
break;
|
|
74
|
+
case 'random':
|
|
75
|
+
if (seed === '') {
|
|
76
|
+
const newSeed = Math.floor(Math.random() * 1000 * 1000).toString();
|
|
77
|
+
logger.warn(`Random order using seed: ${newSeed}`);
|
|
78
|
+
(0, knuth_shuffle_seeded_1.default)(pickleIds, newSeed);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
(0, knuth_shuffle_seeded_1.default)(pickleIds, seed);
|
|
82
|
+
}
|
|
83
|
+
break;
|
|
84
|
+
default:
|
|
85
|
+
throw new Error('Unrecgonized order type. Should be `defined` or `random`');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.orderPickles = orderPickles;
|
|
89
|
+
async function emitMetaMessage(eventBroadcaster, env) {
|
|
90
|
+
const meta = {
|
|
91
|
+
protocolVersion: messages.version,
|
|
92
|
+
implementation: {
|
|
93
|
+
version: version_1.version,
|
|
94
|
+
name: 'cucumber-js',
|
|
95
|
+
},
|
|
96
|
+
cpu: {
|
|
97
|
+
name: os_1.default.arch(),
|
|
98
|
+
},
|
|
99
|
+
os: {
|
|
100
|
+
name: os_1.default.platform(),
|
|
101
|
+
version: os_1.default.release(),
|
|
102
|
+
},
|
|
103
|
+
runtime: {
|
|
104
|
+
name: 'node.js',
|
|
105
|
+
version: process.versions.node,
|
|
106
|
+
},
|
|
107
|
+
ci: (0, ci_environment_1.default)(env),
|
|
108
|
+
};
|
|
109
|
+
eventBroadcaster.emit('envelope', {
|
|
110
|
+
meta,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
exports.emitMetaMessage = emitMetaMessage;
|
|
114
|
+
const makeSourceReference = (source) => ({
|
|
115
|
+
uri: source.uri,
|
|
116
|
+
location: {
|
|
117
|
+
line: source.line,
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
function emitParameterTypes(supportCodeLibrary, eventBroadcaster, newId) {
|
|
121
|
+
for (const parameterType of supportCodeLibrary.parameterTypeRegistry
|
|
122
|
+
.parameterTypes) {
|
|
123
|
+
if (parameterType.builtin) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
const source = supportCodeLibrary.parameterTypeRegistry.lookupSource(parameterType);
|
|
127
|
+
const envelope = {
|
|
128
|
+
parameterType: {
|
|
129
|
+
id: newId(),
|
|
130
|
+
name: parameterType.name,
|
|
131
|
+
preferForRegularExpressionMatch: parameterType.preferForRegexpMatch,
|
|
132
|
+
regularExpressions: parameterType.regexpStrings,
|
|
133
|
+
useForSnippets: parameterType.useForSnippets,
|
|
134
|
+
sourceReference: makeSourceReference(source),
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
eventBroadcaster.emit('envelope', envelope);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function emitUndefinedParameterTypes(supportCodeLibrary, eventBroadcaster) {
|
|
141
|
+
for (const undefinedParameterType of supportCodeLibrary.undefinedParameterTypes) {
|
|
142
|
+
const envelope = {
|
|
143
|
+
undefinedParameterType,
|
|
144
|
+
};
|
|
145
|
+
eventBroadcaster.emit('envelope', envelope);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function emitStepDefinitions(supportCodeLibrary, eventBroadcaster) {
|
|
149
|
+
supportCodeLibrary.stepDefinitions.forEach((stepDefinition) => {
|
|
150
|
+
const envelope = {
|
|
151
|
+
stepDefinition: {
|
|
152
|
+
id: stepDefinition.id,
|
|
153
|
+
pattern: {
|
|
154
|
+
source: stepDefinition.pattern.toString(),
|
|
155
|
+
type: typeof stepDefinition.pattern === 'string'
|
|
156
|
+
? messages.StepDefinitionPatternType.CUCUMBER_EXPRESSION
|
|
157
|
+
: messages.StepDefinitionPatternType.REGULAR_EXPRESSION,
|
|
158
|
+
},
|
|
159
|
+
sourceReference: makeSourceReference(stepDefinition),
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
eventBroadcaster.emit('envelope', envelope);
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
function emitTestCaseHooks(supportCodeLibrary, eventBroadcaster) {
|
|
166
|
+
;
|
|
167
|
+
[]
|
|
168
|
+
.concat(supportCodeLibrary.beforeTestCaseHookDefinitions, supportCodeLibrary.afterTestCaseHookDefinitions)
|
|
169
|
+
.forEach((testCaseHookDefinition) => {
|
|
170
|
+
const envelope = {
|
|
171
|
+
hook: {
|
|
172
|
+
id: testCaseHookDefinition.id,
|
|
173
|
+
name: testCaseHookDefinition.name,
|
|
174
|
+
tagExpression: testCaseHookDefinition.tagExpression,
|
|
175
|
+
sourceReference: makeSourceReference(testCaseHookDefinition),
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
eventBroadcaster.emit('envelope', envelope);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
function emitTestRunHooks(supportCodeLibrary, eventBroadcaster) {
|
|
182
|
+
;
|
|
183
|
+
[]
|
|
184
|
+
.concat(supportCodeLibrary.beforeTestRunHookDefinitions, supportCodeLibrary.afterTestRunHookDefinitions)
|
|
185
|
+
.forEach((testRunHookDefinition) => {
|
|
186
|
+
const envelope = {
|
|
187
|
+
hook: {
|
|
188
|
+
id: testRunHookDefinition.id,
|
|
189
|
+
sourceReference: makeSourceReference(testRunHookDefinition),
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
eventBroadcaster.emit('envelope', envelope);
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
function emitSupportCodeMessages({ eventBroadcaster, supportCodeLibrary, newId, }) {
|
|
196
|
+
emitParameterTypes(supportCodeLibrary, eventBroadcaster, newId);
|
|
197
|
+
emitUndefinedParameterTypes(supportCodeLibrary, eventBroadcaster);
|
|
198
|
+
emitStepDefinitions(supportCodeLibrary, eventBroadcaster);
|
|
199
|
+
emitTestCaseHooks(supportCodeLibrary, eventBroadcaster);
|
|
200
|
+
emitTestRunHooks(supportCodeLibrary, eventBroadcaster);
|
|
201
|
+
}
|
|
202
|
+
exports.emitSupportCodeMessages = emitSupportCodeMessages;
|
|
203
203
|
//# sourceMappingURL=helpers.js.map
|
package/lib/cli/i18n.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function getLanguages(): string;
|
|
2
|
-
export declare function getKeywords(isoCode: string): string;
|
|
1
|
+
export declare function getLanguages(): string;
|
|
2
|
+
export declare function getKeywords(isoCode: string): string;
|
package/lib/cli/i18n.js
CHANGED
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getKeywords = exports.getLanguages = void 0;
|
|
7
|
-
const gherkin_1 = require("@cucumber/gherkin");
|
|
8
|
-
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
9
|
-
const capital_case_1 = require("capital-case");
|
|
10
|
-
const keywords = [
|
|
11
|
-
'feature',
|
|
12
|
-
'rule',
|
|
13
|
-
'background',
|
|
14
|
-
'scenario',
|
|
15
|
-
'scenarioOutline',
|
|
16
|
-
'examples',
|
|
17
|
-
'given',
|
|
18
|
-
'when',
|
|
19
|
-
'then',
|
|
20
|
-
'and',
|
|
21
|
-
'but',
|
|
22
|
-
];
|
|
23
|
-
function getAsTable(header, rows) {
|
|
24
|
-
const table = new cli_table3_1.default({
|
|
25
|
-
chars: {
|
|
26
|
-
bottom: '',
|
|
27
|
-
'bottom-left': '',
|
|
28
|
-
'bottom-mid': '',
|
|
29
|
-
'bottom-right': '',
|
|
30
|
-
left: '',
|
|
31
|
-
'left-mid': '',
|
|
32
|
-
mid: '',
|
|
33
|
-
'mid-mid': '',
|
|
34
|
-
middle: ' | ',
|
|
35
|
-
right: '',
|
|
36
|
-
'right-mid': '',
|
|
37
|
-
top: '',
|
|
38
|
-
'top-left': '',
|
|
39
|
-
'top-mid': '',
|
|
40
|
-
'top-right': '',
|
|
41
|
-
},
|
|
42
|
-
style: {
|
|
43
|
-
border: [],
|
|
44
|
-
'padding-left': 0,
|
|
45
|
-
'padding-right': 0,
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
table.push(header);
|
|
49
|
-
table.push(...rows);
|
|
50
|
-
return table.toString();
|
|
51
|
-
}
|
|
52
|
-
function getLanguages() {
|
|
53
|
-
const rows = Object.keys(gherkin_1.dialects).map((isoCode) => [
|
|
54
|
-
isoCode,
|
|
55
|
-
gherkin_1.dialects[isoCode].name,
|
|
56
|
-
gherkin_1.dialects[isoCode].native,
|
|
57
|
-
]);
|
|
58
|
-
return getAsTable(['ISO 639-1', 'ENGLISH NAME', 'NATIVE NAME'], rows);
|
|
59
|
-
}
|
|
60
|
-
exports.getLanguages = getLanguages;
|
|
61
|
-
function getKeywords(isoCode) {
|
|
62
|
-
const language = gherkin_1.dialects[isoCode];
|
|
63
|
-
const rows = keywords.map((keyword) => {
|
|
64
|
-
const words = language[keyword].map((s) => `"${s}"`).join(', ');
|
|
65
|
-
return [(0, capital_case_1.capitalCase)(keyword), words];
|
|
66
|
-
});
|
|
67
|
-
return getAsTable(['ENGLISH KEYWORD', 'NATIVE KEYWORDS'], rows);
|
|
68
|
-
}
|
|
69
|
-
exports.getKeywords = getKeywords;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getKeywords = exports.getLanguages = void 0;
|
|
7
|
+
const gherkin_1 = require("@cucumber/gherkin");
|
|
8
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
9
|
+
const capital_case_1 = require("capital-case");
|
|
10
|
+
const keywords = [
|
|
11
|
+
'feature',
|
|
12
|
+
'rule',
|
|
13
|
+
'background',
|
|
14
|
+
'scenario',
|
|
15
|
+
'scenarioOutline',
|
|
16
|
+
'examples',
|
|
17
|
+
'given',
|
|
18
|
+
'when',
|
|
19
|
+
'then',
|
|
20
|
+
'and',
|
|
21
|
+
'but',
|
|
22
|
+
];
|
|
23
|
+
function getAsTable(header, rows) {
|
|
24
|
+
const table = new cli_table3_1.default({
|
|
25
|
+
chars: {
|
|
26
|
+
bottom: '',
|
|
27
|
+
'bottom-left': '',
|
|
28
|
+
'bottom-mid': '',
|
|
29
|
+
'bottom-right': '',
|
|
30
|
+
left: '',
|
|
31
|
+
'left-mid': '',
|
|
32
|
+
mid: '',
|
|
33
|
+
'mid-mid': '',
|
|
34
|
+
middle: ' | ',
|
|
35
|
+
right: '',
|
|
36
|
+
'right-mid': '',
|
|
37
|
+
top: '',
|
|
38
|
+
'top-left': '',
|
|
39
|
+
'top-mid': '',
|
|
40
|
+
'top-right': '',
|
|
41
|
+
},
|
|
42
|
+
style: {
|
|
43
|
+
border: [],
|
|
44
|
+
'padding-left': 0,
|
|
45
|
+
'padding-right': 0,
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
table.push(header);
|
|
49
|
+
table.push(...rows);
|
|
50
|
+
return table.toString();
|
|
51
|
+
}
|
|
52
|
+
function getLanguages() {
|
|
53
|
+
const rows = Object.keys(gherkin_1.dialects).map((isoCode) => [
|
|
54
|
+
isoCode,
|
|
55
|
+
gherkin_1.dialects[isoCode].name,
|
|
56
|
+
gherkin_1.dialects[isoCode].native,
|
|
57
|
+
]);
|
|
58
|
+
return getAsTable(['ISO 639-1', 'ENGLISH NAME', 'NATIVE NAME'], rows);
|
|
59
|
+
}
|
|
60
|
+
exports.getLanguages = getLanguages;
|
|
61
|
+
function getKeywords(isoCode) {
|
|
62
|
+
const language = gherkin_1.dialects[isoCode];
|
|
63
|
+
const rows = keywords.map((keyword) => {
|
|
64
|
+
const words = language[keyword].map((s) => `"${s}"`).join(', ');
|
|
65
|
+
return [(0, capital_case_1.capitalCase)(keyword), words];
|
|
66
|
+
});
|
|
67
|
+
return getAsTable(['ENGLISH KEYWORD', 'NATIVE KEYWORDS'], rows);
|
|
68
|
+
}
|
|
69
|
+
exports.getKeywords = getKeywords;
|
|
70
70
|
//# sourceMappingURL=i18n.js.map
|
package/lib/cli/index.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { IFormatterStream } from '../formatter';
|
|
3
|
-
export interface ICliRunResult {
|
|
4
|
-
shouldExitImmediately: boolean;
|
|
5
|
-
success: boolean;
|
|
6
|
-
}
|
|
7
|
-
export default class Cli {
|
|
8
|
-
private readonly argv;
|
|
9
|
-
private readonly cwd;
|
|
10
|
-
private readonly stdout;
|
|
11
|
-
private readonly stderr;
|
|
12
|
-
private readonly env;
|
|
13
|
-
constructor({ argv, cwd, stdout, stderr, env, }: {
|
|
14
|
-
argv: string[];
|
|
15
|
-
cwd: string;
|
|
16
|
-
stdout: IFormatterStream;
|
|
17
|
-
stderr?: IFormatterStream;
|
|
18
|
-
env: NodeJS.ProcessEnv;
|
|
19
|
-
});
|
|
20
|
-
run(): Promise<ICliRunResult>;
|
|
21
|
-
}
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { IFormatterStream } from '../formatter';
|
|
3
|
+
export interface ICliRunResult {
|
|
4
|
+
shouldExitImmediately: boolean;
|
|
5
|
+
success: boolean;
|
|
6
|
+
}
|
|
7
|
+
export default class Cli {
|
|
8
|
+
private readonly argv;
|
|
9
|
+
private readonly cwd;
|
|
10
|
+
private readonly stdout;
|
|
11
|
+
private readonly stderr;
|
|
12
|
+
private readonly env;
|
|
13
|
+
constructor({ argv, cwd, stdout, stderr, env, }: {
|
|
14
|
+
argv: string[];
|
|
15
|
+
cwd: string;
|
|
16
|
+
stdout: IFormatterStream;
|
|
17
|
+
stderr?: IFormatterStream;
|
|
18
|
+
env: NodeJS.ProcessEnv;
|
|
19
|
+
});
|
|
20
|
+
run(): Promise<ICliRunResult>;
|
|
21
|
+
}
|