@dev-blinq/cucumber-js 1.0.36 → 1.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +65 -65
  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 +177 -177
  34. package/lib/api/types.js +2 -2
  35. package/lib/cli/helpers.d.ts +39 -39
  36. package/lib/cli/helpers.js +223 -223
  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 +63 -63
  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 +102 -102
  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 +28 -28
  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 +30 -30
  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_analysis_formatter.d.ts +18 -18
  74. package/lib/formatter/bvt_analysis_formatter.js +192 -192
  75. package/lib/formatter/feature_data_format.d.ts +14 -14
  76. package/lib/formatter/feature_data_format.js +80 -80
  77. package/lib/formatter/fixtures/typescript.d.ts +2 -2
  78. package/lib/formatter/fixtures/typescript.js +5 -5
  79. package/lib/formatter/get_color_fns.d.ts +15 -15
  80. package/lib/formatter/get_color_fns.js +55 -55
  81. package/lib/formatter/helpers/duration_helpers.d.ts +2 -2
  82. package/lib/formatter/helpers/duration_helpers.js +8 -8
  83. package/lib/formatter/helpers/event_data_collector.d.ts +30 -30
  84. package/lib/formatter/helpers/event_data_collector.js +125 -125
  85. package/lib/formatter/helpers/formatters.d.ts +6 -6
  86. package/lib/formatter/helpers/formatters.js +44 -44
  87. package/lib/formatter/helpers/gherkin_document_parser.d.ts +5 -5
  88. package/lib/formatter/helpers/gherkin_document_parser.js +65 -65
  89. package/lib/formatter/helpers/index.d.ts +10 -10
  90. package/lib/formatter/helpers/index.js +51 -51
  91. package/lib/formatter/helpers/issue_helpers.d.ts +19 -19
  92. package/lib/formatter/helpers/issue_helpers.js +58 -58
  93. package/lib/formatter/helpers/keyword_type.d.ts +11 -11
  94. package/lib/formatter/helpers/keyword_type.js +31 -31
  95. package/lib/formatter/helpers/location_helpers.d.ts +2 -2
  96. package/lib/formatter/helpers/location_helpers.js +16 -16
  97. package/lib/formatter/helpers/pickle_parser.d.ts +17 -17
  98. package/lib/formatter/helpers/pickle_parser.js +27 -27
  99. package/lib/formatter/helpers/report_generator.d.ts +107 -103
  100. package/lib/formatter/helpers/report_generator.js +310 -247
  101. package/lib/formatter/helpers/report_generator.js.map +1 -1
  102. package/lib/formatter/helpers/step_argument_formatter.d.ts +2 -2
  103. package/lib/formatter/helpers/step_argument_formatter.js +47 -47
  104. package/lib/formatter/helpers/summary_helpers.d.ts +9 -9
  105. package/lib/formatter/helpers/summary_helpers.js +95 -95
  106. package/lib/formatter/helpers/test_case_attempt_formatter.d.ts +12 -12
  107. package/lib/formatter/helpers/test_case_attempt_formatter.js +113 -113
  108. package/lib/formatter/helpers/test_case_attempt_parser.d.ts +32 -32
  109. package/lib/formatter/helpers/test_case_attempt_parser.js +134 -134
  110. package/lib/formatter/helpers/upload_serivce.d.ts +9 -9
  111. package/lib/formatter/helpers/upload_serivce.js +46 -46
  112. package/lib/formatter/helpers/uploader.d.ts +11 -11
  113. package/lib/formatter/helpers/uploader.js +56 -56
  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 +1 -1
