@dev-blinq/cucumber-js 1.0.36 → 1.0.37-stage

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 (251) hide show
  1. package/bin/cucumber-js +0 -0
  2. package/bin/cucumber.js +0 -0
  3. package/bin/download-install.js +51 -10
  4. package/lib/api/console_logger.d.ts +12 -12
  5. package/lib/api/console_logger.js +23 -23
  6. package/lib/api/convert_configuration.d.ts +4 -4
  7. package/lib/api/convert_configuration.js +65 -65
  8. package/lib/api/environment.d.ts +2 -2
  9. package/lib/api/environment.js +13 -13
  10. package/lib/api/formatters.d.ts +20 -20
  11. package/lib/api/formatters.js +60 -60
  12. package/lib/api/gherkin.d.ts +21 -21
  13. package/lib/api/gherkin.js +145 -99
  14. package/lib/api/gherkin.js.map +1 -1
  15. package/lib/api/index.d.ts +12 -12
  16. package/lib/api/index.js +27 -27
  17. package/lib/api/load_configuration.d.ts +9 -9
  18. package/lib/api/load_configuration.js +40 -40
  19. package/lib/api/load_sources.d.ts +9 -9
  20. package/lib/api/load_sources.js +52 -52
  21. package/lib/api/load_support.d.ts +10 -10
  22. package/lib/api/load_support.js +29 -29
  23. package/lib/api/paths.d.ts +8 -8
  24. package/lib/api/paths.js +101 -101
  25. package/lib/api/plugins.d.ts +4 -4
  26. package/lib/api/plugins.js +18 -18
  27. package/lib/api/run_cucumber.d.ts +11 -11
  28. package/lib/api/run_cucumber.js +114 -114
  29. package/lib/api/runtime.d.ts +21 -21
  30. package/lib/api/runtime.js +35 -35
  31. package/lib/api/support.d.ts +9 -9
  32. package/lib/api/support.js +25 -25
  33. package/lib/api/test_helpers.d.ts +3 -3
  34. package/lib/api/test_helpers.js +30 -30
  35. package/lib/api/types.d.ts +177 -177
  36. package/lib/api/types.js +2 -2
  37. package/lib/cli/helpers.d.ts +39 -39
  38. package/lib/cli/helpers.js +223 -223
  39. package/lib/cli/i18n.d.ts +2 -2
  40. package/lib/cli/i18n.js +69 -69
  41. package/lib/cli/index.d.ts +21 -21
  42. package/lib/cli/index.js +63 -63
  43. package/lib/cli/install_validator.d.ts +1 -1
  44. package/lib/cli/install_validator.js +13 -13
  45. package/lib/cli/run.d.ts +1 -1
  46. package/lib/cli/run.js +43 -43
  47. package/lib/cli/validate_node_engine_version.d.ts +10 -10
  48. package/lib/cli/validate_node_engine_version.js +23 -23
  49. package/lib/configuration/argv_parser.d.ts +20 -20
  50. package/lib/configuration/argv_parser.js +102 -102
  51. package/lib/configuration/axios_client.d.ts +1 -0
  52. package/lib/configuration/axios_client.js +40 -0
  53. package/lib/configuration/axios_client.js.map +1 -0
  54. package/lib/configuration/check_schema.d.ts +2 -2
  55. package/lib/configuration/check_schema.js +59 -59
  56. package/lib/configuration/default_configuration.d.ts +2 -2
  57. package/lib/configuration/default_configuration.js +28 -28
  58. package/lib/configuration/from_file.d.ts +3 -3
  59. package/lib/configuration/from_file.js +84 -84
  60. package/lib/configuration/helpers.d.ts +1 -1
  61. package/lib/configuration/helpers.js +10 -10
  62. package/lib/configuration/index.d.ts +7 -7
  63. package/lib/configuration/index.js +28 -28
  64. package/lib/configuration/locate_file.d.ts +1 -1
  65. package/lib/configuration/locate_file.js +20 -20
  66. package/lib/configuration/merge_configurations.d.ts +2 -2
  67. package/lib/configuration/merge_configurations.js +47 -47
  68. package/lib/configuration/option_splitter.d.ts +3 -3
  69. package/lib/configuration/option_splitter.js +22 -22
  70. package/lib/configuration/types.d.ts +30 -30
  71. package/lib/configuration/types.js +2 -2
  72. package/lib/configuration/validate_configuration.d.ts +3 -3
  73. package/lib/configuration/validate_configuration.js +12 -12
  74. package/lib/filter_stack_trace.d.ts +3 -3
  75. package/lib/filter_stack_trace.js +37 -37
  76. package/lib/formatter/api.d.ts +2 -0
  77. package/lib/formatter/api.js +53 -0
  78. package/lib/formatter/api.js.map +1 -0
  79. package/lib/formatter/builder.d.ts +37 -37
  80. package/lib/formatter/builder.js +100 -100
  81. package/lib/formatter/bvt_analysis_formatter.d.ts +19 -18
  82. package/lib/formatter/bvt_analysis_formatter.js +243 -192
  83. package/lib/formatter/bvt_analysis_formatter.js.map +1 -1
  84. package/lib/formatter/feature_data_format.d.ts +23 -14
  85. package/lib/formatter/feature_data_format.js +178 -80
  86. package/lib/formatter/feature_data_format.js.map +1 -1
  87. package/lib/formatter/fixtures/typescript.d.ts +2 -2
  88. package/lib/formatter/fixtures/typescript.js +5 -5
  89. package/lib/formatter/get_color_fns.d.ts +15 -15
  90. package/lib/formatter/get_color_fns.js +55 -55
  91. package/lib/formatter/helpers/duration_helpers.d.ts +2 -2
  92. package/lib/formatter/helpers/duration_helpers.js +8 -8
  93. package/lib/formatter/helpers/event_data_collector.d.ts +30 -30
  94. package/lib/formatter/helpers/event_data_collector.js +125 -125
  95. package/lib/formatter/helpers/formatters.d.ts +6 -6
  96. package/lib/formatter/helpers/formatters.js +44 -44
  97. package/lib/formatter/helpers/gherkin_document_parser.d.ts +5 -5
  98. package/lib/formatter/helpers/gherkin_document_parser.js +65 -65
  99. package/lib/formatter/helpers/index.d.ts +10 -10
  100. package/lib/formatter/helpers/index.js +51 -51
  101. package/lib/formatter/helpers/issue_helpers.d.ts +19 -19
  102. package/lib/formatter/helpers/issue_helpers.js +58 -58
  103. package/lib/formatter/helpers/keyword_type.d.ts +11 -11
  104. package/lib/formatter/helpers/keyword_type.js +31 -31
  105. package/lib/formatter/helpers/location_helpers.d.ts +2 -2
  106. package/lib/formatter/helpers/location_helpers.js +16 -16
  107. package/lib/formatter/helpers/pickle_parser.d.ts +17 -17
  108. package/lib/formatter/helpers/pickle_parser.js +27 -27
  109. package/lib/formatter/helpers/report_generator.d.ts +135 -103
  110. package/lib/formatter/helpers/report_generator.js +433 -247
  111. package/lib/formatter/helpers/report_generator.js.map +1 -1
  112. package/lib/formatter/helpers/step_argument_formatter.d.ts +2 -2
  113. package/lib/formatter/helpers/step_argument_formatter.js +47 -47
  114. package/lib/formatter/helpers/summary_helpers.d.ts +9 -9
  115. package/lib/formatter/helpers/summary_helpers.js +95 -95
  116. package/lib/formatter/helpers/test_case_attempt_formatter.d.ts +12 -12
  117. package/lib/formatter/helpers/test_case_attempt_formatter.js +113 -113
  118. package/lib/formatter/helpers/test_case_attempt_parser.d.ts +32 -32
  119. package/lib/formatter/helpers/test_case_attempt_parser.js +134 -134
  120. package/lib/formatter/helpers/upload_serivce.d.ts +14 -9
  121. package/lib/formatter/helpers/upload_serivce.js +171 -46
  122. package/lib/formatter/helpers/upload_serivce.js.map +1 -1
  123. package/lib/formatter/helpers/uploader.d.ts +11 -11
  124. package/lib/formatter/helpers/uploader.js +130 -56
  125. package/lib/formatter/helpers/uploader.js.map +1 -1
  126. package/lib/formatter/helpers/usage_helpers/index.d.ts +23 -23
  127. package/lib/formatter/helpers/usage_helpers/index.js +110 -110
  128. package/lib/formatter/html_formatter.d.ts +7 -7
  129. package/lib/formatter/html_formatter.js +29 -29
  130. package/lib/formatter/index.d.ts +53 -53
  131. package/lib/formatter/index.js +20 -20
  132. package/lib/formatter/json_formatter.d.ts +78 -78
  133. package/lib/formatter/json_formatter.js +229 -229
  134. package/lib/formatter/junit_formatter.d.ts +17 -17
  135. package/lib/formatter/junit_formatter.js +180 -180
  136. package/lib/formatter/message_formatter.d.ts +5 -5
  137. package/lib/formatter/message_formatter.js +14 -14
  138. package/lib/formatter/progress_bar_formatter.d.ts +18 -18
  139. package/lib/formatter/progress_bar_formatter.js +98 -98
  140. package/lib/formatter/progress_formatter.d.ts +9 -9
  141. package/lib/formatter/progress_formatter.js +58 -58
  142. package/lib/formatter/rerun_formatter.d.ts +13 -13
  143. package/lib/formatter/rerun_formatter.js +79 -79
  144. package/lib/formatter/snippets_formatter.d.ts +6 -6
  145. package/lib/formatter/snippets_formatter.js +60 -60
  146. package/lib/formatter/step_definition_snippet_builder/index.d.ts +20 -20
  147. package/lib/formatter/step_definition_snippet_builder/index.js +45 -45
  148. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.d.ts +7 -7
  149. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js +45 -45
  150. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.d.ts +16 -16
  151. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js +10 -10
  152. package/lib/formatter/summary_formatter.d.ts +14 -14
  153. package/lib/formatter/summary_formatter.js +67 -67
  154. package/lib/formatter/usage_formatter.d.ts +6 -6
  155. package/lib/formatter/usage_formatter.js +97 -97
  156. package/lib/formatter/usage_json_formatter.d.ts +7 -7
  157. package/lib/formatter/usage_json_formatter.js +33 -33
  158. package/lib/index.d.ts +58 -58
  159. package/lib/index.js +108 -108
  160. package/lib/logger.d.ts +5 -5
  161. package/lib/logger.js +2 -2
  162. package/lib/models/data_table.d.ts +10 -10
  163. package/lib/models/data_table.js +45 -45
  164. package/lib/models/definition.d.ts +55 -55
  165. package/lib/models/definition.js +21 -21
  166. package/lib/models/gherkin_step_keyword.d.ts +1 -1
  167. package/lib/models/gherkin_step_keyword.js +2 -2
  168. package/lib/models/pickle_order.d.ts +1 -1
  169. package/lib/models/pickle_order.js +2 -2
  170. package/lib/models/step_definition.d.ts +11 -11
  171. package/lib/models/step_definition.js +36 -36
  172. package/lib/models/test_case_hook_definition.d.ts +10 -10
  173. package/lib/models/test_case_hook_definition.js +26 -26
  174. package/lib/models/test_run_hook_definition.d.ts +3 -3
  175. package/lib/models/test_run_hook_definition.js +9 -9
  176. package/lib/models/test_step_hook_definition.d.ts +9 -9
  177. package/lib/models/test_step_hook_definition.js +25 -25
  178. package/lib/pickle_filter.d.ts +42 -42
  179. package/lib/pickle_filter.js +98 -98
  180. package/lib/plugin/index.d.ts +2 -2
  181. package/lib/plugin/index.js +18 -18
  182. package/lib/plugin/plugin_manager.d.ts +13 -13
  183. package/lib/plugin/plugin_manager.js +35 -35
  184. package/lib/plugin/types.d.ts +14 -14
  185. package/lib/plugin/types.js +2 -2
  186. package/lib/publish/http_stream.d.ts +30 -30
  187. package/lib/publish/http_stream.js +111 -111
  188. package/lib/publish/index.d.ts +2 -2
  189. package/lib/publish/index.js +4 -4
  190. package/lib/publish/publish_plugin.d.ts +2 -2
  191. package/lib/publish/publish_plugin.js +47 -47
  192. package/lib/runtime/assemble_test_cases.d.ts +13 -13
  193. package/lib/runtime/assemble_test_cases.js +87 -87
  194. package/lib/runtime/attachment_manager/index.d.ts +33 -33
  195. package/lib/runtime/attachment_manager/index.js +118 -118
  196. package/lib/runtime/format_error.d.ts +2 -2
  197. package/lib/runtime/format_error.js +35 -35
  198. package/lib/runtime/helpers.d.ts +6 -6
  199. package/lib/runtime/helpers.js +100 -100
  200. package/lib/runtime/index.d.ts +40 -40
  201. package/lib/runtime/index.js +75 -75
  202. package/lib/runtime/parallel/command_types.d.ts +32 -32
  203. package/lib/runtime/parallel/command_types.js +2 -2
  204. package/lib/runtime/parallel/coordinator.d.ts +72 -72
  205. package/lib/runtime/parallel/coordinator.js +221 -221
  206. package/lib/runtime/parallel/run_worker.d.ts +1 -1
  207. package/lib/runtime/parallel/run_worker.js +28 -28
  208. package/lib/runtime/parallel/worker.d.ts +26 -26
  209. package/lib/runtime/parallel/worker.js +86 -86
  210. package/lib/runtime/run_test_run_hooks.d.ts +3 -3
  211. package/lib/runtime/run_test_run_hooks.js +27 -27
  212. package/lib/runtime/step_runner.d.ts +16 -16
  213. package/lib/runtime/step_runner.js +87 -87
  214. package/lib/runtime/stopwatch.d.ts +12 -12
  215. package/lib/runtime/stopwatch.js +33 -33
  216. package/lib/runtime/test_case_runner.d.ts +54 -54
  217. package/lib/runtime/test_case_runner.js +267 -267
  218. package/lib/step_arguments.d.ts +6 -6
  219. package/lib/step_arguments.js +18 -18
  220. package/lib/support_code_library_builder/build_parameter_type.d.ts +3 -3
  221. package/lib/support_code_library_builder/build_parameter_type.js +12 -12
  222. package/lib/support_code_library_builder/get_definition_line_and_uri.d.ts +3 -3
  223. package/lib/support_code_library_builder/get_definition_line_and_uri.js +28 -28
  224. package/lib/support_code_library_builder/index.d.ts +74 -74
  225. package/lib/support_code_library_builder/index.js +296 -296
  226. package/lib/support_code_library_builder/parallel_can_assign_helpers.d.ts +2 -2
  227. package/lib/support_code_library_builder/parallel_can_assign_helpers.js +15 -15
  228. package/lib/support_code_library_builder/sourced_parameter_type_registry.d.ts +7 -7
  229. package/lib/support_code_library_builder/sourced_parameter_type_registry.js +18 -18
  230. package/lib/support_code_library_builder/types.d.ts +88 -88
  231. package/lib/support_code_library_builder/types.js +2 -2
  232. package/lib/support_code_library_builder/validate_arguments.d.ts +12 -12
  233. package/lib/support_code_library_builder/validate_arguments.js +72 -72
  234. package/lib/support_code_library_builder/world.d.ts +18 -18
  235. package/lib/support_code_library_builder/world.js +10 -10
  236. package/lib/time.d.ts +18 -18
  237. package/lib/time.js +60 -60
  238. package/lib/try_require.d.ts +7 -7
  239. package/lib/try_require.js +22 -22
  240. package/lib/types/index.d.ts +4 -4
  241. package/lib/types/index.js +2 -2
  242. package/lib/uncaught_exception_manager.d.ts +7 -7
  243. package/lib/uncaught_exception_manager.js +11 -11
  244. package/lib/user_code_runner.d.ts +14 -14
  245. package/lib/user_code_runner.js +81 -81
  246. package/lib/value_checker.d.ts +3 -3
  247. package/lib/value_checker.js +18 -18
  248. package/lib/version.d.ts +1 -1
  249. package/lib/version.js +5 -5
  250. package/lib/version.js.map +1 -1
  251. package/package.json +4 -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 {};