@dev-blinq/cucumber-js 1.0.36 → 1.0.37
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 -65
- package/lib/api/convert_configuration.js.map +1 -1
- 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/run_cucumber.js.map +1 -1
- 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 -177
- package/lib/api/types.js +2 -2
- package/lib/api/types.js.map +1 -1
- package/lib/cli/helpers.d.ts +37 -39
- package/lib/cli/helpers.js +202 -223
- package/lib/cli/helpers.js.map +1 -1
- 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 -63
- package/lib/cli/index.js.map +1 -1
- 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 -102
- package/lib/configuration/argv_parser.js.map +1 -1
- 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 -28
- package/lib/configuration/default_configuration.js.map +1 -1
- 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 -30
- package/lib/configuration/types.js +2 -2
- package/lib/configuration/types.js.map +1 -1
- 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 +9 -0
- package/lib/formatter/{helpers/uploader.js → bvt_formatter.js} +62 -57
- 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/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/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 +95 -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/upload_serivce.js.map +1 -1
- 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 -4
- package/bin/download-install.js +0 -126
- package/lib/formatter/bvt_analysis_formatter.d.ts +0 -18
- package/lib/formatter/bvt_analysis_formatter.js +0 -193
- package/lib/formatter/bvt_analysis_formatter.js.map +0 -1
- package/lib/formatter/helpers/uploader.d.ts +0 -11
- package/lib/formatter/helpers/uploader.js.map +0 -1
package/lib/models/definition.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class Definition {
|
|
4
|
-
constructor({ code, id, line, options, unwrappedCode, uri, }) {
|
|
5
|
-
this.code = code;
|
|
6
|
-
this.id = id;
|
|
7
|
-
this.line = line;
|
|
8
|
-
this.options = options;
|
|
9
|
-
this.unwrappedCode = unwrappedCode;
|
|
10
|
-
this.uri = uri;
|
|
11
|
-
}
|
|
12
|
-
buildInvalidCodeLengthMessage(syncOrPromiseLength, callbackLength) {
|
|
13
|
-
return (`function has ${this.code.length.toString()} arguments` +
|
|
14
|
-
`, should have ${syncOrPromiseLength.toString()} (if synchronous or returning a promise)` +
|
|
15
|
-
` or ${callbackLength.toString()} (if accepting a callback)`);
|
|
16
|
-
}
|
|
17
|
-
baseGetInvalidCodeLengthMessage(parameters) {
|
|
18
|
-
return this.buildInvalidCodeLengthMessage(parameters.length, parameters.length + 1);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
exports.default = Definition;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class Definition {
|
|
4
|
+
constructor({ code, id, line, options, unwrappedCode, uri, }) {
|
|
5
|
+
this.code = code;
|
|
6
|
+
this.id = id;
|
|
7
|
+
this.line = line;
|
|
8
|
+
this.options = options;
|
|
9
|
+
this.unwrappedCode = unwrappedCode;
|
|
10
|
+
this.uri = uri;
|
|
11
|
+
}
|
|
12
|
+
buildInvalidCodeLengthMessage(syncOrPromiseLength, callbackLength) {
|
|
13
|
+
return (`function has ${this.code.length.toString()} arguments` +
|
|
14
|
+
`, should have ${syncOrPromiseLength.toString()} (if synchronous or returning a promise)` +
|
|
15
|
+
` or ${callbackLength.toString()} (if accepting a callback)`);
|
|
16
|
+
}
|
|
17
|
+
baseGetInvalidCodeLengthMessage(parameters) {
|
|
18
|
+
return this.buildInvalidCodeLengthMessage(parameters.length, parameters.length + 1);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = Definition;
|
|
22
22
|
//# sourceMappingURL=definition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type GherkinStepKeyword = 'Unknown' | 'Given' | 'When' | 'Then';
|
|
1
|
+
export type GherkinStepKeyword = 'Unknown' | 'Given' | 'When' | 'Then';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
//# sourceMappingURL=gherkin_step_keyword.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type PickleOrder = 'defined' | 'random' | string;
|
|
1
|
+
export type PickleOrder = 'defined' | 'random' | string;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
//# sourceMappingURL=pickle_order.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import Definition, { IDefinition, IGetInvocationDataRequest, IGetInvocationDataResponse, IStepDefinitionParameters } from './definition';
|
|
2
|
-
import { Expression } from '@cucumber/cucumber-expressions';
|
|
3
|
-
import { GherkinStepKeyword } from './gherkin_step_keyword';
|
|
4
|
-
export default class StepDefinition extends Definition implements IDefinition {
|
|
5
|
-
readonly keyword: GherkinStepKeyword;
|
|
6
|
-
readonly pattern: string | RegExp;
|
|
7
|
-
readonly expression: Expression;
|
|
8
|
-
constructor(data: IStepDefinitionParameters);
|
|
9
|
-
getInvocationParameters({ step, world, }: IGetInvocationDataRequest): Promise<IGetInvocationDataResponse>;
|
|
10
|
-
matchesStepName(stepName: string): boolean;
|
|
11
|
-
}
|
|
1
|
+
import Definition, { IDefinition, IGetInvocationDataRequest, IGetInvocationDataResponse, IStepDefinitionParameters } from './definition';
|
|
2
|
+
import { Expression } from '@cucumber/cucumber-expressions';
|
|
3
|
+
import { GherkinStepKeyword } from './gherkin_step_keyword';
|
|
4
|
+
export default class StepDefinition extends Definition implements IDefinition {
|
|
5
|
+
readonly keyword: GherkinStepKeyword;
|
|
6
|
+
readonly pattern: string | RegExp;
|
|
7
|
+
readonly expression: Expression;
|
|
8
|
+
constructor(data: IStepDefinitionParameters);
|
|
9
|
+
getInvocationParameters({ step, world, }: IGetInvocationDataRequest): Promise<IGetInvocationDataResponse>;
|
|
10
|
+
matchesStepName(stepName: string): boolean;
|
|
11
|
+
}
|
|
@@ -1,37 +1,37 @@
|
|
|
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
|
-
const data_table_1 = __importDefault(require("./data_table"));
|
|
7
|
-
const definition_1 = __importDefault(require("./definition"));
|
|
8
|
-
const step_arguments_1 = require("../step_arguments");
|
|
9
|
-
const value_checker_1 = require("../value_checker");
|
|
10
|
-
class StepDefinition extends definition_1.default {
|
|
11
|
-
constructor(data) {
|
|
12
|
-
super(data);
|
|
13
|
-
this.keyword = data.keyword;
|
|
14
|
-
this.pattern = data.pattern;
|
|
15
|
-
this.expression = data.expression;
|
|
16
|
-
}
|
|
17
|
-
async getInvocationParameters({ step, world, }) {
|
|
18
|
-
const parameters = await Promise.all(this.expression.match(step.text).map((arg) => arg.getValue(world)));
|
|
19
|
-
if ((0, value_checker_1.doesHaveValue)(step.argument)) {
|
|
20
|
-
const argumentParamater = (0, step_arguments_1.parseStepArgument)(step.argument, {
|
|
21
|
-
dataTable: (arg) => new data_table_1.default(arg),
|
|
22
|
-
docString: (arg) => arg.content,
|
|
23
|
-
});
|
|
24
|
-
parameters.push(argumentParamater);
|
|
25
|
-
}
|
|
26
|
-
return {
|
|
27
|
-
getInvalidCodeLengthMessage: () => this.baseGetInvalidCodeLengthMessage(parameters),
|
|
28
|
-
parameters,
|
|
29
|
-
validCodeLengths: [parameters.length, parameters.length + 1],
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
matchesStepName(stepName) {
|
|
33
|
-
return (0, value_checker_1.doesHaveValue)(this.expression.match(stepName));
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.default = StepDefinition;
|
|
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
|
+
const data_table_1 = __importDefault(require("./data_table"));
|
|
7
|
+
const definition_1 = __importDefault(require("./definition"));
|
|
8
|
+
const step_arguments_1 = require("../step_arguments");
|
|
9
|
+
const value_checker_1 = require("../value_checker");
|
|
10
|
+
class StepDefinition extends definition_1.default {
|
|
11
|
+
constructor(data) {
|
|
12
|
+
super(data);
|
|
13
|
+
this.keyword = data.keyword;
|
|
14
|
+
this.pattern = data.pattern;
|
|
15
|
+
this.expression = data.expression;
|
|
16
|
+
}
|
|
17
|
+
async getInvocationParameters({ step, world, }) {
|
|
18
|
+
const parameters = await Promise.all(this.expression.match(step.text).map((arg) => arg.getValue(world)));
|
|
19
|
+
if ((0, value_checker_1.doesHaveValue)(step.argument)) {
|
|
20
|
+
const argumentParamater = (0, step_arguments_1.parseStepArgument)(step.argument, {
|
|
21
|
+
dataTable: (arg) => new data_table_1.default(arg),
|
|
22
|
+
docString: (arg) => arg.content,
|
|
23
|
+
});
|
|
24
|
+
parameters.push(argumentParamater);
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
getInvalidCodeLengthMessage: () => this.baseGetInvalidCodeLengthMessage(parameters),
|
|
28
|
+
parameters,
|
|
29
|
+
validCodeLengths: [parameters.length, parameters.length + 1],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
matchesStepName(stepName) {
|
|
33
|
+
return (0, value_checker_1.doesHaveValue)(this.expression.match(stepName));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.default = StepDefinition;
|
|
37
37
|
//# sourceMappingURL=step_definition.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import Definition, { IDefinition, IDefinitionParameters, IGetInvocationDataRequest, IGetInvocationDataResponse, IHookDefinitionOptions } from './definition';
|
|
2
|
-
import * as messages from '@cucumber/messages';
|
|
3
|
-
export default class TestCaseHookDefinition extends Definition implements IDefinition {
|
|
4
|
-
readonly name: string;
|
|
5
|
-
readonly tagExpression: string;
|
|
6
|
-
private readonly pickleTagFilter;
|
|
7
|
-
constructor(data: IDefinitionParameters<IHookDefinitionOptions>);
|
|
8
|
-
appliesToTestCase(pickle: messages.Pickle): boolean;
|
|
9
|
-
getInvocationParameters({ hookParameter, }: IGetInvocationDataRequest): Promise<IGetInvocationDataResponse>;
|
|
10
|
-
}
|
|
1
|
+
import Definition, { IDefinition, IDefinitionParameters, IGetInvocationDataRequest, IGetInvocationDataResponse, IHookDefinitionOptions } from './definition';
|
|
2
|
+
import * as messages from '@cucumber/messages';
|
|
3
|
+
export default class TestCaseHookDefinition extends Definition implements IDefinition {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly tagExpression: string;
|
|
6
|
+
private readonly pickleTagFilter;
|
|
7
|
+
constructor(data: IDefinitionParameters<IHookDefinitionOptions>);
|
|
8
|
+
appliesToTestCase(pickle: messages.Pickle): boolean;
|
|
9
|
+
getInvocationParameters({ hookParameter, }: IGetInvocationDataRequest): Promise<IGetInvocationDataResponse>;
|
|
10
|
+
}
|
|
@@ -1,27 +1,27 @@
|
|
|
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
|
-
const pickle_filter_1 = require("../pickle_filter");
|
|
7
|
-
const definition_1 = __importDefault(require("./definition"));
|
|
8
|
-
class TestCaseHookDefinition extends definition_1.default {
|
|
9
|
-
constructor(data) {
|
|
10
|
-
super(data);
|
|
11
|
-
this.name = data.options.name;
|
|
12
|
-
this.tagExpression = data.options.tags;
|
|
13
|
-
this.pickleTagFilter = new pickle_filter_1.PickleTagFilter(data.options.tags);
|
|
14
|
-
}
|
|
15
|
-
appliesToTestCase(pickle) {
|
|
16
|
-
return this.pickleTagFilter.matchesAllTagExpressions(pickle);
|
|
17
|
-
}
|
|
18
|
-
async getInvocationParameters({ hookParameter, }) {
|
|
19
|
-
return await Promise.resolve({
|
|
20
|
-
getInvalidCodeLengthMessage: () => this.buildInvalidCodeLengthMessage('0 or 1', '2'),
|
|
21
|
-
parameters: [hookParameter],
|
|
22
|
-
validCodeLengths: [0, 1, 2],
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
exports.default = TestCaseHookDefinition;
|
|
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
|
+
const pickle_filter_1 = require("../pickle_filter");
|
|
7
|
+
const definition_1 = __importDefault(require("./definition"));
|
|
8
|
+
class TestCaseHookDefinition extends definition_1.default {
|
|
9
|
+
constructor(data) {
|
|
10
|
+
super(data);
|
|
11
|
+
this.name = data.options.name;
|
|
12
|
+
this.tagExpression = data.options.tags;
|
|
13
|
+
this.pickleTagFilter = new pickle_filter_1.PickleTagFilter(data.options.tags);
|
|
14
|
+
}
|
|
15
|
+
appliesToTestCase(pickle) {
|
|
16
|
+
return this.pickleTagFilter.matchesAllTagExpressions(pickle);
|
|
17
|
+
}
|
|
18
|
+
async getInvocationParameters({ hookParameter, }) {
|
|
19
|
+
return await Promise.resolve({
|
|
20
|
+
getInvalidCodeLengthMessage: () => this.buildInvalidCodeLengthMessage('0 or 1', '2'),
|
|
21
|
+
parameters: [hookParameter],
|
|
22
|
+
validCodeLengths: [0, 1, 2],
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.default = TestCaseHookDefinition;
|
|
27
27
|
//# sourceMappingURL=test_case_hook_definition.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import Definition from './definition';
|
|
2
|
-
export default class TestRunHookDefinition extends Definition {
|
|
3
|
-
}
|
|
1
|
+
import Definition from './definition';
|
|
2
|
+
export default class TestRunHookDefinition extends Definition {
|
|
3
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
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
|
-
const definition_1 = __importDefault(require("./definition"));
|
|
7
|
-
class TestRunHookDefinition extends definition_1.default {
|
|
8
|
-
}
|
|
9
|
-
exports.default = TestRunHookDefinition;
|
|
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
|
+
const definition_1 = __importDefault(require("./definition"));
|
|
7
|
+
class TestRunHookDefinition extends definition_1.default {
|
|
8
|
+
}
|
|
9
|
+
exports.default = TestRunHookDefinition;
|
|
10
10
|
//# sourceMappingURL=test_run_hook_definition.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import Definition, { IDefinition, IGetInvocationDataResponse, IGetInvocationDataRequest, IDefinitionParameters, IHookDefinitionOptions } from './definition';
|
|
2
|
-
import * as messages from '@cucumber/messages';
|
|
3
|
-
export default class TestStepHookDefinition extends Definition implements IDefinition {
|
|
4
|
-
readonly tagExpression: string;
|
|
5
|
-
private readonly pickleTagFilter;
|
|
6
|
-
constructor(data: IDefinitionParameters<IHookDefinitionOptions>);
|
|
7
|
-
appliesToTestCase(pickle: messages.Pickle): boolean;
|
|
8
|
-
getInvocationParameters({ hookParameter, }: IGetInvocationDataRequest): Promise<IGetInvocationDataResponse>;
|
|
9
|
-
}
|
|
1
|
+
import Definition, { IDefinition, IGetInvocationDataResponse, IGetInvocationDataRequest, IDefinitionParameters, IHookDefinitionOptions } from './definition';
|
|
2
|
+
import * as messages from '@cucumber/messages';
|
|
3
|
+
export default class TestStepHookDefinition extends Definition implements IDefinition {
|
|
4
|
+
readonly tagExpression: string;
|
|
5
|
+
private readonly pickleTagFilter;
|
|
6
|
+
constructor(data: IDefinitionParameters<IHookDefinitionOptions>);
|
|
7
|
+
appliesToTestCase(pickle: messages.Pickle): boolean;
|
|
8
|
+
getInvocationParameters({ hookParameter, }: IGetInvocationDataRequest): Promise<IGetInvocationDataResponse>;
|
|
9
|
+
}
|
|
@@ -1,26 +1,26 @@
|
|
|
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
|
-
const pickle_filter_1 = require("../pickle_filter");
|
|
7
|
-
const definition_1 = __importDefault(require("./definition"));
|
|
8
|
-
class TestStepHookDefinition extends definition_1.default {
|
|
9
|
-
constructor(data) {
|
|
10
|
-
super(data);
|
|
11
|
-
this.tagExpression = data.options.tags;
|
|
12
|
-
this.pickleTagFilter = new pickle_filter_1.PickleTagFilter(data.options.tags);
|
|
13
|
-
}
|
|
14
|
-
appliesToTestCase(pickle) {
|
|
15
|
-
return this.pickleTagFilter.matchesAllTagExpressions(pickle);
|
|
16
|
-
}
|
|
17
|
-
async getInvocationParameters({ hookParameter, }) {
|
|
18
|
-
return await Promise.resolve({
|
|
19
|
-
getInvalidCodeLengthMessage: () => this.buildInvalidCodeLengthMessage('0 or 1', '2'),
|
|
20
|
-
parameters: [hookParameter],
|
|
21
|
-
validCodeLengths: [0, 1, 2],
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
exports.default = TestStepHookDefinition;
|
|
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
|
+
const pickle_filter_1 = require("../pickle_filter");
|
|
7
|
+
const definition_1 = __importDefault(require("./definition"));
|
|
8
|
+
class TestStepHookDefinition extends definition_1.default {
|
|
9
|
+
constructor(data) {
|
|
10
|
+
super(data);
|
|
11
|
+
this.tagExpression = data.options.tags;
|
|
12
|
+
this.pickleTagFilter = new pickle_filter_1.PickleTagFilter(data.options.tags);
|
|
13
|
+
}
|
|
14
|
+
appliesToTestCase(pickle) {
|
|
15
|
+
return this.pickleTagFilter.matchesAllTagExpressions(pickle);
|
|
16
|
+
}
|
|
17
|
+
async getInvocationParameters({ hookParameter, }) {
|
|
18
|
+
return await Promise.resolve({
|
|
19
|
+
getInvalidCodeLengthMessage: () => this.buildInvalidCodeLengthMessage('0 or 1', '2'),
|
|
20
|
+
parameters: [hookParameter],
|
|
21
|
+
validCodeLengths: [0, 1, 2],
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.default = TestStepHookDefinition;
|
|
26
26
|
//# sourceMappingURL=test_step_hook_definition.js.map
|
package/lib/pickle_filter.d.ts
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
import * as messages from '@cucumber/messages';
|
|
2
|
-
import IGherkinDocument = messages.GherkinDocument;
|
|
3
|
-
import IPickle = messages.Pickle;
|
|
4
|
-
export interface IPickleFilterOptions {
|
|
5
|
-
cwd: string;
|
|
6
|
-
featurePaths?: string[];
|
|
7
|
-
names?: string[];
|
|
8
|
-
tagExpression?: string;
|
|
9
|
-
}
|
|
10
|
-
export interface IMatchesAnyLineRequest {
|
|
11
|
-
gherkinDocument: messages.GherkinDocument;
|
|
12
|
-
pickle: messages.Pickle;
|
|
13
|
-
}
|
|
14
|
-
export default class PickleFilter {
|
|
15
|
-
private readonly lineFilter;
|
|
16
|
-
private readonly nameFilter;
|
|
17
|
-
private readonly tagFilter;
|
|
18
|
-
constructor({ cwd, featurePaths, names, tagExpression, }: IPickleFilterOptions);
|
|
19
|
-
matches({ gherkinDocument, pickle, }: {
|
|
20
|
-
gherkinDocument: IGherkinDocument;
|
|
21
|
-
pickle: IPickle;
|
|
22
|
-
}): boolean;
|
|
23
|
-
}
|
|
24
|
-
export declare class PickleLineFilter {
|
|
25
|
-
private readonly featureUriToLinesMapping;
|
|
26
|
-
constructor(cwd: string, featurePaths?: string[]);
|
|
27
|
-
getFeatureUriToLinesMapping({ cwd, featurePaths, }: {
|
|
28
|
-
cwd: string;
|
|
29
|
-
featurePaths: string[];
|
|
30
|
-
}): Record<string, number[]>;
|
|
31
|
-
matchesAnyLine({ gherkinDocument, pickle }: IMatchesAnyLineRequest): boolean;
|
|
32
|
-
}
|
|
33
|
-
export declare class PickleNameFilter {
|
|
34
|
-
private readonly names;
|
|
35
|
-
constructor(names?: string[]);
|
|
36
|
-
matchesAnyName(pickle: messages.Pickle): boolean;
|
|
37
|
-
}
|
|
38
|
-
export declare class PickleTagFilter {
|
|
39
|
-
private readonly tagExpressionNode;
|
|
40
|
-
constructor(tagExpression: string);
|
|
41
|
-
matchesAllTagExpressions(pickle: messages.Pickle): boolean;
|
|
42
|
-
}
|
|
1
|
+
import * as messages from '@cucumber/messages';
|
|
2
|
+
import IGherkinDocument = messages.GherkinDocument;
|
|
3
|
+
import IPickle = messages.Pickle;
|
|
4
|
+
export interface IPickleFilterOptions {
|
|
5
|
+
cwd: string;
|
|
6
|
+
featurePaths?: string[];
|
|
7
|
+
names?: string[];
|
|
8
|
+
tagExpression?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface IMatchesAnyLineRequest {
|
|
11
|
+
gherkinDocument: messages.GherkinDocument;
|
|
12
|
+
pickle: messages.Pickle;
|
|
13
|
+
}
|
|
14
|
+
export default class PickleFilter {
|
|
15
|
+
private readonly lineFilter;
|
|
16
|
+
private readonly nameFilter;
|
|
17
|
+
private readonly tagFilter;
|
|
18
|
+
constructor({ cwd, featurePaths, names, tagExpression, }: IPickleFilterOptions);
|
|
19
|
+
matches({ gherkinDocument, pickle, }: {
|
|
20
|
+
gherkinDocument: IGherkinDocument;
|
|
21
|
+
pickle: IPickle;
|
|
22
|
+
}): boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare class PickleLineFilter {
|
|
25
|
+
private readonly featureUriToLinesMapping;
|
|
26
|
+
constructor(cwd: string, featurePaths?: string[]);
|
|
27
|
+
getFeatureUriToLinesMapping({ cwd, featurePaths, }: {
|
|
28
|
+
cwd: string;
|
|
29
|
+
featurePaths: string[];
|
|
30
|
+
}): Record<string, number[]>;
|
|
31
|
+
matchesAnyLine({ gherkinDocument, pickle }: IMatchesAnyLineRequest): boolean;
|
|
32
|
+
}
|
|
33
|
+
export declare class PickleNameFilter {
|
|
34
|
+
private readonly names;
|
|
35
|
+
constructor(names?: string[]);
|
|
36
|
+
matchesAnyName(pickle: messages.Pickle): boolean;
|
|
37
|
+
}
|
|
38
|
+
export declare class PickleTagFilter {
|
|
39
|
+
private readonly tagExpressionNode;
|
|
40
|
+
constructor(tagExpression: string);
|
|
41
|
+
matchesAllTagExpressions(pickle: messages.Pickle): boolean;
|
|
42
|
+
}
|
package/lib/pickle_filter.js
CHANGED
|
@@ -1,99 +1,99 @@
|
|
|
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.PickleTagFilter = exports.PickleNameFilter = exports.PickleLineFilter = void 0;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const tag_expressions_1 = __importDefault(require("@cucumber/tag-expressions"));
|
|
9
|
-
const gherkin_document_parser_1 = require("./formatter/helpers/gherkin_document_parser");
|
|
10
|
-
const value_checker_1 = require("./value_checker");
|
|
11
|
-
const FEATURE_LINENUM_REGEXP = /^(.*?)((?::[\d]+)+)?$/;
|
|
12
|
-
class PickleFilter {
|
|
13
|
-
constructor({ cwd, featurePaths, names, tagExpression, }) {
|
|
14
|
-
this.lineFilter = new PickleLineFilter(cwd, featurePaths);
|
|
15
|
-
this.nameFilter = new PickleNameFilter(names);
|
|
16
|
-
this.tagFilter = new PickleTagFilter(tagExpression);
|
|
17
|
-
}
|
|
18
|
-
matches({ gherkinDocument, pickle, }) {
|
|
19
|
-
return (this.lineFilter.matchesAnyLine({ gherkinDocument, pickle }) &&
|
|
20
|
-
this.nameFilter.matchesAnyName(pickle) &&
|
|
21
|
-
this.tagFilter.matchesAllTagExpressions(pickle));
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.default = PickleFilter;
|
|
25
|
-
class PickleLineFilter {
|
|
26
|
-
constructor(cwd, featurePaths = []) {
|
|
27
|
-
this.featureUriToLinesMapping = this.getFeatureUriToLinesMapping({
|
|
28
|
-
cwd,
|
|
29
|
-
featurePaths,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
getFeatureUriToLinesMapping({ cwd, featurePaths, }) {
|
|
33
|
-
const mapping = {};
|
|
34
|
-
featurePaths.forEach((featurePath) => {
|
|
35
|
-
const match = FEATURE_LINENUM_REGEXP.exec(featurePath);
|
|
36
|
-
if ((0, value_checker_1.doesHaveValue)(match)) {
|
|
37
|
-
let uri = match[1];
|
|
38
|
-
if (path_1.default.isAbsolute(uri)) {
|
|
39
|
-
uri = path_1.default.relative(cwd, uri);
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
uri = path_1.default.normalize(uri);
|
|
43
|
-
}
|
|
44
|
-
const linesExpression = match[2];
|
|
45
|
-
if ((0, value_checker_1.doesHaveValue)(linesExpression)) {
|
|
46
|
-
if ((0, value_checker_1.doesNotHaveValue)(mapping[uri])) {
|
|
47
|
-
mapping[uri] = [];
|
|
48
|
-
}
|
|
49
|
-
linesExpression
|
|
50
|
-
.slice(1)
|
|
51
|
-
.split(':')
|
|
52
|
-
.forEach((line) => {
|
|
53
|
-
mapping[uri].push(parseInt(line));
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
return mapping;
|
|
59
|
-
}
|
|
60
|
-
matchesAnyLine({ gherkinDocument, pickle }) {
|
|
61
|
-
const uri = path_1.default.normalize(pickle.uri);
|
|
62
|
-
const linesToMatch = this.featureUriToLinesMapping[uri];
|
|
63
|
-
if ((0, value_checker_1.doesHaveValue)(linesToMatch)) {
|
|
64
|
-
const gherkinScenarioLocationMap = (0, gherkin_document_parser_1.getGherkinScenarioLocationMap)(gherkinDocument);
|
|
65
|
-
const pickleLines = new Set(pickle.astNodeIds.map((sourceId) => gherkinScenarioLocationMap[sourceId].line));
|
|
66
|
-
const linesIntersection = linesToMatch.filter((x) => pickleLines.has(x));
|
|
67
|
-
return linesIntersection.length > 0;
|
|
68
|
-
}
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
exports.PickleLineFilter = PickleLineFilter;
|
|
73
|
-
class PickleNameFilter {
|
|
74
|
-
constructor(names = []) {
|
|
75
|
-
this.names = names;
|
|
76
|
-
}
|
|
77
|
-
matchesAnyName(pickle) {
|
|
78
|
-
if (this.names.length === 0) {
|
|
79
|
-
return true;
|
|
80
|
-
}
|
|
81
|
-
return this.names.some((name) => pickle.name.match(name));
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
exports.PickleNameFilter = PickleNameFilter;
|
|
85
|
-
class PickleTagFilter {
|
|
86
|
-
constructor(tagExpression) {
|
|
87
|
-
if ((0, value_checker_1.doesHaveValue)(tagExpression) && tagExpression !== '') {
|
|
88
|
-
this.tagExpressionNode = (0, tag_expressions_1.default)(tagExpression);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
matchesAllTagExpressions(pickle) {
|
|
92
|
-
if ((0, value_checker_1.doesNotHaveValue)(this.tagExpressionNode)) {
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
return this.tagExpressionNode.evaluate(pickle.tags.map((x) => x.name));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
exports.PickleTagFilter = PickleTagFilter;
|
|
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.PickleTagFilter = exports.PickleNameFilter = exports.PickleLineFilter = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const tag_expressions_1 = __importDefault(require("@cucumber/tag-expressions"));
|
|
9
|
+
const gherkin_document_parser_1 = require("./formatter/helpers/gherkin_document_parser");
|
|
10
|
+
const value_checker_1 = require("./value_checker");
|
|
11
|
+
const FEATURE_LINENUM_REGEXP = /^(.*?)((?::[\d]+)+)?$/;
|
|
12
|
+
class PickleFilter {
|
|
13
|
+
constructor({ cwd, featurePaths, names, tagExpression, }) {
|
|
14
|
+
this.lineFilter = new PickleLineFilter(cwd, featurePaths);
|
|
15
|
+
this.nameFilter = new PickleNameFilter(names);
|
|
16
|
+
this.tagFilter = new PickleTagFilter(tagExpression);
|
|
17
|
+
}
|
|
18
|
+
matches({ gherkinDocument, pickle, }) {
|
|
19
|
+
return (this.lineFilter.matchesAnyLine({ gherkinDocument, pickle }) &&
|
|
20
|
+
this.nameFilter.matchesAnyName(pickle) &&
|
|
21
|
+
this.tagFilter.matchesAllTagExpressions(pickle));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.default = PickleFilter;
|
|
25
|
+
class PickleLineFilter {
|
|
26
|
+
constructor(cwd, featurePaths = []) {
|
|
27
|
+
this.featureUriToLinesMapping = this.getFeatureUriToLinesMapping({
|
|
28
|
+
cwd,
|
|
29
|
+
featurePaths,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
getFeatureUriToLinesMapping({ cwd, featurePaths, }) {
|
|
33
|
+
const mapping = {};
|
|
34
|
+
featurePaths.forEach((featurePath) => {
|
|
35
|
+
const match = FEATURE_LINENUM_REGEXP.exec(featurePath);
|
|
36
|
+
if ((0, value_checker_1.doesHaveValue)(match)) {
|
|
37
|
+
let uri = match[1];
|
|
38
|
+
if (path_1.default.isAbsolute(uri)) {
|
|
39
|
+
uri = path_1.default.relative(cwd, uri);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
uri = path_1.default.normalize(uri);
|
|
43
|
+
}
|
|
44
|
+
const linesExpression = match[2];
|
|
45
|
+
if ((0, value_checker_1.doesHaveValue)(linesExpression)) {
|
|
46
|
+
if ((0, value_checker_1.doesNotHaveValue)(mapping[uri])) {
|
|
47
|
+
mapping[uri] = [];
|
|
48
|
+
}
|
|
49
|
+
linesExpression
|
|
50
|
+
.slice(1)
|
|
51
|
+
.split(':')
|
|
52
|
+
.forEach((line) => {
|
|
53
|
+
mapping[uri].push(parseInt(line));
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
return mapping;
|
|
59
|
+
}
|
|
60
|
+
matchesAnyLine({ gherkinDocument, pickle }) {
|
|
61
|
+
const uri = path_1.default.normalize(pickle.uri);
|
|
62
|
+
const linesToMatch = this.featureUriToLinesMapping[uri];
|
|
63
|
+
if ((0, value_checker_1.doesHaveValue)(linesToMatch)) {
|
|
64
|
+
const gherkinScenarioLocationMap = (0, gherkin_document_parser_1.getGherkinScenarioLocationMap)(gherkinDocument);
|
|
65
|
+
const pickleLines = new Set(pickle.astNodeIds.map((sourceId) => gherkinScenarioLocationMap[sourceId].line));
|
|
66
|
+
const linesIntersection = linesToMatch.filter((x) => pickleLines.has(x));
|
|
67
|
+
return linesIntersection.length > 0;
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.PickleLineFilter = PickleLineFilter;
|
|
73
|
+
class PickleNameFilter {
|
|
74
|
+
constructor(names = []) {
|
|
75
|
+
this.names = names;
|
|
76
|
+
}
|
|
77
|
+
matchesAnyName(pickle) {
|
|
78
|
+
if (this.names.length === 0) {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
return this.names.some((name) => pickle.name.match(name));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.PickleNameFilter = PickleNameFilter;
|
|
85
|
+
class PickleTagFilter {
|
|
86
|
+
constructor(tagExpression) {
|
|
87
|
+
if ((0, value_checker_1.doesHaveValue)(tagExpression) && tagExpression !== '') {
|
|
88
|
+
this.tagExpressionNode = (0, tag_expressions_1.default)(tagExpression);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
matchesAllTagExpressions(pickle) {
|
|
92
|
+
if ((0, value_checker_1.doesNotHaveValue)(this.tagExpressionNode)) {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
return this.tagExpressionNode.evaluate(pickle.tags.map((x) => x.name));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.PickleTagFilter = PickleTagFilter;
|
|
99
99
|
//# sourceMappingURL=pickle_filter.js.map
|
package/lib/plugin/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './types';
|
|
2
|
-
export * from './plugin_manager';
|
|
1
|
+
export * from './types';
|
|
2
|
+
export * from './plugin_manager';
|