@dev-blinq/cucumber-js 1.0.36 → 1.0.38
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 +65 -65
- 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 +177 -177
- package/lib/api/types.js +2 -2
- package/lib/cli/helpers.d.ts +39 -39
- package/lib/cli/helpers.js +223 -223
- 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 +63 -63
- 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 +102 -102
- 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 +28 -28
- 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 +30 -30
- 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_analysis_formatter.d.ts +18 -18
- package/lib/formatter/bvt_analysis_formatter.js +192 -192
- package/lib/formatter/feature_data_format.d.ts +14 -14
- package/lib/formatter/feature_data_format.js +80 -80
- 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 -44
- 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 +107 -103
- package/lib/formatter/helpers/report_generator.js +310 -247
- package/lib/formatter/helpers/report_generator.js.map +1 -1
- 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/upload_serivce.d.ts +9 -9
- package/lib/formatter/helpers/upload_serivce.js +46 -46
- package/lib/formatter/helpers/uploader.d.ts +11 -11
- package/lib/formatter/helpers/uploader.js +56 -56
- 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 +1 -1
|
@@ -1,268 +1,268 @@
|
|
|
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
|
-
const helpers_1 = require("./helpers");
|
|
30
|
-
const attachment_manager_1 = __importDefault(require("./attachment_manager"));
|
|
31
|
-
const step_runner_1 = __importDefault(require("./step_runner"));
|
|
32
|
-
const messages = __importStar(require("@cucumber/messages"));
|
|
33
|
-
const messages_1 = require("@cucumber/messages");
|
|
34
|
-
const value_checker_1 = require("../value_checker");
|
|
35
|
-
class TestCaseRunner {
|
|
36
|
-
constructor({ eventBroadcaster, stopwatch, gherkinDocument, newId, pickle, testCase, retries = 0, skip, filterStackTraces, supportCodeLibrary, worldParameters, }) {
|
|
37
|
-
this.attachmentManager = new attachment_manager_1.default(({ data, media, fileName }) => {
|
|
38
|
-
if ((0, value_checker_1.doesNotHaveValue)(this.currentTestStepId)) {
|
|
39
|
-
throw new Error('Cannot attach when a step/hook is not running. Ensure your step/hook waits for the attach to finish.');
|
|
40
|
-
}
|
|
41
|
-
const attachment = {
|
|
42
|
-
attachment: {
|
|
43
|
-
body: data,
|
|
44
|
-
contentEncoding: media.encoding,
|
|
45
|
-
mediaType: media.contentType,
|
|
46
|
-
fileName,
|
|
47
|
-
testCaseStartedId: this.currentTestCaseStartedId,
|
|
48
|
-
testStepId: this.currentTestStepId,
|
|
49
|
-
},
|
|
50
|
-
};
|
|
51
|
-
this.eventBroadcaster.emit('envelope', attachment);
|
|
52
|
-
});
|
|
53
|
-
this.eventBroadcaster = eventBroadcaster;
|
|
54
|
-
this.stopwatch = stopwatch;
|
|
55
|
-
this.gherkinDocument = gherkinDocument;
|
|
56
|
-
this.maxAttempts = 1 + (skip ? 0 : retries);
|
|
57
|
-
this.newId = newId;
|
|
58
|
-
this.pickle = pickle;
|
|
59
|
-
this.testCase = testCase;
|
|
60
|
-
this.skip = skip;
|
|
61
|
-
this.filterStackTraces = filterStackTraces;
|
|
62
|
-
this.supportCodeLibrary = supportCodeLibrary;
|
|
63
|
-
this.worldParameters = worldParameters;
|
|
64
|
-
this.resetTestProgressData();
|
|
65
|
-
}
|
|
66
|
-
resetTestProgressData() {
|
|
67
|
-
this.world = new this.supportCodeLibrary.World({
|
|
68
|
-
attach: this.attachmentManager.create.bind(this.attachmentManager),
|
|
69
|
-
log: this.attachmentManager.log.bind(this.attachmentManager),
|
|
70
|
-
parameters: this.worldParameters,
|
|
71
|
-
});
|
|
72
|
-
this.testStepResults = [];
|
|
73
|
-
}
|
|
74
|
-
getBeforeStepHookDefinitions() {
|
|
75
|
-
return this.supportCodeLibrary.beforeTestStepHookDefinitions.filter((hookDefinition) => hookDefinition.appliesToTestCase(this.pickle));
|
|
76
|
-
}
|
|
77
|
-
getAfterStepHookDefinitions() {
|
|
78
|
-
return this.supportCodeLibrary.afterTestStepHookDefinitions
|
|
79
|
-
.slice(0)
|
|
80
|
-
.reverse()
|
|
81
|
-
.filter((hookDefinition) => hookDefinition.appliesToTestCase(this.pickle));
|
|
82
|
-
}
|
|
83
|
-
getWorstStepResult() {
|
|
84
|
-
if (this.testStepResults.length === 0) {
|
|
85
|
-
return {
|
|
86
|
-
status: this.skip
|
|
87
|
-
? messages.TestStepResultStatus.SKIPPED
|
|
88
|
-
: messages.TestStepResultStatus.PASSED,
|
|
89
|
-
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
return (0, messages_1.getWorstTestStepResult)(this.testStepResults);
|
|
93
|
-
}
|
|
94
|
-
async invokeStep(step, stepDefinition, hookParameter) {
|
|
95
|
-
return await step_runner_1.default.run({
|
|
96
|
-
defaultTimeout: this.supportCodeLibrary.defaultTimeout,
|
|
97
|
-
filterStackTraces: this.filterStackTraces,
|
|
98
|
-
hookParameter,
|
|
99
|
-
step,
|
|
100
|
-
stepDefinition,
|
|
101
|
-
world: this.world,
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
isSkippingSteps() {
|
|
105
|
-
return (this.getWorstStepResult().status !== messages.TestStepResultStatus.PASSED);
|
|
106
|
-
}
|
|
107
|
-
shouldSkipHook(isBeforeHook) {
|
|
108
|
-
return this.skip || (this.isSkippingSteps() && isBeforeHook);
|
|
109
|
-
}
|
|
110
|
-
async aroundTestStep(testStepId, runStepFn) {
|
|
111
|
-
const testStepStarted = {
|
|
112
|
-
testStepStarted: {
|
|
113
|
-
testCaseStartedId: this.currentTestCaseStartedId,
|
|
114
|
-
testStepId,
|
|
115
|
-
timestamp: this.stopwatch.timestamp(),
|
|
116
|
-
},
|
|
117
|
-
};
|
|
118
|
-
this.eventBroadcaster.emit('envelope', testStepStarted);
|
|
119
|
-
this.currentTestStepId = testStepId;
|
|
120
|
-
const testStepResult = await runStepFn();
|
|
121
|
-
this.currentTestStepId = null;
|
|
122
|
-
this.testStepResults.push(testStepResult);
|
|
123
|
-
const testStepFinished = {
|
|
124
|
-
testStepFinished: {
|
|
125
|
-
testCaseStartedId: this.currentTestCaseStartedId,
|
|
126
|
-
testStepId,
|
|
127
|
-
testStepResult,
|
|
128
|
-
timestamp: this.stopwatch.timestamp(),
|
|
129
|
-
},
|
|
130
|
-
};
|
|
131
|
-
this.eventBroadcaster.emit('envelope', testStepFinished);
|
|
132
|
-
}
|
|
133
|
-
async run() {
|
|
134
|
-
for (let attempt = 0; attempt < this.maxAttempts; attempt++) {
|
|
135
|
-
const moreAttemptsRemaining = attempt + 1 < this.maxAttempts;
|
|
136
|
-
const willBeRetried = await this.runAttempt(attempt, moreAttemptsRemaining);
|
|
137
|
-
if (!willBeRetried) {
|
|
138
|
-
break;
|
|
139
|
-
}
|
|
140
|
-
this.resetTestProgressData();
|
|
141
|
-
}
|
|
142
|
-
return this.getWorstStepResult().status;
|
|
143
|
-
}
|
|
144
|
-
async runAttempt(attempt, moreAttemptsRemaining) {
|
|
145
|
-
this.currentTestCaseStartedId = this.newId();
|
|
146
|
-
const testCaseStarted = {
|
|
147
|
-
testCaseStarted: {
|
|
148
|
-
attempt,
|
|
149
|
-
testCaseId: this.testCase.id,
|
|
150
|
-
id: this.currentTestCaseStartedId,
|
|
151
|
-
timestamp: this.stopwatch.timestamp(),
|
|
152
|
-
},
|
|
153
|
-
};
|
|
154
|
-
this.eventBroadcaster.emit('envelope', testCaseStarted);
|
|
155
|
-
// used to determine whether a hook is a Before or After
|
|
156
|
-
let didWeRunStepsYet = false;
|
|
157
|
-
for (const testStep of this.testCase.testSteps) {
|
|
158
|
-
await this.aroundTestStep(testStep.id, async () => {
|
|
159
|
-
if ((0, value_checker_1.doesHaveValue)(testStep.hookId)) {
|
|
160
|
-
const hookParameter = {
|
|
161
|
-
gherkinDocument: this.gherkinDocument,
|
|
162
|
-
pickle: this.pickle,
|
|
163
|
-
testCaseStartedId: this.currentTestCaseStartedId,
|
|
164
|
-
};
|
|
165
|
-
if (didWeRunStepsYet) {
|
|
166
|
-
hookParameter.result = this.getWorstStepResult();
|
|
167
|
-
hookParameter.willBeRetried =
|
|
168
|
-
this.getWorstStepResult().status ===
|
|
169
|
-
messages.TestStepResultStatus.FAILED && moreAttemptsRemaining;
|
|
170
|
-
}
|
|
171
|
-
return await this.runHook(findHookDefinition(testStep.hookId, this.supportCodeLibrary), hookParameter, !didWeRunStepsYet);
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
const pickleStep = this.pickle.steps.find((pickleStep) => pickleStep.id === testStep.pickleStepId);
|
|
175
|
-
const testStepResult = await this.runStep(pickleStep, testStep);
|
|
176
|
-
didWeRunStepsYet = true;
|
|
177
|
-
return testStepResult;
|
|
178
|
-
}
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
const willBeRetried = this.getWorstStepResult().status ===
|
|
182
|
-
messages.TestStepResultStatus.FAILED && moreAttemptsRemaining;
|
|
183
|
-
const testCaseFinished = {
|
|
184
|
-
testCaseFinished: {
|
|
185
|
-
testCaseStartedId: this.currentTestCaseStartedId,
|
|
186
|
-
timestamp: this.stopwatch.timestamp(),
|
|
187
|
-
willBeRetried,
|
|
188
|
-
},
|
|
189
|
-
};
|
|
190
|
-
this.eventBroadcaster.emit('envelope', testCaseFinished);
|
|
191
|
-
return willBeRetried;
|
|
192
|
-
}
|
|
193
|
-
async runHook(hookDefinition, hookParameter, isBeforeHook) {
|
|
194
|
-
if (this.shouldSkipHook(isBeforeHook)) {
|
|
195
|
-
return {
|
|
196
|
-
status: messages.TestStepResultStatus.SKIPPED,
|
|
197
|
-
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
return await this.invokeStep(null, hookDefinition, hookParameter);
|
|
201
|
-
}
|
|
202
|
-
async runStepHooks(stepHooks, pickleStep, stepResult) {
|
|
203
|
-
const stepHooksResult = [];
|
|
204
|
-
const hookParameter = {
|
|
205
|
-
gherkinDocument: this.gherkinDocument,
|
|
206
|
-
pickle: this.pickle,
|
|
207
|
-
pickleStep,
|
|
208
|
-
testCaseStartedId: this.currentTestCaseStartedId,
|
|
209
|
-
testStepId: this.currentTestStepId,
|
|
210
|
-
result: stepResult,
|
|
211
|
-
};
|
|
212
|
-
for (const stepHookDefinition of stepHooks) {
|
|
213
|
-
stepHooksResult.push(await this.invokeStep(null, stepHookDefinition, hookParameter));
|
|
214
|
-
}
|
|
215
|
-
return stepHooksResult;
|
|
216
|
-
}
|
|
217
|
-
async runStep(pickleStep, testStep) {
|
|
218
|
-
const stepDefinitions = testStep.stepDefinitionIds.map((stepDefinitionId) => {
|
|
219
|
-
return findStepDefinition(stepDefinitionId, this.supportCodeLibrary);
|
|
220
|
-
});
|
|
221
|
-
if (stepDefinitions.length === 0) {
|
|
222
|
-
return {
|
|
223
|
-
status: messages.TestStepResultStatus.UNDEFINED,
|
|
224
|
-
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
else if (stepDefinitions.length > 1) {
|
|
228
|
-
return {
|
|
229
|
-
message: (0, helpers_1.getAmbiguousStepException)(stepDefinitions),
|
|
230
|
-
status: messages.TestStepResultStatus.AMBIGUOUS,
|
|
231
|
-
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
else if (this.isSkippingSteps()) {
|
|
235
|
-
return {
|
|
236
|
-
status: messages.TestStepResultStatus.SKIPPED,
|
|
237
|
-
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
let stepResult;
|
|
241
|
-
let stepResults = await this.runStepHooks(this.getBeforeStepHookDefinitions(), pickleStep);
|
|
242
|
-
if ((0, messages_1.getWorstTestStepResult)(stepResults).status !==
|
|
243
|
-
messages.TestStepResultStatus.FAILED) {
|
|
244
|
-
stepResult = await this.invokeStep(pickleStep, stepDefinitions[0]);
|
|
245
|
-
stepResults.push(stepResult);
|
|
246
|
-
}
|
|
247
|
-
const afterStepHookResults = await this.runStepHooks(this.getAfterStepHookDefinitions(), pickleStep, stepResult);
|
|
248
|
-
stepResults = stepResults.concat(afterStepHookResults);
|
|
249
|
-
const finalStepResult = (0, messages_1.getWorstTestStepResult)(stepResults);
|
|
250
|
-
let finalDuration = messages.TimeConversion.millisecondsToDuration(0);
|
|
251
|
-
for (const result of stepResults) {
|
|
252
|
-
finalDuration = messages.TimeConversion.addDurations(finalDuration, result.duration);
|
|
253
|
-
}
|
|
254
|
-
finalStepResult.duration = finalDuration;
|
|
255
|
-
return finalStepResult;
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
exports.default = TestCaseRunner;
|
|
259
|
-
function findHookDefinition(id, supportCodeLibrary) {
|
|
260
|
-
return [
|
|
261
|
-
...supportCodeLibrary.beforeTestCaseHookDefinitions,
|
|
262
|
-
...supportCodeLibrary.afterTestCaseHookDefinitions,
|
|
263
|
-
].find((definition) => definition.id === id);
|
|
264
|
-
}
|
|
265
|
-
function findStepDefinition(id, supportCodeLibrary) {
|
|
266
|
-
return supportCodeLibrary.stepDefinitions.find((definition) => definition.id === id);
|
|
267
|
-
}
|
|
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
|
+
const helpers_1 = require("./helpers");
|
|
30
|
+
const attachment_manager_1 = __importDefault(require("./attachment_manager"));
|
|
31
|
+
const step_runner_1 = __importDefault(require("./step_runner"));
|
|
32
|
+
const messages = __importStar(require("@cucumber/messages"));
|
|
33
|
+
const messages_1 = require("@cucumber/messages");
|
|
34
|
+
const value_checker_1 = require("../value_checker");
|
|
35
|
+
class TestCaseRunner {
|
|
36
|
+
constructor({ eventBroadcaster, stopwatch, gherkinDocument, newId, pickle, testCase, retries = 0, skip, filterStackTraces, supportCodeLibrary, worldParameters, }) {
|
|
37
|
+
this.attachmentManager = new attachment_manager_1.default(({ data, media, fileName }) => {
|
|
38
|
+
if ((0, value_checker_1.doesNotHaveValue)(this.currentTestStepId)) {
|
|
39
|
+
throw new Error('Cannot attach when a step/hook is not running. Ensure your step/hook waits for the attach to finish.');
|
|
40
|
+
}
|
|
41
|
+
const attachment = {
|
|
42
|
+
attachment: {
|
|
43
|
+
body: data,
|
|
44
|
+
contentEncoding: media.encoding,
|
|
45
|
+
mediaType: media.contentType,
|
|
46
|
+
fileName,
|
|
47
|
+
testCaseStartedId: this.currentTestCaseStartedId,
|
|
48
|
+
testStepId: this.currentTestStepId,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
this.eventBroadcaster.emit('envelope', attachment);
|
|
52
|
+
});
|
|
53
|
+
this.eventBroadcaster = eventBroadcaster;
|
|
54
|
+
this.stopwatch = stopwatch;
|
|
55
|
+
this.gherkinDocument = gherkinDocument;
|
|
56
|
+
this.maxAttempts = 1 + (skip ? 0 : retries);
|
|
57
|
+
this.newId = newId;
|
|
58
|
+
this.pickle = pickle;
|
|
59
|
+
this.testCase = testCase;
|
|
60
|
+
this.skip = skip;
|
|
61
|
+
this.filterStackTraces = filterStackTraces;
|
|
62
|
+
this.supportCodeLibrary = supportCodeLibrary;
|
|
63
|
+
this.worldParameters = worldParameters;
|
|
64
|
+
this.resetTestProgressData();
|
|
65
|
+
}
|
|
66
|
+
resetTestProgressData() {
|
|
67
|
+
this.world = new this.supportCodeLibrary.World({
|
|
68
|
+
attach: this.attachmentManager.create.bind(this.attachmentManager),
|
|
69
|
+
log: this.attachmentManager.log.bind(this.attachmentManager),
|
|
70
|
+
parameters: this.worldParameters,
|
|
71
|
+
});
|
|
72
|
+
this.testStepResults = [];
|
|
73
|
+
}
|
|
74
|
+
getBeforeStepHookDefinitions() {
|
|
75
|
+
return this.supportCodeLibrary.beforeTestStepHookDefinitions.filter((hookDefinition) => hookDefinition.appliesToTestCase(this.pickle));
|
|
76
|
+
}
|
|
77
|
+
getAfterStepHookDefinitions() {
|
|
78
|
+
return this.supportCodeLibrary.afterTestStepHookDefinitions
|
|
79
|
+
.slice(0)
|
|
80
|
+
.reverse()
|
|
81
|
+
.filter((hookDefinition) => hookDefinition.appliesToTestCase(this.pickle));
|
|
82
|
+
}
|
|
83
|
+
getWorstStepResult() {
|
|
84
|
+
if (this.testStepResults.length === 0) {
|
|
85
|
+
return {
|
|
86
|
+
status: this.skip
|
|
87
|
+
? messages.TestStepResultStatus.SKIPPED
|
|
88
|
+
: messages.TestStepResultStatus.PASSED,
|
|
89
|
+
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
return (0, messages_1.getWorstTestStepResult)(this.testStepResults);
|
|
93
|
+
}
|
|
94
|
+
async invokeStep(step, stepDefinition, hookParameter) {
|
|
95
|
+
return await step_runner_1.default.run({
|
|
96
|
+
defaultTimeout: this.supportCodeLibrary.defaultTimeout,
|
|
97
|
+
filterStackTraces: this.filterStackTraces,
|
|
98
|
+
hookParameter,
|
|
99
|
+
step,
|
|
100
|
+
stepDefinition,
|
|
101
|
+
world: this.world,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
isSkippingSteps() {
|
|
105
|
+
return (this.getWorstStepResult().status !== messages.TestStepResultStatus.PASSED);
|
|
106
|
+
}
|
|
107
|
+
shouldSkipHook(isBeforeHook) {
|
|
108
|
+
return this.skip || (this.isSkippingSteps() && isBeforeHook);
|
|
109
|
+
}
|
|
110
|
+
async aroundTestStep(testStepId, runStepFn) {
|
|
111
|
+
const testStepStarted = {
|
|
112
|
+
testStepStarted: {
|
|
113
|
+
testCaseStartedId: this.currentTestCaseStartedId,
|
|
114
|
+
testStepId,
|
|
115
|
+
timestamp: this.stopwatch.timestamp(),
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
this.eventBroadcaster.emit('envelope', testStepStarted);
|
|
119
|
+
this.currentTestStepId = testStepId;
|
|
120
|
+
const testStepResult = await runStepFn();
|
|
121
|
+
this.currentTestStepId = null;
|
|
122
|
+
this.testStepResults.push(testStepResult);
|
|
123
|
+
const testStepFinished = {
|
|
124
|
+
testStepFinished: {
|
|
125
|
+
testCaseStartedId: this.currentTestCaseStartedId,
|
|
126
|
+
testStepId,
|
|
127
|
+
testStepResult,
|
|
128
|
+
timestamp: this.stopwatch.timestamp(),
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
this.eventBroadcaster.emit('envelope', testStepFinished);
|
|
132
|
+
}
|
|
133
|
+
async run() {
|
|
134
|
+
for (let attempt = 0; attempt < this.maxAttempts; attempt++) {
|
|
135
|
+
const moreAttemptsRemaining = attempt + 1 < this.maxAttempts;
|
|
136
|
+
const willBeRetried = await this.runAttempt(attempt, moreAttemptsRemaining);
|
|
137
|
+
if (!willBeRetried) {
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
this.resetTestProgressData();
|
|
141
|
+
}
|
|
142
|
+
return this.getWorstStepResult().status;
|
|
143
|
+
}
|
|
144
|
+
async runAttempt(attempt, moreAttemptsRemaining) {
|
|
145
|
+
this.currentTestCaseStartedId = this.newId();
|
|
146
|
+
const testCaseStarted = {
|
|
147
|
+
testCaseStarted: {
|
|
148
|
+
attempt,
|
|
149
|
+
testCaseId: this.testCase.id,
|
|
150
|
+
id: this.currentTestCaseStartedId,
|
|
151
|
+
timestamp: this.stopwatch.timestamp(),
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
this.eventBroadcaster.emit('envelope', testCaseStarted);
|
|
155
|
+
// used to determine whether a hook is a Before or After
|
|
156
|
+
let didWeRunStepsYet = false;
|
|
157
|
+
for (const testStep of this.testCase.testSteps) {
|
|
158
|
+
await this.aroundTestStep(testStep.id, async () => {
|
|
159
|
+
if ((0, value_checker_1.doesHaveValue)(testStep.hookId)) {
|
|
160
|
+
const hookParameter = {
|
|
161
|
+
gherkinDocument: this.gherkinDocument,
|
|
162
|
+
pickle: this.pickle,
|
|
163
|
+
testCaseStartedId: this.currentTestCaseStartedId,
|
|
164
|
+
};
|
|
165
|
+
if (didWeRunStepsYet) {
|
|
166
|
+
hookParameter.result = this.getWorstStepResult();
|
|
167
|
+
hookParameter.willBeRetried =
|
|
168
|
+
this.getWorstStepResult().status ===
|
|
169
|
+
messages.TestStepResultStatus.FAILED && moreAttemptsRemaining;
|
|
170
|
+
}
|
|
171
|
+
return await this.runHook(findHookDefinition(testStep.hookId, this.supportCodeLibrary), hookParameter, !didWeRunStepsYet);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
const pickleStep = this.pickle.steps.find((pickleStep) => pickleStep.id === testStep.pickleStepId);
|
|
175
|
+
const testStepResult = await this.runStep(pickleStep, testStep);
|
|
176
|
+
didWeRunStepsYet = true;
|
|
177
|
+
return testStepResult;
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
const willBeRetried = this.getWorstStepResult().status ===
|
|
182
|
+
messages.TestStepResultStatus.FAILED && moreAttemptsRemaining;
|
|
183
|
+
const testCaseFinished = {
|
|
184
|
+
testCaseFinished: {
|
|
185
|
+
testCaseStartedId: this.currentTestCaseStartedId,
|
|
186
|
+
timestamp: this.stopwatch.timestamp(),
|
|
187
|
+
willBeRetried,
|
|
188
|
+
},
|
|
189
|
+
};
|
|
190
|
+
this.eventBroadcaster.emit('envelope', testCaseFinished);
|
|
191
|
+
return willBeRetried;
|
|
192
|
+
}
|
|
193
|
+
async runHook(hookDefinition, hookParameter, isBeforeHook) {
|
|
194
|
+
if (this.shouldSkipHook(isBeforeHook)) {
|
|
195
|
+
return {
|
|
196
|
+
status: messages.TestStepResultStatus.SKIPPED,
|
|
197
|
+
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
return await this.invokeStep(null, hookDefinition, hookParameter);
|
|
201
|
+
}
|
|
202
|
+
async runStepHooks(stepHooks, pickleStep, stepResult) {
|
|
203
|
+
const stepHooksResult = [];
|
|
204
|
+
const hookParameter = {
|
|
205
|
+
gherkinDocument: this.gherkinDocument,
|
|
206
|
+
pickle: this.pickle,
|
|
207
|
+
pickleStep,
|
|
208
|
+
testCaseStartedId: this.currentTestCaseStartedId,
|
|
209
|
+
testStepId: this.currentTestStepId,
|
|
210
|
+
result: stepResult,
|
|
211
|
+
};
|
|
212
|
+
for (const stepHookDefinition of stepHooks) {
|
|
213
|
+
stepHooksResult.push(await this.invokeStep(null, stepHookDefinition, hookParameter));
|
|
214
|
+
}
|
|
215
|
+
return stepHooksResult;
|
|
216
|
+
}
|
|
217
|
+
async runStep(pickleStep, testStep) {
|
|
218
|
+
const stepDefinitions = testStep.stepDefinitionIds.map((stepDefinitionId) => {
|
|
219
|
+
return findStepDefinition(stepDefinitionId, this.supportCodeLibrary);
|
|
220
|
+
});
|
|
221
|
+
if (stepDefinitions.length === 0) {
|
|
222
|
+
return {
|
|
223
|
+
status: messages.TestStepResultStatus.UNDEFINED,
|
|
224
|
+
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
else if (stepDefinitions.length > 1) {
|
|
228
|
+
return {
|
|
229
|
+
message: (0, helpers_1.getAmbiguousStepException)(stepDefinitions),
|
|
230
|
+
status: messages.TestStepResultStatus.AMBIGUOUS,
|
|
231
|
+
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
else if (this.isSkippingSteps()) {
|
|
235
|
+
return {
|
|
236
|
+
status: messages.TestStepResultStatus.SKIPPED,
|
|
237
|
+
duration: messages.TimeConversion.millisecondsToDuration(0),
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
let stepResult;
|
|
241
|
+
let stepResults = await this.runStepHooks(this.getBeforeStepHookDefinitions(), pickleStep);
|
|
242
|
+
if ((0, messages_1.getWorstTestStepResult)(stepResults).status !==
|
|
243
|
+
messages.TestStepResultStatus.FAILED) {
|
|
244
|
+
stepResult = await this.invokeStep(pickleStep, stepDefinitions[0]);
|
|
245
|
+
stepResults.push(stepResult);
|
|
246
|
+
}
|
|
247
|
+
const afterStepHookResults = await this.runStepHooks(this.getAfterStepHookDefinitions(), pickleStep, stepResult);
|
|
248
|
+
stepResults = stepResults.concat(afterStepHookResults);
|
|
249
|
+
const finalStepResult = (0, messages_1.getWorstTestStepResult)(stepResults);
|
|
250
|
+
let finalDuration = messages.TimeConversion.millisecondsToDuration(0);
|
|
251
|
+
for (const result of stepResults) {
|
|
252
|
+
finalDuration = messages.TimeConversion.addDurations(finalDuration, result.duration);
|
|
253
|
+
}
|
|
254
|
+
finalStepResult.duration = finalDuration;
|
|
255
|
+
return finalStepResult;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
exports.default = TestCaseRunner;
|
|
259
|
+
function findHookDefinition(id, supportCodeLibrary) {
|
|
260
|
+
return [
|
|
261
|
+
...supportCodeLibrary.beforeTestCaseHookDefinitions,
|
|
262
|
+
...supportCodeLibrary.afterTestCaseHookDefinitions,
|
|
263
|
+
].find((definition) => definition.id === id);
|
|
264
|
+
}
|
|
265
|
+
function findStepDefinition(id, supportCodeLibrary) {
|
|
266
|
+
return supportCodeLibrary.stepDefinitions.find((definition) => definition.id === id);
|
|
267
|
+
}
|
|
268
268
|
//# sourceMappingURL=test_case_runner.js.map
|
package/lib/step_arguments.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import * as messages from '@cucumber/messages';
|
|
2
|
-
export interface IPickleStepArgumentFunctionMap<T> {
|
|
3
|
-
dataTable: (arg: messages.PickleTable) => T;
|
|
4
|
-
docString: (arg: messages.PickleDocString) => T;
|
|
5
|
-
}
|
|
6
|
-
export declare function parseStepArgument<T>(arg: messages.PickleStepArgument, mapping: IPickleStepArgumentFunctionMap<T>): T;
|
|
1
|
+
import * as messages from '@cucumber/messages';
|
|
2
|
+
export interface IPickleStepArgumentFunctionMap<T> {
|
|
3
|
+
dataTable: (arg: messages.PickleTable) => T;
|
|
4
|
+
docString: (arg: messages.PickleDocString) => T;
|
|
5
|
+
}
|
|
6
|
+
export declare function parseStepArgument<T>(arg: messages.PickleStepArgument, mapping: IPickleStepArgumentFunctionMap<T>): T;
|
package/lib/step_arguments.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
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.parseStepArgument = void 0;
|
|
7
|
-
const util_1 = __importDefault(require("util"));
|
|
8
|
-
const value_checker_1 = require("./value_checker");
|
|
9
|
-
function parseStepArgument(arg, mapping) {
|
|
10
|
-
if ((0, value_checker_1.doesHaveValue)(arg.dataTable)) {
|
|
11
|
-
return mapping.dataTable(arg.dataTable);
|
|
12
|
-
}
|
|
13
|
-
else if ((0, value_checker_1.doesHaveValue)(arg.docString)) {
|
|
14
|
-
return mapping.docString(arg.docString);
|
|
15
|
-
}
|
|
16
|
-
throw new Error(`Unknown step argument: ${util_1.default.inspect(arg)}`);
|
|
17
|
-
}
|
|
18
|
-
exports.parseStepArgument = parseStepArgument;
|
|
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.parseStepArgument = void 0;
|
|
7
|
+
const util_1 = __importDefault(require("util"));
|
|
8
|
+
const value_checker_1 = require("./value_checker");
|
|
9
|
+
function parseStepArgument(arg, mapping) {
|
|
10
|
+
if ((0, value_checker_1.doesHaveValue)(arg.dataTable)) {
|
|
11
|
+
return mapping.dataTable(arg.dataTable);
|
|
12
|
+
}
|
|
13
|
+
else if ((0, value_checker_1.doesHaveValue)(arg.docString)) {
|
|
14
|
+
return mapping.docString(arg.docString);
|
|
15
|
+
}
|
|
16
|
+
throw new Error(`Unknown step argument: ${util_1.default.inspect(arg)}`);
|
|
17
|
+
}
|
|
18
|
+
exports.parseStepArgument = parseStepArgument;
|
|
19
19
|
//# sourceMappingURL=step_arguments.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ParameterType } from '@cucumber/cucumber-expressions';
|
|
2
|
-
import { IParameterTypeDefinition } from './types';
|
|
3
|
-
export declare function buildParameterType({ name, regexp, transformer, useForSnippets, preferForRegexpMatch, }: IParameterTypeDefinition<any>): ParameterType<any>;
|
|
1
|
+
import { ParameterType } from '@cucumber/cucumber-expressions';
|
|
2
|
+
import { IParameterTypeDefinition } from './types';
|
|
3
|
+
export declare function buildParameterType({ name, regexp, transformer, useForSnippets, preferForRegexpMatch, }: IParameterTypeDefinition<any>): ParameterType<any>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildParameterType = void 0;
|
|
4
|
-
const cucumber_expressions_1 = require("@cucumber/cucumber-expressions");
|
|
5
|
-
function buildParameterType({ name, regexp, transformer, useForSnippets, preferForRegexpMatch, }) {
|
|
6
|
-
if (typeof useForSnippets !== 'boolean')
|
|
7
|
-
useForSnippets = true;
|
|
8
|
-
if (typeof preferForRegexpMatch !== 'boolean')
|
|
9
|
-
preferForRegexpMatch = false;
|
|
10
|
-
return new cucumber_expressions_1.ParameterType(name, regexp, null, transformer, useForSnippets, preferForRegexpMatch);
|
|
11
|
-
}
|
|
12
|
-
exports.buildParameterType = buildParameterType;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildParameterType = void 0;
|
|
4
|
+
const cucumber_expressions_1 = require("@cucumber/cucumber-expressions");
|
|
5
|
+
function buildParameterType({ name, regexp, transformer, useForSnippets, preferForRegexpMatch, }) {
|
|
6
|
+
if (typeof useForSnippets !== 'boolean')
|
|
7
|
+
useForSnippets = true;
|
|
8
|
+
if (typeof preferForRegexpMatch !== 'boolean')
|
|
9
|
+
preferForRegexpMatch = false;
|
|
10
|
+
return new cucumber_expressions_1.ParameterType(name, regexp, null, transformer, useForSnippets, preferForRegexpMatch);
|
|
11
|
+
}
|
|
12
|
+
exports.buildParameterType = buildParameterType;
|
|
13
13
|
//# sourceMappingURL=build_parameter_type.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { isFileNameInCucumber } from '../filter_stack_trace';
|
|
2
|
-
import { ILineAndUri } from '../types';
|
|
3
|
-
export declare function getDefinitionLineAndUri(cwd: string, isExcluded?: typeof isFileNameInCucumber): ILineAndUri;
|
|
1
|
+
import { isFileNameInCucumber } from '../filter_stack_trace';
|
|
2
|
+
import { ILineAndUri } from '../types';
|
|
3
|
+
export declare function getDefinitionLineAndUri(cwd: string, isExcluded?: typeof isFileNameInCucumber): ILineAndUri;
|