@dev-blinq/cucumber-js 1.0.10 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/bin/cucumber-js +0 -0
  2. package/bin/cucumber.js +0 -0
  3. package/lib/api/console_logger.d.ts +12 -12
  4. package/lib/api/console_logger.js +23 -23
  5. package/lib/api/convert_configuration.d.ts +4 -4
  6. package/lib/api/convert_configuration.js +64 -64
  7. package/lib/api/environment.d.ts +2 -2
  8. package/lib/api/environment.js +13 -13
  9. package/lib/api/formatters.d.ts +20 -20
  10. package/lib/api/formatters.js +60 -60
  11. package/lib/api/gherkin.d.ts +21 -21
  12. package/lib/api/gherkin.js +99 -99
  13. package/lib/api/index.d.ts +12 -12
  14. package/lib/api/index.js +27 -27
  15. package/lib/api/load_configuration.d.ts +9 -9
  16. package/lib/api/load_configuration.js +40 -40
  17. package/lib/api/load_sources.d.ts +9 -9
  18. package/lib/api/load_sources.js +52 -52
  19. package/lib/api/load_support.d.ts +10 -10
  20. package/lib/api/load_support.js +29 -29
  21. package/lib/api/paths.d.ts +8 -8
  22. package/lib/api/paths.js +101 -101
  23. package/lib/api/plugins.d.ts +4 -4
  24. package/lib/api/plugins.js +18 -18
  25. package/lib/api/run_cucumber.d.ts +11 -11
  26. package/lib/api/run_cucumber.js +114 -114
  27. package/lib/api/runtime.d.ts +21 -21
  28. package/lib/api/runtime.js +35 -35
  29. package/lib/api/support.d.ts +9 -9
  30. package/lib/api/support.js +25 -25
  31. package/lib/api/test_helpers.d.ts +3 -3
  32. package/lib/api/test_helpers.js +30 -30
  33. package/lib/api/types.d.ts +175 -175
  34. package/lib/api/types.js +2 -2
  35. package/lib/cli/helpers.d.ts +37 -37
  36. package/lib/cli/helpers.js +202 -202
  37. package/lib/cli/i18n.d.ts +2 -2
  38. package/lib/cli/i18n.js +69 -69
  39. package/lib/cli/index.d.ts +21 -21
  40. package/lib/cli/index.js +58 -58
  41. package/lib/cli/install_validator.d.ts +1 -1
  42. package/lib/cli/install_validator.js +13 -13
  43. package/lib/cli/run.d.ts +1 -1
  44. package/lib/cli/run.js +43 -43
  45. package/lib/cli/validate_node_engine_version.d.ts +10 -10
  46. package/lib/cli/validate_node_engine_version.js +23 -23
  47. package/lib/configuration/argv_parser.d.ts +20 -20
  48. package/lib/configuration/argv_parser.js +100 -100
  49. package/lib/configuration/check_schema.d.ts +2 -2
  50. package/lib/configuration/check_schema.js +59 -59
  51. package/lib/configuration/default_configuration.d.ts +2 -2
  52. package/lib/configuration/default_configuration.js +26 -26
  53. package/lib/configuration/from_file.d.ts +3 -3
  54. package/lib/configuration/from_file.js +84 -84
  55. package/lib/configuration/helpers.d.ts +1 -1
  56. package/lib/configuration/helpers.js +10 -10
  57. package/lib/configuration/index.d.ts +7 -7
  58. package/lib/configuration/index.js +28 -28
  59. package/lib/configuration/locate_file.d.ts +1 -1
  60. package/lib/configuration/locate_file.js +20 -20
  61. package/lib/configuration/merge_configurations.d.ts +2 -2
  62. package/lib/configuration/merge_configurations.js +47 -47
  63. package/lib/configuration/option_splitter.d.ts +3 -3
  64. package/lib/configuration/option_splitter.js +22 -22
  65. package/lib/configuration/types.d.ts +28 -28
  66. package/lib/configuration/types.js +2 -2
  67. package/lib/configuration/validate_configuration.d.ts +3 -3
  68. package/lib/configuration/validate_configuration.js +12 -12
  69. package/lib/filter_stack_trace.d.ts +3 -3
  70. package/lib/filter_stack_trace.js +37 -37
  71. package/lib/formatter/builder.d.ts +37 -37
  72. package/lib/formatter/builder.js +100 -100
  73. package/lib/formatter/bvt_formatter.d.ts +9 -9
  74. package/lib/formatter/bvt_formatter.js +61 -62
  75. package/lib/formatter/bvt_formatter.js.map +1 -1
  76. package/lib/formatter/feature_data_format.d.ts +14 -14
  77. package/lib/formatter/feature_data_format.js +80 -80
  78. package/lib/formatter/fixtures/typescript.d.ts +2 -2
  79. package/lib/formatter/fixtures/typescript.js +5 -5
  80. package/lib/formatter/get_color_fns.d.ts +15 -15
  81. package/lib/formatter/get_color_fns.js +55 -55
  82. package/lib/formatter/helpers/duration_helpers.d.ts +2 -2
  83. package/lib/formatter/helpers/duration_helpers.js +8 -8
  84. package/lib/formatter/helpers/event_data_collector.d.ts +30 -30
  85. package/lib/formatter/helpers/event_data_collector.js +125 -125
  86. package/lib/formatter/helpers/formatters.d.ts +6 -6
  87. package/lib/formatter/helpers/formatters.js +44 -44
  88. package/lib/formatter/helpers/gherkin_document_parser.d.ts +5 -5
  89. package/lib/formatter/helpers/gherkin_document_parser.js +65 -65
  90. package/lib/formatter/helpers/index.d.ts +10 -10
  91. package/lib/formatter/helpers/index.js +51 -51
  92. package/lib/formatter/helpers/issue_helpers.d.ts +19 -19
  93. package/lib/formatter/helpers/issue_helpers.js +58 -58
  94. package/lib/formatter/helpers/keyword_type.d.ts +11 -11
  95. package/lib/formatter/helpers/keyword_type.js +31 -31
  96. package/lib/formatter/helpers/location_helpers.d.ts +2 -2
  97. package/lib/formatter/helpers/location_helpers.js +16 -16
  98. package/lib/formatter/helpers/pickle_parser.d.ts +17 -17
  99. package/lib/formatter/helpers/pickle_parser.js +27 -27
  100. package/lib/formatter/helpers/report_generator.d.ts +91 -91
  101. package/lib/formatter/helpers/report_generator.js +247 -250
  102. package/lib/formatter/helpers/report_generator.js.map +1 -1
  103. package/lib/formatter/helpers/step_argument_formatter.d.ts +2 -2
  104. package/lib/formatter/helpers/step_argument_formatter.js +47 -47
  105. package/lib/formatter/helpers/summary_helpers.d.ts +9 -9
  106. package/lib/formatter/helpers/summary_helpers.js +95 -95
  107. package/lib/formatter/helpers/test_case_attempt_formatter.d.ts +12 -12
  108. package/lib/formatter/helpers/test_case_attempt_formatter.js +113 -113
  109. package/lib/formatter/helpers/test_case_attempt_parser.d.ts +32 -32
  110. package/lib/formatter/helpers/test_case_attempt_parser.js +134 -134
  111. package/lib/formatter/helpers/upload_serivce.d.ts +9 -9
  112. package/lib/formatter/helpers/upload_serivce.js +46 -46
  113. package/lib/formatter/helpers/upload_serivce.js.map +1 -1
  114. package/lib/formatter/helpers/usage_helpers/index.d.ts +23 -23
  115. package/lib/formatter/helpers/usage_helpers/index.js +110 -110
  116. package/lib/formatter/html_formatter.d.ts +7 -7
  117. package/lib/formatter/html_formatter.js +29 -29
  118. package/lib/formatter/index.d.ts +53 -53
  119. package/lib/formatter/index.js +20 -20
  120. package/lib/formatter/json_formatter.d.ts +78 -78
  121. package/lib/formatter/json_formatter.js +229 -229
  122. package/lib/formatter/junit_formatter.d.ts +17 -17
  123. package/lib/formatter/junit_formatter.js +180 -180
  124. package/lib/formatter/message_formatter.d.ts +5 -5
  125. package/lib/formatter/message_formatter.js +14 -14
  126. package/lib/formatter/progress_bar_formatter.d.ts +18 -18
  127. package/lib/formatter/progress_bar_formatter.js +98 -98
  128. package/lib/formatter/progress_formatter.d.ts +9 -9
  129. package/lib/formatter/progress_formatter.js +58 -58
  130. package/lib/formatter/rerun_formatter.d.ts +13 -13
  131. package/lib/formatter/rerun_formatter.js +79 -79
  132. package/lib/formatter/snippets_formatter.d.ts +6 -6
  133. package/lib/formatter/snippets_formatter.js +60 -60
  134. package/lib/formatter/step_definition_snippet_builder/index.d.ts +20 -20
  135. package/lib/formatter/step_definition_snippet_builder/index.js +45 -45
  136. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.d.ts +7 -7
  137. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js +45 -45
  138. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.d.ts +16 -16
  139. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js +10 -10
  140. package/lib/formatter/summary_formatter.d.ts +14 -14
  141. package/lib/formatter/summary_formatter.js +67 -67
  142. package/lib/formatter/usage_formatter.d.ts +6 -6
  143. package/lib/formatter/usage_formatter.js +97 -97
  144. package/lib/formatter/usage_json_formatter.d.ts +7 -7
  145. package/lib/formatter/usage_json_formatter.js +33 -33
  146. package/lib/index.d.ts +58 -58
  147. package/lib/index.js +108 -108
  148. package/lib/logger.d.ts +5 -5
  149. package/lib/logger.js +2 -2
  150. package/lib/models/data_table.d.ts +10 -10
  151. package/lib/models/data_table.js +45 -45
  152. package/lib/models/definition.d.ts +55 -55
  153. package/lib/models/definition.js +21 -21
  154. package/lib/models/gherkin_step_keyword.d.ts +1 -1
  155. package/lib/models/gherkin_step_keyword.js +2 -2
  156. package/lib/models/pickle_order.d.ts +1 -1
  157. package/lib/models/pickle_order.js +2 -2
  158. package/lib/models/step_definition.d.ts +11 -11
  159. package/lib/models/step_definition.js +36 -36
  160. package/lib/models/test_case_hook_definition.d.ts +10 -10
  161. package/lib/models/test_case_hook_definition.js +26 -26
  162. package/lib/models/test_run_hook_definition.d.ts +3 -3
  163. package/lib/models/test_run_hook_definition.js +9 -9
  164. package/lib/models/test_step_hook_definition.d.ts +9 -9
  165. package/lib/models/test_step_hook_definition.js +25 -25
  166. package/lib/pickle_filter.d.ts +42 -42
  167. package/lib/pickle_filter.js +98 -98
  168. package/lib/plugin/index.d.ts +2 -2
  169. package/lib/plugin/index.js +18 -18
  170. package/lib/plugin/plugin_manager.d.ts +13 -13
  171. package/lib/plugin/plugin_manager.js +35 -35
  172. package/lib/plugin/types.d.ts +14 -14
  173. package/lib/plugin/types.js +2 -2
  174. package/lib/publish/http_stream.d.ts +30 -30
  175. package/lib/publish/http_stream.js +111 -111
  176. package/lib/publish/index.d.ts +2 -2
  177. package/lib/publish/index.js +4 -4
  178. package/lib/publish/publish_plugin.d.ts +2 -2
  179. package/lib/publish/publish_plugin.js +47 -47
  180. package/lib/runtime/assemble_test_cases.d.ts +13 -13
  181. package/lib/runtime/assemble_test_cases.js +87 -87
  182. package/lib/runtime/attachment_manager/index.d.ts +33 -33
  183. package/lib/runtime/attachment_manager/index.js +118 -118
  184. package/lib/runtime/format_error.d.ts +2 -2
  185. package/lib/runtime/format_error.js +35 -35
  186. package/lib/runtime/helpers.d.ts +6 -6
  187. package/lib/runtime/helpers.js +100 -100
  188. package/lib/runtime/index.d.ts +40 -40
  189. package/lib/runtime/index.js +75 -75
  190. package/lib/runtime/parallel/command_types.d.ts +32 -32
  191. package/lib/runtime/parallel/command_types.js +2 -2
  192. package/lib/runtime/parallel/coordinator.d.ts +72 -72
  193. package/lib/runtime/parallel/coordinator.js +221 -221
  194. package/lib/runtime/parallel/run_worker.d.ts +1 -1
  195. package/lib/runtime/parallel/run_worker.js +28 -28
  196. package/lib/runtime/parallel/worker.d.ts +26 -26
  197. package/lib/runtime/parallel/worker.js +86 -86
  198. package/lib/runtime/run_test_run_hooks.d.ts +3 -3
  199. package/lib/runtime/run_test_run_hooks.js +27 -27
  200. package/lib/runtime/step_runner.d.ts +16 -16
  201. package/lib/runtime/step_runner.js +87 -87
  202. package/lib/runtime/stopwatch.d.ts +12 -12
  203. package/lib/runtime/stopwatch.js +33 -33
  204. package/lib/runtime/test_case_runner.d.ts +54 -54
  205. package/lib/runtime/test_case_runner.js +267 -267
  206. package/lib/step_arguments.d.ts +6 -6
  207. package/lib/step_arguments.js +18 -18
  208. package/lib/support_code_library_builder/build_parameter_type.d.ts +3 -3
  209. package/lib/support_code_library_builder/build_parameter_type.js +12 -12
  210. package/lib/support_code_library_builder/get_definition_line_and_uri.d.ts +3 -3
  211. package/lib/support_code_library_builder/get_definition_line_and_uri.js +28 -28
  212. package/lib/support_code_library_builder/index.d.ts +74 -74
  213. package/lib/support_code_library_builder/index.js +296 -296
  214. package/lib/support_code_library_builder/parallel_can_assign_helpers.d.ts +2 -2
  215. package/lib/support_code_library_builder/parallel_can_assign_helpers.js +15 -15
  216. package/lib/support_code_library_builder/sourced_parameter_type_registry.d.ts +7 -7
  217. package/lib/support_code_library_builder/sourced_parameter_type_registry.js +18 -18
  218. package/lib/support_code_library_builder/types.d.ts +88 -88
  219. package/lib/support_code_library_builder/types.js +2 -2
  220. package/lib/support_code_library_builder/validate_arguments.d.ts +12 -12
  221. package/lib/support_code_library_builder/validate_arguments.js +72 -72
  222. package/lib/support_code_library_builder/world.d.ts +18 -18
  223. package/lib/support_code_library_builder/world.js +10 -10
  224. package/lib/time.d.ts +18 -18
  225. package/lib/time.js +60 -60
  226. package/lib/try_require.d.ts +7 -7
  227. package/lib/try_require.js +22 -22
  228. package/lib/types/index.d.ts +4 -4
  229. package/lib/types/index.js +2 -2
  230. package/lib/uncaught_exception_manager.d.ts +7 -7
  231. package/lib/uncaught_exception_manager.js +11 -11
  232. package/lib/user_code_runner.d.ts +14 -14
  233. package/lib/user_code_runner.js +81 -81
  234. package/lib/value_checker.d.ts +3 -3
  235. package/lib/value_checker.js +18 -18
  236. package/lib/version.d.ts +1 -1
  237. package/lib/version.js +5 -5
  238. package/lib/version.js.map +1 -1
  239. package/package.json +3 -1