@@ -1,114 +1,114 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.formatTestCaseAttempt = void 0;
30
- const indent_string_1 = __importDefault(require("indent-string"));
31
- const messages = __importStar(require("@cucumber/messages"));
32
- const figures_1 = __importDefault(require("figures"));
33
- const location_helpers_1 = require("./location_helpers");
34
- const test_case_attempt_parser_1 = require("./test_case_attempt_parser");
35
- const step_argument_formatter_1 = require("./step_argument_formatter");
36
- const value_checker_1 = require("../../value_checker");
37
- const CHARACTERS = new Map([
38
- [messages.TestStepResultStatus.AMBIGUOUS, figures_1.default.cross],
39
- [messages.TestStepResultStatus.FAILED, figures_1.default.cross],
40
- [messages.TestStepResultStatus.PASSED, figures_1.default.tick],
41
- [messages.TestStepResultStatus.PENDING, '?'],
42
- [messages.TestStepResultStatus.SKIPPED, '-'],
43
- [messages.TestStepResultStatus.UNDEFINED, '?'],
44
- ]);
45
- function getStepMessage(testStep) {
46
- switch (testStep.result.status) {
47
- case messages.TestStepResultStatus.AMBIGUOUS:
48
- case messages.TestStepResultStatus.FAILED:
49
- return testStep.result.message;
50
- case messages.TestStepResultStatus.UNDEFINED:
51
- return `${'Undefined. Implement with the following snippet:' + '\n\n'}${(0, indent_string_1.default)(testStep.snippet, 2)}\n`;
52
- case messages.TestStepResultStatus.PENDING:
53
- return 'Pending';
54
- }
55
- return '';
56
- }
57
- function formatStep({ colorFns, testStep, printAttachments, }) {
58
- const { name, result: { status }, actionLocation, attachments, } = testStep;
59
- const colorFn = colorFns.forStatus(status);
60
- const identifier = testStep.keyword + (0, value_checker_1.valueOrDefault)(testStep.text, '');
61
- let text = colorFn(`${CHARACTERS.get(status)} ${identifier}`);
62
- if ((0, value_checker_1.doesHaveValue)(name)) {
63
- text += colorFn(` (${name})`);
64
- }
65
- if ((0, value_checker_1.doesHaveValue)(actionLocation)) {
66
- text += ` # ${colorFns.location((0, location_helpers_1.formatLocation)(actionLocation))}`;
67
- }
68
- text += '\n';
69
- if ((0, value_checker_1.doesHaveValue)(testStep.argument)) {
70
- const argumentsText = (0, step_argument_formatter_1.formatStepArgument)(testStep.argument);
71
- text += (0, indent_string_1.default)(`${colorFn(argumentsText)}\n`, 4);
72
- }
73
- if ((0, value_checker_1.valueOrDefault)(printAttachments, true)) {
74
- attachments.forEach(({ body, mediaType, fileName }) => {
75
- let message = '';
76
- if (mediaType === 'text/plain') {
77
- message = `: ${body}`;
78
- }
79
- else if (fileName) {
80
- message = `: ${fileName}`;
81
- }
82
- text += (0, indent_string_1.default)(`Attachment (${mediaType})${message}\n`, 4);
83
- });
84
- }
85
- const message = getStepMessage(testStep);
86
- if (message !== '') {
87
- text += `${(0, indent_string_1.default)(colorFn(message), 4)}\n`;
88
- }
89
- return text;
90
- }
91
- function formatTestCaseAttempt({ colorFns, snippetBuilder, supportCodeLibrary, testCaseAttempt, printAttachments, }) {
92
- const parsed = (0, test_case_attempt_parser_1.parseTestCaseAttempt)({
93
- snippetBuilder,
94
- testCaseAttempt,
95
- supportCodeLibrary,
96
- });
97
- let text = `Scenario: ${parsed.testCase.name}`;
98
- text += getAttemptText(parsed.testCase.attempt, testCaseAttempt.willBeRetried);
99
- text += ` # ${colorFns.location((0, location_helpers_1.formatLocation)(parsed.testCase.sourceLocation))}\n`;
100
- parsed.testSteps.forEach((testStep) => {
101
- text += formatStep({ colorFns, testStep, printAttachments });
102
- });
103
- return `${text}\n`;
104
- }
105
- exports.formatTestCaseAttempt = formatTestCaseAttempt;
106
- function getAttemptText(attempt, willBeRetried) {
107
- if (attempt > 0 || willBeRetried) {
108
- const numberStr = (attempt + 1).toString();
109
- const retriedStr = willBeRetried ? ', retried' : '';
110
- return ` (attempt ${numberStr}${retriedStr})`;
111
- }
112
- return '';
113
- }
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.formatTestCaseAttempt = void 0;
30
+ const indent_string_1 = __importDefault(require("indent-string"));
31
+ const messages = __importStar(require("@cucumber/messages"));
32
+ const figures_1 = __importDefault(require("figures"));
33
+ const location_helpers_1 = require("./location_helpers");
34
+ const test_case_attempt_parser_1 = require("./test_case_attempt_parser");
35
+ const step_argument_formatter_1 = require("./step_argument_formatter");
36
+ const value_checker_1 = require("../../value_checker");
37
+ const CHARACTERS = new Map([
38
+ [messages.TestStepResultStatus.AMBIGUOUS, figures_1.default.cross],
39
+ [messages.TestStepResultStatus.FAILED, figures_1.default.cross],
40
+ [messages.TestStepResultStatus.PASSED, figures_1.default.tick],
41
+ [messages.TestStepResultStatus.PENDING, '?'],
42
+ [messages.TestStepResultStatus.SKIPPED, '-'],
43
+ [messages.TestStepResultStatus.UNDEFINED, '?'],
44
+ ]);
45
+ function getStepMessage(testStep) {
46
+ switch (testStep.result.status) {
47
+ case messages.TestStepResultStatus.AMBIGUOUS:
48
+ case messages.TestStepResultStatus.FAILED:
49
+ return testStep.result.message;
50
+ case messages.TestStepResultStatus.UNDEFINED:
51
+ return `${'Undefined. Implement with the following snippet:' + '\n\n'}${(0, indent_string_1.default)(testStep.snippet, 2)}\n`;
52
+ case messages.TestStepResultStatus.PENDING:
53
+ return 'Pending';
54
+ }
55
+ return '';
56
+ }
57
+ function formatStep({ colorFns, testStep, printAttachments, }) {
58
+ const { name, result: { status }, actionLocation, attachments, } = testStep;
59
+ const colorFn = colorFns.forStatus(status);
60
+ const identifier = testStep.keyword + (0, value_checker_1.valueOrDefault)(testStep.text, '');
61
+ let text = colorFn(`${CHARACTERS.get(status)} ${identifier}`);
62
+ if ((0, value_checker_1.doesHaveValue)(name)) {
63
+ text += colorFn(` (${name})`);
64
+ }
65
+ if ((0, value_checker_1.doesHaveValue)(actionLocation)) {
66
+ text += ` # ${colorFns.location((0, location_helpers_1.formatLocation)(actionLocation))}`;
67
+ }
68
+ text += '\n';
69
+ if ((0, value_checker_1.doesHaveValue)(testStep.argument)) {
70
+ const argumentsText = (0, step_argument_formatter_1.formatStepArgument)(testStep.argument);
71
+ text += (0, indent_string_1.default)(`${colorFn(argumentsText)}\n`, 4);
72
+ }
73
+ if ((0, value_checker_1.valueOrDefault)(printAttachments, true)) {
74
+ attachments.forEach(({ body, mediaType, fileName }) => {
75
+ let message = '';
76
+ if (mediaType === 'text/plain') {
77
+ message = `: ${body}`;
78
+ }
79
+ else if (fileName) {
80
+ message = `: ${fileName}`;
81
+ }
82
+ text += (0, indent_string_1.default)(`Attachment (${mediaType})${message}\n`, 4);
83
+ });
84
+ }
85
+ const message = getStepMessage(testStep);
86
+ if (message !== '') {
87
+ text += `${(0, indent_string_1.default)(colorFn(message), 4)}\n`;
88
+ }
89
+ return text;
90
+ }
91
+ function formatTestCaseAttempt({ colorFns, snippetBuilder, supportCodeLibrary, testCaseAttempt, printAttachments, }) {
92
+ const parsed = (0, test_case_attempt_parser_1.parseTestCaseAttempt)({
93
+ snippetBuilder,
94
+ testCaseAttempt,
95
+ supportCodeLibrary,
96
+ });
97
+ let text = `Scenario: ${parsed.testCase.name}`;
98
+ text += getAttemptText(parsed.testCase.attempt, testCaseAttempt.willBeRetried);
99
+ text += ` # ${colorFns.location((0, location_helpers_1.formatLocation)(parsed.testCase.sourceLocation))}\n`;
100
+ parsed.testSteps.forEach((testStep) => {
101
+ text += formatStep({ colorFns, testStep, printAttachments });
102
+ });
103
+ return `${text}\n`;
104
+ }
105
+ exports.formatTestCaseAttempt = formatTestCaseAttempt;
106
+ function getAttemptText(attempt, willBeRetried) {
107
+ if (attempt > 0 || willBeRetried) {
108
+ const numberStr = (attempt + 1).toString();
109
+ const retriedStr = willBeRetried ? ', retried' : '';
110
+ return ` (attempt ${numberStr}${retriedStr})`;
111
+ }
112
+ return '';
113
+ }
114
114
  //# sourceMappingURL=test_case_attempt_formatter.js.map