@@ -1,111 +1,111 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.getUsage = void 0;
27
- const pickle_parser_1 = require("../pickle_parser");
28
- const gherkin_document_parser_1 = require("../gherkin_document_parser");
29
- const messages = __importStar(require("@cucumber/messages"));
30
- const value_checker_1 = require("../../../value_checker");
31
- function buildEmptyMapping(stepDefinitions) {
32
- const mapping = {};
33
- stepDefinitions.forEach((stepDefinition) => {
34
- mapping[stepDefinition.id] = {
35
- code: stepDefinition.unwrappedCode.toString(),
36
- line: stepDefinition.line,
37
- pattern: stepDefinition.expression.source,
38
- patternType: stepDefinition.expression.constructor.name,
39
- matches: [],
40
- uri: stepDefinition.uri,
41
- };
42
- });
43
- return mapping;
44
- }
45
- const unexecutedStatuses = [
46
- messages.TestStepResultStatus.AMBIGUOUS,
47
- messages.TestStepResultStatus.SKIPPED,
48
- messages.TestStepResultStatus.UNDEFINED,
49
- ];
50
- function buildMapping({ stepDefinitions, eventDataCollector, }) {
51
- const mapping = buildEmptyMapping(stepDefinitions);
52
- eventDataCollector.getTestCaseAttempts().forEach((testCaseAttempt) => {
53
- const pickleStepMap = (0, pickle_parser_1.getPickleStepMap)(testCaseAttempt.pickle);
54
- const gherkinStepMap = (0, gherkin_document_parser_1.getGherkinStepMap)(testCaseAttempt.gherkinDocument);
55
- testCaseAttempt.testCase.testSteps.forEach((testStep) => {
56
- if ((0, value_checker_1.doesHaveValue)(testStep.pickleStepId) &&
57
- testStep.stepDefinitionIds.length === 1) {
58
- const stepDefinitionId = testStep.stepDefinitionIds[0];
59
- const pickleStep = pickleStepMap[testStep.pickleStepId];
60
- const gherkinStep = gherkinStepMap[pickleStep.astNodeIds[0]];
61
- const match = {
62
- line: gherkinStep.location.line,
63
- text: pickleStep.text,
64
- uri: testCaseAttempt.pickle.uri,
65
- };
66
- const { duration, status } = testCaseAttempt.stepResults[testStep.id];
67
- if (!unexecutedStatuses.includes(status) && (0, value_checker_1.doesHaveValue)(duration)) {
68
- match.duration = duration;
69
- }
70
- if ((0, value_checker_1.doesHaveValue)(mapping[stepDefinitionId])) {
71
- mapping[stepDefinitionId].matches.push(match);
72
- }
73
- }
74
- });
75
- });
76
- return mapping;
77
- }
78
- function normalizeDuration(duration) {
79
- if (duration == null) {
80
- return Number.MIN_SAFE_INTEGER;
81
- }
82
- return messages.TimeConversion.durationToMilliseconds(duration);
83
- }
84
- function buildResult(mapping) {
85
- return Object.keys(mapping)
86
- .map((stepDefinitionId) => {
87
- const { matches, ...rest } = mapping[stepDefinitionId];
88
- const sortedMatches = matches.sort((a, b) => {
89
- if (a.duration === b.duration) {
90
- return a.text < b.text ? -1 : 1;
91
- }
92
- return normalizeDuration(b.duration) - normalizeDuration(a.duration);
93
- });
94
- const result = { matches: sortedMatches, ...rest };
95
- const durations = matches
96
- .filter((m) => m.duration != null)
97
- .map((m) => m.duration);
98
- if (durations.length > 0) {
99
- const totalMilliseconds = durations.reduce((acc, x) => acc + messages.TimeConversion.durationToMilliseconds(x), 0);
100
- result.meanDuration = messages.TimeConversion.millisecondsToDuration(totalMilliseconds / durations.length);
101
- }
102
- return result;
103
- })
104
- .sort((a, b) => normalizeDuration(b.meanDuration) - normalizeDuration(a.meanDuration));
105
- }
106
- function getUsage({ stepDefinitions, eventDataCollector, }) {
107
- const mapping = buildMapping({ stepDefinitions, eventDataCollector });
108
- return buildResult(mapping);
109
- }
110
- exports.getUsage = getUsage;
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.getUsage = void 0;
27
+ const pickle_parser_1 = require("../pickle_parser");
28
+ const gherkin_document_parser_1 = require("../gherkin_document_parser");
29
+ const messages = __importStar(require("@cucumber/messages"));
30
+ const value_checker_1 = require("../../../value_checker");
31
+ function buildEmptyMapping(stepDefinitions) {
32
+ const mapping = {};
33
+ stepDefinitions.forEach((stepDefinition) => {
34
+ mapping[stepDefinition.id] = {
35
+ code: stepDefinition.unwrappedCode.toString(),
36
+ line: stepDefinition.line,
37
+ pattern: stepDefinition.expression.source,
38
+ patternType: stepDefinition.expression.constructor.name,
39
+ matches: [],
40
+ uri: stepDefinition.uri,
41
+ };
42
+ });
43
+ return mapping;
44
+ }
45
+ const unexecutedStatuses = [
46
+ messages.TestStepResultStatus.AMBIGUOUS,
47
+ messages.TestStepResultStatus.SKIPPED,
48
+ messages.TestStepResultStatus.UNDEFINED,
49
+ ];
50
+ function buildMapping({ stepDefinitions, eventDataCollector, }) {
51
+ const mapping = buildEmptyMapping(stepDefinitions);
52
+ eventDataCollector.getTestCaseAttempts().forEach((testCaseAttempt) => {
53
+ const pickleStepMap = (0, pickle_parser_1.getPickleStepMap)(testCaseAttempt.pickle);
54
+ const gherkinStepMap = (0, gherkin_document_parser_1.getGherkinStepMap)(testCaseAttempt.gherkinDocument);
55
+ testCaseAttempt.testCase.testSteps.forEach((testStep) => {
56
+ if ((0, value_checker_1.doesHaveValue)(testStep.pickleStepId) &&
57
+ testStep.stepDefinitionIds.length === 1) {
58
+ const stepDefinitionId = testStep.stepDefinitionIds[0];
59
+ const pickleStep = pickleStepMap[testStep.pickleStepId];
60
+ const gherkinStep = gherkinStepMap[pickleStep.astNodeIds[0]];
61
+ const match = {
62
+ line: gherkinStep.location.line,
63
+ text: pickleStep.text,
64
+ uri: testCaseAttempt.pickle.uri,
65
+ };
66
+ const { duration, status } = testCaseAttempt.stepResults[testStep.id];
67
+ if (!unexecutedStatuses.includes(status) && (0, value_checker_1.doesHaveValue)(duration)) {
68
+ match.duration = duration;
69
+ }
70
+ if ((0, value_checker_1.doesHaveValue)(mapping[stepDefinitionId])) {
71
+ mapping[stepDefinitionId].matches.push(match);
72
+ }
73
+ }
74
+ });
75
+ });
76
+ return mapping;
77
+ }
78
+ function normalizeDuration(duration) {
79
+ if (duration == null) {
80
+ return Number.MIN_SAFE_INTEGER;
81
+ }
82
+ return messages.TimeConversion.durationToMilliseconds(duration);
83
+ }
84
+ function buildResult(mapping) {
85
+ return Object.keys(mapping)
86
+ .map((stepDefinitionId) => {
87
+ const { matches, ...rest } = mapping[stepDefinitionId];
88
+ const sortedMatches = matches.sort((a, b) => {
89
+ if (a.duration === b.duration) {
90
+ return a.text < b.text ? -1 : 1;
91
+ }
92
+ return normalizeDuration(b.duration) - normalizeDuration(a.duration);
93
+ });
94
+ const result = { matches: sortedMatches, ...rest };
95
+ const durations = matches
96
+ .filter((m) => m.duration != null)
97
+ .map((m) => m.duration);
98
+ if (durations.length > 0) {
99
+ const totalMilliseconds = durations.reduce((acc, x) => acc + messages.TimeConversion.durationToMilliseconds(x), 0);
100
+ result.meanDuration = messages.TimeConversion.millisecondsToDuration(totalMilliseconds / durations.length);
101
+ }
102
+ return result;
103
+ })
104
+ .sort((a, b) => normalizeDuration(b.meanDuration) - normalizeDuration(a.meanDuration));
105
+ }
106
+ function getUsage({ stepDefinitions, eventDataCollector, }) {
107
+ const mapping = buildMapping({ stepDefinitions, eventDataCollector });
108
+ return buildResult(mapping);
109
+ }
110
+ exports.getUsage = getUsage;
111
111
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
- import Formatter, { IFormatterOptions } from '.';
2
- export default class HtmlFormatter extends Formatter {
3
- private readonly _htmlStream;
4
- static readonly documentation: string;
5
- constructor(options: IFormatterOptions);
6
- finished(): Promise<void>;
7
- }
1
+ import Formatter, { IFormatterOptions } from '.';
2
+ export default class HtmlFormatter extends Formatter {
3
+ private readonly _htmlStream;
4
+ static readonly documentation: string;
5
+ constructor(options: IFormatterOptions);
6
+ finished(): Promise<void>;
7
+ }
@@ -1,30 +1,30 @@
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 _1 = __importDefault(require("."));
7
- const resolve_pkg_1 = __importDefault(require("resolve-pkg"));
8
- const html_formatter_1 = __importDefault(require("@cucumber/html-formatter"));
9
- const stream_1 = require("stream");
10
- const util_1 = require("util");
11
- class HtmlFormatter extends _1.default {
12
- constructor(options) {
13
- super(options);
14
- this._htmlStream = new html_formatter_1.default((0, resolve_pkg_1.default)('@cucumber/html-formatter', { cwd: __dirname }) +
15
- '/dist/main.css', (0, resolve_pkg_1.default)('@cucumber/html-formatter', { cwd: __dirname }) +
16
- '/dist/main.js');
17
- options.eventBroadcaster.on('envelope', (envelope) => {
18
- this._htmlStream.write(envelope);
19
- });
20
- this._htmlStream.on('data', (chunk) => this.log(chunk));
21
- }
22
- async finished() {
23
- this._htmlStream.end();
24
- await (0, util_1.promisify)(stream_1.finished)(this._htmlStream);
25
- await super.finished();
26
- }
27
- }
28
- exports.default = HtmlFormatter;
29
- HtmlFormatter.documentation = 'Outputs HTML report';
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 _1 = __importDefault(require("."));
7
+ const resolve_pkg_1 = __importDefault(require("resolve-pkg"));
8
+ const html_formatter_1 = __importDefault(require("@cucumber/html-formatter"));
9
+ const stream_1 = require("stream");
10
+ const util_1 = require("util");
11
+ class HtmlFormatter extends _1.default {
12
+ constructor(options) {
13
+ super(options);
14
+ this._htmlStream = new html_formatter_1.default((0, resolve_pkg_1.default)('@cucumber/html-formatter', { cwd: __dirname }) +
15
+ '/dist/main.css', (0, resolve_pkg_1.default)('@cucumber/html-formatter', { cwd: __dirname }) +
16
+ '/dist/main.js');
17
+ options.eventBroadcaster.on('envelope', (envelope) => {
18
+ this._htmlStream.write(envelope);
19
+ });
20
+ this._htmlStream.on('data', (chunk) => this.log(chunk));
21
+ }
22
+ async finished() {
23
+ this._htmlStream.end();
24
+ await (0, util_1.promisify)(stream_1.finished)(this._htmlStream);
25
+ await super.finished();
26
+ }
27
+ }
28
+ exports.default = HtmlFormatter;
29
+ HtmlFormatter.documentation = 'Outputs HTML report';
30
30
  //# sourceMappingURL=html_formatter.js.map