@@ -1,32 +1,32 @@
1
- import * as messages from '@cucumber/messages';
2
- import { ITestCaseAttempt } from './event_data_collector';
3
- import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder';
4
- import { ISupportCodeLibrary } from '../../support_code_library_builder/types';
5
- import { ILineAndUri } from '../../types';
6
- export interface IParsedTestStep {
7
- actionLocation?: ILineAndUri;
8
- argument?: messages.PickleStepArgument;
9
- attachments: messages.Attachment[];
10
- keyword: string;
11
- name?: string;
12
- result: messages.TestStepResult;
13
- snippet?: string;
14
- sourceLocation?: ILineAndUri;
15
- text?: string;
16
- }
17
- export interface IParsedTestCase {
18
- attempt: number;
19
- name: string;
20
- sourceLocation?: ILineAndUri;
21
- worstTestStepResult: messages.TestStepResult;
22
- }
23
- export interface IParsedTestCaseAttempt {
24
- testCase: IParsedTestCase;
25
- testSteps: IParsedTestStep[];
26
- }
27
- export interface IParseTestCaseAttemptRequest {
28
- testCaseAttempt: ITestCaseAttempt;
29
- snippetBuilder: StepDefinitionSnippetBuilder;
30
- supportCodeLibrary: ISupportCodeLibrary;
31
- }
32
- export declare function parseTestCaseAttempt({ testCaseAttempt, snippetBuilder, supportCodeLibrary, }: IParseTestCaseAttemptRequest): IParsedTestCaseAttempt;
1
+ import * as messages from '@cucumber/messages';
2
+ import { ITestCaseAttempt } from './event_data_collector';
3
+ import StepDefinitionSnippetBuilder from '../step_definition_snippet_builder';
4
+ import { ISupportCodeLibrary } from '../../support_code_library_builder/types';
5
+ import { ILineAndUri } from '../../types';
6
+ export interface IParsedTestStep {
7
+ actionLocation?: ILineAndUri;
8
+ argument?: messages.PickleStepArgument;
9
+ attachments: messages.Attachment[];
10
+ keyword: string;
11
+ name?: string;
12
+ result: messages.TestStepResult;
13
+ snippet?: string;
14
+ sourceLocation?: ILineAndUri;
15
+ text?: string;
16
+ }
17
+ export interface IParsedTestCase {
18
+ attempt: number;
19
+ name: string;
20
+ sourceLocation?: ILineAndUri;
21
+ worstTestStepResult: messages.TestStepResult;
22
+ }
23
+ export interface IParsedTestCaseAttempt {
24
+ testCase: IParsedTestCase;
25
+ testSteps: IParsedTestStep[];
26
+ }
27
+ export interface IParseTestCaseAttemptRequest {
28
+ testCaseAttempt: ITestCaseAttempt;
29
+ snippetBuilder: StepDefinitionSnippetBuilder;
30
+ supportCodeLibrary: ISupportCodeLibrary;
31
+ }
32
+ export declare function parseTestCaseAttempt({ testCaseAttempt, snippetBuilder, supportCodeLibrary, }: IParseTestCaseAttemptRequest): IParsedTestCaseAttempt;
@@ -1,135 +1,135 @@
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.parseTestCaseAttempt = void 0;
27
- const keyword_type_1 = require("./keyword_type");
28
- const gherkin_document_parser_1 = require("./gherkin_document_parser");
29
- const pickle_parser_1 = require("./pickle_parser");
30
- const messages = __importStar(require("@cucumber/messages"));
31
- const value_checker_1 = require("../../value_checker");
32
- const messages_1 = require("@cucumber/messages");
33
- function parseStep({ isBeforeHook, gherkinStepMap, keyword, keywordType, pickleStep, pickleUri, snippetBuilder, supportCodeLibrary, testStep, testStepResult, testStepAttachments, }) {
34
- const out = {
35
- attachments: testStepAttachments,
36
- keyword: (0, value_checker_1.doesHaveValue)(testStep.pickleStepId)
37
- ? keyword
38
- : isBeforeHook
39
- ? 'Before'
40
- : 'After',
41
- result: testStepResult,
42
- };
43
- if ((0, value_checker_1.doesHaveValue)(testStep.hookId)) {
44
- let hookDefinition;
45
- if (isBeforeHook) {
46
- hookDefinition = supportCodeLibrary.beforeTestCaseHookDefinitions.find((x) => x.id === testStep.hookId);
47
- }
48
- else {
49
- hookDefinition = supportCodeLibrary.afterTestCaseHookDefinitions.find((x) => x.id === testStep.hookId);
50
- }
51
- out.actionLocation = {
52
- uri: hookDefinition.uri,
53
- line: hookDefinition.line,
54
- };
55
- out.name = hookDefinition.name;
56
- }
57
- if ((0, value_checker_1.doesHaveValue)(testStep.stepDefinitionIds) &&
58
- testStep.stepDefinitionIds.length === 1) {
59
- const stepDefinition = supportCodeLibrary.stepDefinitions.find((x) => x.id === testStep.stepDefinitionIds[0]);
60
- out.actionLocation = {
61
- uri: stepDefinition.uri,
62
- line: stepDefinition.line,
63
- };
64
- }
65
- if ((0, value_checker_1.doesHaveValue)(testStep.pickleStepId)) {
66
- out.sourceLocation = {
67
- uri: pickleUri,
68
- line: gherkinStepMap[pickleStep.astNodeIds[0]].location.line,
69
- };
70
- out.text = pickleStep.text;
71
- if ((0, value_checker_1.doesHaveValue)(pickleStep.argument)) {
72
- out.argument = pickleStep.argument;
73
- }
74
- }
75
- if (testStepResult.status === messages.TestStepResultStatus.UNDEFINED) {
76
- out.snippet = snippetBuilder.build({ keywordType, pickleStep });
77
- }
78
- return out;
79
- }
80
- // Converts a testCaseAttempt into a json object with all data needed for
81
- // displaying it in a pretty format
82
- function parseTestCaseAttempt({ testCaseAttempt, snippetBuilder, supportCodeLibrary, }) {
83
- const { testCase, pickle, gherkinDocument } = testCaseAttempt;
84
- const gherkinStepMap = (0, gherkin_document_parser_1.getGherkinStepMap)(gherkinDocument);
85
- const gherkinScenarioLocationMap = (0, gherkin_document_parser_1.getGherkinScenarioLocationMap)(gherkinDocument);
86
- const pickleStepMap = (0, pickle_parser_1.getPickleStepMap)(pickle);
87
- const relativePickleUri = pickle.uri;
88
- const parsedTestCase = {
89
- attempt: testCaseAttempt.attempt,
90
- name: pickle.name,
91
- sourceLocation: {
92
- uri: relativePickleUri,
93
- line: gherkinScenarioLocationMap[pickle.astNodeIds[pickle.astNodeIds.length - 1]].line,
94
- },
95
- worstTestStepResult: testCaseAttempt.worstTestStepResult,
96
- };
97
- const parsedTestSteps = [];
98
- let isBeforeHook = true;
99
- let previousKeywordType = keyword_type_1.KeywordType.Precondition;
100
- testCase.testSteps.forEach((testStep) => {
101
- const testStepResult = testCaseAttempt.stepResults[testStep.id] || new messages_1.TestStepResult();
102
- isBeforeHook = isBeforeHook && (0, value_checker_1.doesHaveValue)(testStep.hookId);
103
- let keyword, keywordType, pickleStep;
104
- if ((0, value_checker_1.doesHaveValue)(testStep.pickleStepId)) {
105
- pickleStep = pickleStepMap[testStep.pickleStepId];
106
- keyword = (0, pickle_parser_1.getStepKeyword)({ pickleStep, gherkinStepMap });
107
- keywordType = (0, keyword_type_1.getStepKeywordType)({
108
- keyword,
109
- language: gherkinDocument.feature.language,
110
- previousKeywordType,
111
- });
112
- }
113
- const parsedStep = parseStep({
114
- isBeforeHook,
115
- gherkinStepMap,
116
- keyword,
117
- keywordType,
118
- pickleStep,
119
- pickleUri: relativePickleUri,
120
- snippetBuilder,
121
- supportCodeLibrary,
122
- testStep,
123
- testStepResult,
124
- testStepAttachments: (0, value_checker_1.valueOrDefault)(testCaseAttempt.stepAttachments[testStep.id], []),
125
- });
126
- parsedTestSteps.push(parsedStep);
127
- previousKeywordType = keywordType;
128
- });
129
- return {
130
- testCase: parsedTestCase,
131
- testSteps: parsedTestSteps,
132
- };
133
- }
134
- exports.parseTestCaseAttempt = parseTestCaseAttempt;
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.parseTestCaseAttempt = void 0;
27
+ const keyword_type_1 = require("./keyword_type");
28
+ const gherkin_document_parser_1 = require("./gherkin_document_parser");
29
+ const pickle_parser_1 = require("./pickle_parser");
30
+ const messages = __importStar(require("@cucumber/messages"));
31
+ const value_checker_1 = require("../../value_checker");
32
+ const messages_1 = require("@cucumber/messages");
33
+ function parseStep({ isBeforeHook, gherkinStepMap, keyword, keywordType, pickleStep, pickleUri, snippetBuilder, supportCodeLibrary, testStep, testStepResult, testStepAttachments, }) {
34
+ const out = {
35
+ attachments: testStepAttachments,
36
+ keyword: (0, value_checker_1.doesHaveValue)(testStep.pickleStepId)
37
+ ? keyword
38
+ : isBeforeHook
39
+ ? 'Before'
40
+ : 'After',
41
+ result: testStepResult,
42
+ };
43
+ if ((0, value_checker_1.doesHaveValue)(testStep.hookId)) {
44
+ let hookDefinition;
45
+ if (isBeforeHook) {
46
+ hookDefinition = supportCodeLibrary.beforeTestCaseHookDefinitions.find((x) => x.id === testStep.hookId);
47
+ }
48
+ else {
49
+ hookDefinition = supportCodeLibrary.afterTestCaseHookDefinitions.find((x) => x.id === testStep.hookId);
50
+ }
51
+ out.actionLocation = {
52
+ uri: hookDefinition.uri,
53
+ line: hookDefinition.line,
54
+ };
55
+ out.name = hookDefinition.name;
56
+ }
57
+ if ((0, value_checker_1.doesHaveValue)(testStep.stepDefinitionIds) &&
58
+ testStep.stepDefinitionIds.length === 1) {
59
+ const stepDefinition = supportCodeLibrary.stepDefinitions.find((x) => x.id === testStep.stepDefinitionIds[0]);
60
+ out.actionLocation = {
61
+ uri: stepDefinition.uri,
62
+ line: stepDefinition.line,
63
+ };
64
+ }
65
+ if ((0, value_checker_1.doesHaveValue)(testStep.pickleStepId)) {
66
+ out.sourceLocation = {
67
+ uri: pickleUri,
68
+ line: gherkinStepMap[pickleStep.astNodeIds[0]].location.line,
69
+ };
70
+ out.text = pickleStep.text;
71
+ if ((0, value_checker_1.doesHaveValue)(pickleStep.argument)) {
72
+ out.argument = pickleStep.argument;
73
+ }
74
+ }
75
+ if (testStepResult.status === messages.TestStepResultStatus.UNDEFINED) {
76
+ out.snippet = snippetBuilder.build({ keywordType, pickleStep });
77
+ }
78
+ return out;
79
+ }
80
+ // Converts a testCaseAttempt into a json object with all data needed for
81
+ // displaying it in a pretty format
82
+ function parseTestCaseAttempt({ testCaseAttempt, snippetBuilder, supportCodeLibrary, }) {
83
+ const { testCase, pickle, gherkinDocument } = testCaseAttempt;
84
+ const gherkinStepMap = (0, gherkin_document_parser_1.getGherkinStepMap)(gherkinDocument);
85
+ const gherkinScenarioLocationMap = (0, gherkin_document_parser_1.getGherkinScenarioLocationMap)(gherkinDocument);
86
+ const pickleStepMap = (0, pickle_parser_1.getPickleStepMap)(pickle);
87
+ const relativePickleUri = pickle.uri;
88
+ const parsedTestCase = {
89
+ attempt: testCaseAttempt.attempt,
90
+ name: pickle.name,
91
+ sourceLocation: {
92
+ uri: relativePickleUri,
93
+ line: gherkinScenarioLocationMap[pickle.astNodeIds[pickle.astNodeIds.length - 1]].line,
94
+ },
95
+ worstTestStepResult: testCaseAttempt.worstTestStepResult,
96
+ };
97
+ const parsedTestSteps = [];
98
+ let isBeforeHook = true;
99
+ let previousKeywordType = keyword_type_1.KeywordType.Precondition;
100
+ testCase.testSteps.forEach((testStep) => {
101
+ const testStepResult = testCaseAttempt.stepResults[testStep.id] || new messages_1.TestStepResult();
102
+ isBeforeHook = isBeforeHook && (0, value_checker_1.doesHaveValue)(testStep.hookId);
103
+ let keyword, keywordType, pickleStep;
104
+ if ((0, value_checker_1.doesHaveValue)(testStep.pickleStepId)) {
105
+ pickleStep = pickleStepMap[testStep.pickleStepId];
106
+ keyword = (0, pickle_parser_1.getStepKeyword)({ pickleStep, gherkinStepMap });
107
+ keywordType = (0, keyword_type_1.getStepKeywordType)({
108
+ keyword,
109
+ language: gherkinDocument.feature.language,
110
+ previousKeywordType,
111
+ });
112
+ }
113
+ const parsedStep = parseStep({
114
+ isBeforeHook,
115
+ gherkinStepMap,
116
+ keyword,
117
+ keywordType,
118
+ pickleStep,
119
+ pickleUri: relativePickleUri,
120
+ snippetBuilder,
121
+ supportCodeLibrary,
122
+ testStep,
123
+ testStepResult,
124
+ testStepAttachments: (0, value_checker_1.valueOrDefault)(testCaseAttempt.stepAttachments[testStep.id], []),
125
+ });
126
+ parsedTestSteps.push(parsedStep);
127
+ previousKeywordType = keywordType;
128
+ });
129
+ return {
130
+ testCase: parsedTestCase,
131
+ testSteps: parsedTestSteps,
132
+ };
133
+ }
134
+ exports.parseTestCaseAttempt = parseTestCaseAttempt;
135
135
  //# sourceMappingURL=test_case_attempt_parser.js.map
@@ -1,9 +1,9 @@
1
- import FormData from 'form-data';
2
- declare class RunUploadService {
3
- private runsApiBaseURL;
4
- private accessToken;
5
- constructor(runsApiBaseURL: string, accessToken: string);
6
- createRunDocument(name: string): Promise<any>;
7
- upload(formData: FormData): Promise<void>;
8
- }
9
- export { RunUploadService };
1
+ import FormData from 'form-data';
2
+ declare class RunUploadService {
3
+ private runsApiBaseURL;
4
+ private accessToken;
5
+ constructor(runsApiBaseURL: string, accessToken: string);
6
+ createRunDocument(name: string): Promise<any>;
7
+ upload(formData: FormData): Promise<void>;
8
+ }
9
+ export { RunUploadService };