@@ -1,53 +1,53 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { IColorFns } from './get_color_fns';
4
- import { EventDataCollector } from './helpers';
5
- import StepDefinitionSnippetBuilder from './step_definition_snippet_builder';
6
- import { Writable } from 'stream';
7
- import { ISupportCodeLibrary } from '../support_code_library_builder/types';
8
- import { EventEmitter } from 'events';
9
- import { SnippetInterface } from './step_definition_snippet_builder/snippet_syntax';
10
- export interface FormatRerunOptions {
11
- separator?: string;
12
- }
13
- export interface FormatOptions {
14
- colorsEnabled?: boolean;
15
- rerun?: FormatRerunOptions;
16
- snippetInterface?: SnippetInterface;
17
- snippetSyntax?: string;
18
- printAttachments?: boolean;
19
- [customKey: string]: any;
20
- }
21
- export interface IPublishConfig {
22
- url: string;
23
- token: string;
24
- }
25
- export type IFormatterStream = Writable;
26
- export type IFormatterLogFn = (buffer: string | Uint8Array) => void;
27
- export type IFormatterCleanupFn = () => Promise<any>;
28
- export interface IFormatterOptions {
29
- colorFns: IColorFns;
30
- cwd: string;
31
- eventBroadcaster: EventEmitter;
32
- eventDataCollector: EventDataCollector;
33
- log: IFormatterLogFn;
34
- parsedArgvOptions: FormatOptions;
35
- snippetBuilder: StepDefinitionSnippetBuilder;
36
- stream: Writable;
37
- cleanup: IFormatterCleanupFn;
38
- supportCodeLibrary: ISupportCodeLibrary;
39
- }
40
- export default class Formatter {
41
- protected colorFns: IColorFns;
42
- protected cwd: string;
43
- protected eventDataCollector: EventDataCollector;
44
- protected log: IFormatterLogFn;
45
- protected snippetBuilder: StepDefinitionSnippetBuilder;
46
- protected stream: Writable;
47
- protected supportCodeLibrary: ISupportCodeLibrary;
48
- protected printAttachments: boolean;
49
- private readonly cleanup;
50
- static readonly documentation: string;
51
- constructor(options: IFormatterOptions);
52
- finished(): Promise<void>;
53
- }
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { IColorFns } from './get_color_fns';
4
+ import { EventDataCollector } from './helpers';
5
+ import StepDefinitionSnippetBuilder from './step_definition_snippet_builder';
6
+ import { Writable } from 'stream';
7
+ import { ISupportCodeLibrary } from '../support_code_library_builder/types';
8
+ import { EventEmitter } from 'events';
9
+ import { SnippetInterface } from './step_definition_snippet_builder/snippet_syntax';
10
+ export interface FormatRerunOptions {
11
+ separator?: string;
12
+ }
13
+ export interface FormatOptions {
14
+ colorsEnabled?: boolean;
15
+ rerun?: FormatRerunOptions;
16
+ snippetInterface?: SnippetInterface;
17
+ snippetSyntax?: string;
18
+ printAttachments?: boolean;
19
+ [customKey: string]: any;
20
+ }
21
+ export interface IPublishConfig {
22
+ url: string;
23
+ token: string;
24
+ }
25
+ export type IFormatterStream = Writable;
26
+ export type IFormatterLogFn = (buffer: string | Uint8Array) => void;
27
+ export type IFormatterCleanupFn = () => Promise<any>;
28
+ export interface IFormatterOptions {
29
+ colorFns: IColorFns;
30
+ cwd: string;
31
+ eventBroadcaster: EventEmitter;
32
+ eventDataCollector: EventDataCollector;
33
+ log: IFormatterLogFn;
34
+ parsedArgvOptions: FormatOptions;
35
+ snippetBuilder: StepDefinitionSnippetBuilder;
36
+ stream: Writable;
37
+ cleanup: IFormatterCleanupFn;
38
+ supportCodeLibrary: ISupportCodeLibrary;
39
+ }
40
+ export default class Formatter {
41
+ protected colorFns: IColorFns;
42
+ protected cwd: string;
43
+ protected eventDataCollector: EventDataCollector;
44
+ protected log: IFormatterLogFn;
45
+ protected snippetBuilder: StepDefinitionSnippetBuilder;
46
+ protected stream: Writable;
47
+ protected supportCodeLibrary: ISupportCodeLibrary;
48
+ protected printAttachments: boolean;
49
+ private readonly cleanup;
50
+ static readonly documentation: string;
51
+ constructor(options: IFormatterOptions);
52
+ finished(): Promise<void>;
53
+ }
@@ -1,21 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const value_checker_1 = require("../value_checker");
4
- class Formatter {
5
- constructor(options) {
6
- this.colorFns = options.colorFns;
7
- this.cwd = options.cwd;
8
- this.eventDataCollector = options.eventDataCollector;
9
- this.log = options.log;
10
- this.snippetBuilder = options.snippetBuilder;
11
- this.stream = options.stream;
12
- this.supportCodeLibrary = options.supportCodeLibrary;
13
- this.cleanup = options.cleanup;
14
- this.printAttachments = (0, value_checker_1.valueOrDefault)(options.parsedArgvOptions.printAttachments, true);
15
- }
16
- async finished() {
17
- await this.cleanup();
18
- }
19
- }
20
- exports.default = Formatter;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const value_checker_1 = require("../value_checker");
4
+ class Formatter {
5
+ constructor(options) {
6
+ this.colorFns = options.colorFns;
7
+ this.cwd = options.cwd;
8
+ this.eventDataCollector = options.eventDataCollector;
9
+ this.log = options.log;
10
+ this.snippetBuilder = options.snippetBuilder;
11
+ this.stream = options.stream;
12
+ this.supportCodeLibrary = options.supportCodeLibrary;
13
+ this.cleanup = options.cleanup;
14
+ this.printAttachments = (0, value_checker_1.valueOrDefault)(options.parsedArgvOptions.printAttachments, true);
15
+ }
16
+ async finished() {
17
+ await this.cleanup();
18
+ }
19
+ }
20
+ exports.default = Formatter;
21
21
  //# sourceMappingURL=index.js.map
@@ -1,78 +1,78 @@
1
- import Formatter, { IFormatterOptions } from './';
2
- import * as messages from '@cucumber/messages';
3
- export interface IJsonFeature {
4
- description: string;
5
- elements: IJsonScenario[];
6
- id: string;
7
- keyword: string;
8
- line: number;
9
- name: string;
10
- tags: IJsonTag[];
11
- uri: string;
12
- }
13
- export interface IJsonScenario {
14
- description: string;
15
- id: string;
16
- keyword: string;
17
- line: number;
18
- name: string;
19
- steps: IJsonStep[];
20
- tags: IJsonTag[];
21
- type: string;
22
- }
23
- export interface IJsonStep {
24
- arguments?: any;
25
- embeddings?: any;
26
- hidden?: boolean;
27
- keyword?: string;
28
- line?: number;
29
- match?: any;
30
- name?: string;
31
- result?: any;
32
- }
33
- export interface IJsonTag {
34
- name: string;
35
- line: number;
36
- }
37
- interface IBuildJsonFeatureOptions {
38
- feature: messages.Feature;
39
- elements: IJsonScenario[];
40
- uri: string;
41
- }
42
- interface IBuildJsonScenarioOptions {
43
- feature: messages.Feature;
44
- gherkinScenarioMap: Record<string, messages.Scenario>;
45
- gherkinExampleRuleMap: Record<string, messages.Rule>;
46
- gherkinScenarioLocationMap: Record<string, messages.Location>;
47
- pickle: messages.Pickle;
48
- steps: IJsonStep[];
49
- }
50
- interface IBuildJsonStepOptions {
51
- isBeforeHook: boolean;
52
- gherkinStepMap: Record<string, messages.Step>;
53
- pickleStepMap: Record<string, messages.PickleStep>;
54
- testStep: messages.TestStep;
55
- testStepAttachments: messages.Attachment[];
56
- testStepResult: messages.TestStepResult;
57
- }
58
- export default class JsonFormatter extends Formatter {
59
- static readonly documentation: string;
60
- constructor(options: IFormatterOptions);
61
- convertNameToId(obj: messages.Feature | messages.Pickle): string;
62
- formatDataTable(dataTable: messages.PickleTable): any;
63
- formatDocString(docString: messages.PickleDocString, gherkinStep: messages.Step): any;
64
- formatStepArgument(stepArgument: messages.PickleStepArgument, gherkinStep: messages.Step): any;
65
- onTestRunFinished(): void;
66
- getFeatureData({ feature, elements, uri, }: IBuildJsonFeatureOptions): IJsonFeature;
67
- getScenarioData({ feature, gherkinScenarioLocationMap, gherkinExampleRuleMap, gherkinScenarioMap, pickle, steps, }: IBuildJsonScenarioOptions): IJsonScenario;
68
- private formatScenarioId;
69
- getStepData({ isBeforeHook, gherkinStepMap, pickleStepMap, testStep, testStepAttachments, testStepResult, }: IBuildJsonStepOptions): IJsonStep;
70
- getFeatureTags(feature: messages.Feature): IJsonTag[];
71
- getScenarioTags({ feature, pickle, gherkinScenarioMap, }: {
72
- feature: messages.Feature;
73
- pickle: messages.Pickle;
74
- gherkinScenarioMap: Record<string, messages.Scenario>;
75
- }): IJsonTag[];
76
- private getScenarioTag;
77
- }
78
- export {};
1
+ import Formatter, { IFormatterOptions } from './';
2
+ import * as messages from '@cucumber/messages';
3
+ export interface IJsonFeature {
4
+ description: string;
5
+ elements: IJsonScenario[];
6
+ id: string;
7
+ keyword: string;
8
+ line: number;
9
+ name: string;
10
+ tags: IJsonTag[];
11
+ uri: string;
12
+ }
13
+ export interface IJsonScenario {
14
+ description: string;
15
+ id: string;
16
+ keyword: string;
17
+ line: number;
18
+ name: string;
19
+ steps: IJsonStep[];
20
+ tags: IJsonTag[];
21
+ type: string;
22
+ }
23
+ export interface IJsonStep {
24
+ arguments?: any;
25
+ embeddings?: any;
26
+ hidden?: boolean;
27
+ keyword?: string;
28
+ line?: number;
29
+ match?: any;
30
+ name?: string;
31
+ result?: any;
32
+ }
33
+ export interface IJsonTag {
34
+ name: string;
35
+ line: number;
36
+ }
37
+ interface IBuildJsonFeatureOptions {
38
+ feature: messages.Feature;
39
+ elements: IJsonScenario[];
40
+ uri: string;
41
+ }
42
+ interface IBuildJsonScenarioOptions {
43
+ feature: messages.Feature;
44
+ gherkinScenarioMap: Record<string, messages.Scenario>;
45
+ gherkinExampleRuleMap: Record<string, messages.Rule>;
46
+ gherkinScenarioLocationMap: Record<string, messages.Location>;
47
+ pickle: messages.Pickle;
48
+ steps: IJsonStep[];
49
+ }
50
+ interface IBuildJsonStepOptions {
51
+ isBeforeHook: boolean;
52
+ gherkinStepMap: Record<string, messages.Step>;
53
+ pickleStepMap: Record<string, messages.PickleStep>;
54
+ testStep: messages.TestStep;
55
+ testStepAttachments: messages.Attachment[];
56
+ testStepResult: messages.TestStepResult;
57
+ }
58
+ export default class JsonFormatter extends Formatter {
59
+ static readonly documentation: string;
60
+ constructor(options: IFormatterOptions);
61
+ convertNameToId(obj: messages.Feature | messages.Pickle): string;
62
+ formatDataTable(dataTable: messages.PickleTable): any;
63
+ formatDocString(docString: messages.PickleDocString, gherkinStep: messages.Step): any;
64
+ formatStepArgument(stepArgument: messages.PickleStepArgument, gherkinStep: messages.Step): any;
65
+ onTestRunFinished(): void;
66
+ getFeatureData({ feature, elements, uri, }: IBuildJsonFeatureOptions): IJsonFeature;
67
+ getScenarioData({ feature, gherkinScenarioLocationMap, gherkinExampleRuleMap, gherkinScenarioMap, pickle, steps, }: IBuildJsonScenarioOptions): IJsonScenario;
68
+ private formatScenarioId;
69
+ getStepData({ isBeforeHook, gherkinStepMap, pickleStepMap, testStep, testStepAttachments, testStepResult, }: IBuildJsonStepOptions): IJsonStep;
70
+ getFeatureTags(feature: messages.Feature): IJsonTag[];
71
+ getScenarioTags({ feature, pickle, gherkinScenarioMap, }: {
72
+ feature: messages.Feature;
73
+ pickle: messages.Pickle;
74
+ gherkinScenarioMap: Record<string, messages.Scenario>;
75
+ }): IJsonTag[];
76
+ private getScenarioTag;
77
+ }
78
+ export {};