@dev-blinq/cucumber-js 1.0.11 → 1.0.14

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 (246) 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_analysis_formatter.d.ts +18 -0
  74. package/lib/formatter/bvt_analysis_formatter.js +207 -0
  75. package/lib/formatter/bvt_analysis_formatter.js.map +1 -0
  76. package/lib/formatter/bvt_formatter.d.ts +6 -9
  77. package/lib/formatter/bvt_formatter.js +24 -62
  78. package/lib/formatter/bvt_formatter.js.map +1 -1
  79. package/lib/formatter/feature_data_format.d.ts +14 -14
  80. package/lib/formatter/feature_data_format.js +80 -80
  81. package/lib/formatter/fixtures/typescript.d.ts +2 -2
  82. package/lib/formatter/fixtures/typescript.js +5 -5
  83. package/lib/formatter/get_color_fns.d.ts +15 -15
  84. package/lib/formatter/get_color_fns.js +55 -55
  85. package/lib/formatter/helpers/duration_helpers.d.ts +2 -2
  86. package/lib/formatter/helpers/duration_helpers.js +8 -8
  87. package/lib/formatter/helpers/event_data_collector.d.ts +30 -30
  88. package/lib/formatter/helpers/event_data_collector.js +125 -125
  89. package/lib/formatter/helpers/formatters.d.ts +6 -6
  90. package/lib/formatter/helpers/formatters.js +46 -44
  91. package/lib/formatter/helpers/formatters.js.map +1 -1
  92. package/lib/formatter/helpers/gherkin_document_parser.d.ts +5 -5
  93. package/lib/formatter/helpers/gherkin_document_parser.js +65 -65
  94. package/lib/formatter/helpers/index.d.ts +10 -10
  95. package/lib/formatter/helpers/index.js +51 -51
  96. package/lib/formatter/helpers/issue_helpers.d.ts +19 -19
  97. package/lib/formatter/helpers/issue_helpers.js +58 -58
  98. package/lib/formatter/helpers/keyword_type.d.ts +11 -11
  99. package/lib/formatter/helpers/keyword_type.js +31 -31
  100. package/lib/formatter/helpers/location_helpers.d.ts +2 -2
  101. package/lib/formatter/helpers/location_helpers.js +16 -16
  102. package/lib/formatter/helpers/pickle_parser.d.ts +17 -17
  103. package/lib/formatter/helpers/pickle_parser.js +27 -27
  104. package/lib/formatter/helpers/report_generator.d.ts +96 -91
  105. package/lib/formatter/helpers/report_generator.js +247 -247
  106. package/lib/formatter/helpers/report_generator.js.map +1 -1
  107. package/lib/formatter/helpers/step_argument_formatter.d.ts +2 -2
  108. package/lib/formatter/helpers/step_argument_formatter.js +47 -47
  109. package/lib/formatter/helpers/summary_helpers.d.ts +9 -9
  110. package/lib/formatter/helpers/summary_helpers.js +95 -95
  111. package/lib/formatter/helpers/test_case_attempt_formatter.d.ts +12 -12
  112. package/lib/formatter/helpers/test_case_attempt_formatter.js +113 -113
  113. package/lib/formatter/helpers/test_case_attempt_parser.d.ts +32 -32
  114. package/lib/formatter/helpers/test_case_attempt_parser.js +134 -134
  115. package/lib/formatter/helpers/upload_serivce.d.ts +9 -9
  116. package/lib/formatter/helpers/upload_serivce.js +46 -46
  117. package/lib/formatter/helpers/upload_serivce.js.map +1 -1
  118. package/lib/formatter/helpers/uploader.d.ts +8 -0
  119. package/lib/formatter/helpers/uploader.js +51 -0
  120. package/lib/formatter/helpers/uploader.js.map +1 -0
  121. package/lib/formatter/helpers/usage_helpers/index.d.ts +23 -23
  122. package/lib/formatter/helpers/usage_helpers/index.js +110 -110
  123. package/lib/formatter/html_formatter.d.ts +7 -7
  124. package/lib/formatter/html_formatter.js +29 -29
  125. package/lib/formatter/index.d.ts +53 -53
  126. package/lib/formatter/index.js +20 -20
  127. package/lib/formatter/json_formatter.d.ts +78 -78
  128. package/lib/formatter/json_formatter.js +229 -229
  129. package/lib/formatter/junit_formatter.d.ts +17 -17
  130. package/lib/formatter/junit_formatter.js +180 -180
  131. package/lib/formatter/message_formatter.d.ts +5 -5
  132. package/lib/formatter/message_formatter.js +14 -14
  133. package/lib/formatter/progress_bar_formatter.d.ts +18 -18
  134. package/lib/formatter/progress_bar_formatter.js +98 -98
  135. package/lib/formatter/progress_formatter.d.ts +9 -9
  136. package/lib/formatter/progress_formatter.js +58 -58
  137. package/lib/formatter/rerun_formatter.d.ts +13 -13
  138. package/lib/formatter/rerun_formatter.js +79 -79
  139. package/lib/formatter/snippets_formatter.d.ts +6 -6
  140. package/lib/formatter/snippets_formatter.js +60 -60
  141. package/lib/formatter/step_definition_snippet_builder/index.d.ts +20 -20
  142. package/lib/formatter/step_definition_snippet_builder/index.js +45 -45
  143. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.d.ts +7 -7
  144. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js +45 -45
  145. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.d.ts +16 -16
  146. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js +10 -10
  147. package/lib/formatter/summary_formatter.d.ts +14 -14
  148. package/lib/formatter/summary_formatter.js +67 -67
  149. package/lib/formatter/usage_formatter.d.ts +6 -6
  150. package/lib/formatter/usage_formatter.js +97 -97
  151. package/lib/formatter/usage_json_formatter.d.ts +7 -7
  152. package/lib/formatter/usage_json_formatter.js +33 -33
  153. package/lib/index.d.ts +58 -58
  154. package/lib/index.js +108 -108
  155. package/lib/logger.d.ts +5 -5
  156. package/lib/logger.js +2 -2
  157. package/lib/models/data_table.d.ts +10 -10
  158. package/lib/models/data_table.js +45 -45
  159. package/lib/models/definition.d.ts +55 -55
  160. package/lib/models/definition.js +21 -21
  161. package/lib/models/gherkin_step_keyword.d.ts +1 -1
  162. package/lib/models/gherkin_step_keyword.js +2 -2
  163. package/lib/models/pickle_order.d.ts +1 -1
  164. package/lib/models/pickle_order.js +2 -2
  165. package/lib/models/step_definition.d.ts +11 -11
  166. package/lib/models/step_definition.js +36 -36
  167. package/lib/models/test_case_hook_definition.d.ts +10 -10
  168. package/lib/models/test_case_hook_definition.js +26 -26
  169. package/lib/models/test_run_hook_definition.d.ts +3 -3
  170. package/lib/models/test_run_hook_definition.js +9 -9
  171. package/lib/models/test_step_hook_definition.d.ts +9 -9
  172. package/lib/models/test_step_hook_definition.js +25 -25
  173. package/lib/pickle_filter.d.ts +42 -42
  174. package/lib/pickle_filter.js +98 -98
  175. package/lib/plugin/index.d.ts +2 -2
  176. package/lib/plugin/index.js +18 -18
  177. package/lib/plugin/plugin_manager.d.ts +13 -13
  178. package/lib/plugin/plugin_manager.js +35 -35
  179. package/lib/plugin/types.d.ts +14 -14
  180. package/lib/plugin/types.js +2 -2
  181. package/lib/publish/http_stream.d.ts +30 -30
  182. package/lib/publish/http_stream.js +111 -111
  183. package/lib/publish/index.d.ts +2 -2
  184. package/lib/publish/index.js +4 -4
  185. package/lib/publish/publish_plugin.d.ts +2 -2
  186. package/lib/publish/publish_plugin.js +47 -47
  187. package/lib/runtime/assemble_test_cases.d.ts +13 -13
  188. package/lib/runtime/assemble_test_cases.js +87 -87
  189. package/lib/runtime/attachment_manager/index.d.ts +33 -33
  190. package/lib/runtime/attachment_manager/index.js +118 -118
  191. package/lib/runtime/format_error.d.ts +2 -2
  192. package/lib/runtime/format_error.js +35 -35
  193. package/lib/runtime/helpers.d.ts +6 -6
  194. package/lib/runtime/helpers.js +100 -100
  195. package/lib/runtime/index.d.ts +40 -40
  196. package/lib/runtime/index.js +75 -75
  197. package/lib/runtime/parallel/command_types.d.ts +32 -32
  198. package/lib/runtime/parallel/command_types.js +2 -2
  199. package/lib/runtime/parallel/coordinator.d.ts +72 -72
  200. package/lib/runtime/parallel/coordinator.js +221 -221
  201. package/lib/runtime/parallel/run_worker.d.ts +1 -1
  202. package/lib/runtime/parallel/run_worker.js +28 -28
  203. package/lib/runtime/parallel/worker.d.ts +26 -26
  204. package/lib/runtime/parallel/worker.js +86 -86
  205. package/lib/runtime/run_test_run_hooks.d.ts +3 -3
  206. package/lib/runtime/run_test_run_hooks.js +27 -27
  207. package/lib/runtime/step_runner.d.ts +16 -16
  208. package/lib/runtime/step_runner.js +87 -87
  209. package/lib/runtime/stopwatch.d.ts +12 -12
  210. package/lib/runtime/stopwatch.js +33 -33
  211. package/lib/runtime/test_case_runner.d.ts +54 -54
  212. package/lib/runtime/test_case_runner.js +267 -267
  213. package/lib/step_arguments.d.ts +6 -6
  214. package/lib/step_arguments.js +18 -18
  215. package/lib/support_code_library_builder/build_parameter_type.d.ts +3 -3
  216. package/lib/support_code_library_builder/build_parameter_type.js +12 -12
  217. package/lib/support_code_library_builder/get_definition_line_and_uri.d.ts +3 -3
  218. package/lib/support_code_library_builder/get_definition_line_and_uri.js +28 -28
  219. package/lib/support_code_library_builder/index.d.ts +74 -74
  220. package/lib/support_code_library_builder/index.js +296 -296
  221. package/lib/support_code_library_builder/parallel_can_assign_helpers.d.ts +2 -2
  222. package/lib/support_code_library_builder/parallel_can_assign_helpers.js +15 -15
  223. package/lib/support_code_library_builder/sourced_parameter_type_registry.d.ts +7 -7
  224. package/lib/support_code_library_builder/sourced_parameter_type_registry.js +18 -18
  225. package/lib/support_code_library_builder/types.d.ts +88 -88
  226. package/lib/support_code_library_builder/types.js +2 -2
  227. package/lib/support_code_library_builder/validate_arguments.d.ts +12 -12
  228. package/lib/support_code_library_builder/validate_arguments.js +72 -72
  229. package/lib/support_code_library_builder/world.d.ts +18 -18
  230. package/lib/support_code_library_builder/world.js +10 -10
  231. package/lib/time.d.ts +18 -18
  232. package/lib/time.js +60 -60
  233. package/lib/try_require.d.ts +7 -7
  234. package/lib/try_require.js +22 -22
  235. package/lib/types/index.d.ts +4 -4
  236. package/lib/types/index.js +2 -2
  237. package/lib/uncaught_exception_manager.d.ts +7 -7
  238. package/lib/uncaught_exception_manager.js +11 -11
  239. package/lib/user_code_runner.d.ts +14 -14
  240. package/lib/user_code_runner.js +81 -81
  241. package/lib/value_checker.d.ts +3 -3
  242. package/lib/value_checker.js +18 -18
  243. package/lib/version.d.ts +1 -1
  244. package/lib/version.js +5 -5
  245. package/lib/version.js.map +1 -1
  246. package/package.json +3 -1
@@ -1,88 +1,88 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assembleTestCases = void 0;
4
- const value_checker_1 = require("../value_checker");
5
- async function assembleTestCases({ eventBroadcaster, newId, pickles, supportCodeLibrary, }) {
6
- const result = {};
7
- for (const pickle of pickles) {
8
- const { id: pickleId } = pickle;
9
- const testCaseId = newId();
10
- const fromBeforeHooks = makeBeforeHookSteps({
11
- supportCodeLibrary,
12
- pickle,
13
- newId,
14
- });
15
- const fromStepDefinitions = makeSteps({
16
- pickle,
17
- supportCodeLibrary,
18
- newId,
19
- });
20
- const fromAfterHooks = makeAfterHookSteps({
21
- supportCodeLibrary,
22
- pickle,
23
- newId,
24
- });
25
- const testCase = {
26
- pickleId,
27
- id: testCaseId,
28
- testSteps: [
29
- ...fromBeforeHooks,
30
- ...fromStepDefinitions,
31
- ...fromAfterHooks,
32
- ],
33
- };
34
- eventBroadcaster.emit('envelope', { testCase });
35
- result[pickleId] = testCase;
36
- }
37
- return result;
38
- }
39
- exports.assembleTestCases = assembleTestCases;
40
- function makeAfterHookSteps({ supportCodeLibrary, pickle, newId, }) {
41
- return supportCodeLibrary.afterTestCaseHookDefinitions
42
- .slice(0)
43
- .reverse()
44
- .filter((hookDefinition) => hookDefinition.appliesToTestCase(pickle))
45
- .map((hookDefinition) => ({
46
- id: newId(),
47
- hookId: hookDefinition.id,
48
- }));
49
- }
50
- function makeBeforeHookSteps({ supportCodeLibrary, pickle, newId, }) {
51
- return supportCodeLibrary.beforeTestCaseHookDefinitions
52
- .filter((hookDefinition) => hookDefinition.appliesToTestCase(pickle))
53
- .map((hookDefinition) => ({
54
- id: newId(),
55
- hookId: hookDefinition.id,
56
- }));
57
- }
58
- function makeSteps({ pickle, supportCodeLibrary, newId, }) {
59
- return pickle.steps.map((pickleStep) => {
60
- const stepDefinitions = supportCodeLibrary.stepDefinitions.filter((stepDefinition) => stepDefinition.matchesStepName(pickleStep.text));
61
- return {
62
- id: newId(),
63
- pickleStepId: pickleStep.id,
64
- stepDefinitionIds: stepDefinitions.map((stepDefinition) => stepDefinition.id),
65
- stepMatchArgumentsLists: stepDefinitions.map((stepDefinition) => {
66
- const result = stepDefinition.expression.match(pickleStep.text);
67
- return {
68
- stepMatchArguments: result.map((arg) => {
69
- return {
70
- group: mapArgumentGroup(arg.group),
71
- parameterTypeName: arg.parameterType.name,
72
- };
73
- }),
74
- };
75
- }),
76
- };
77
- });
78
- }
79
- function mapArgumentGroup(group) {
80
- return {
81
- start: group.start,
82
- value: group.value,
83
- children: (0, value_checker_1.doesHaveValue)(group.children)
84
- ? group.children.map((child) => mapArgumentGroup(child))
85
- : undefined,
86
- };
87
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assembleTestCases = void 0;
4
+ const value_checker_1 = require("../value_checker");
5
+ async function assembleTestCases({ eventBroadcaster, newId, pickles, supportCodeLibrary, }) {
6
+ const result = {};
7
+ for (const pickle of pickles) {
8
+ const { id: pickleId } = pickle;
9
+ const testCaseId = newId();
10
+ const fromBeforeHooks = makeBeforeHookSteps({
11
+ supportCodeLibrary,
12
+ pickle,
13
+ newId,
14
+ });
15
+ const fromStepDefinitions = makeSteps({
16
+ pickle,
17
+ supportCodeLibrary,
18
+ newId,
19
+ });
20
+ const fromAfterHooks = makeAfterHookSteps({
21
+ supportCodeLibrary,
22
+ pickle,
23
+ newId,
24
+ });
25
+ const testCase = {
26
+ pickleId,
27
+ id: testCaseId,
28
+ testSteps: [
29
+ ...fromBeforeHooks,
30
+ ...fromStepDefinitions,
31
+ ...fromAfterHooks,
32
+ ],
33
+ };
34
+ eventBroadcaster.emit('envelope', { testCase });
35
+ result[pickleId] = testCase;
36
+ }
37
+ return result;
38
+ }
39
+ exports.assembleTestCases = assembleTestCases;
40
+ function makeAfterHookSteps({ supportCodeLibrary, pickle, newId, }) {
41
+ return supportCodeLibrary.afterTestCaseHookDefinitions
42
+ .slice(0)
43
+ .reverse()
44
+ .filter((hookDefinition) => hookDefinition.appliesToTestCase(pickle))
45
+ .map((hookDefinition) => ({
46
+ id: newId(),
47
+ hookId: hookDefinition.id,
48
+ }));
49
+ }
50
+ function makeBeforeHookSteps({ supportCodeLibrary, pickle, newId, }) {
51
+ return supportCodeLibrary.beforeTestCaseHookDefinitions
52
+ .filter((hookDefinition) => hookDefinition.appliesToTestCase(pickle))
53
+ .map((hookDefinition) => ({
54
+ id: newId(),
55
+ hookId: hookDefinition.id,
56
+ }));
57
+ }
58
+ function makeSteps({ pickle, supportCodeLibrary, newId, }) {
59
+ return pickle.steps.map((pickleStep) => {
60
+ const stepDefinitions = supportCodeLibrary.stepDefinitions.filter((stepDefinition) => stepDefinition.matchesStepName(pickleStep.text));
61
+ return {
62
+ id: newId(),
63
+ pickleStepId: pickleStep.id,
64
+ stepDefinitionIds: stepDefinitions.map((stepDefinition) => stepDefinition.id),
65
+ stepMatchArgumentsLists: stepDefinitions.map((stepDefinition) => {
66
+ const result = stepDefinition.expression.match(pickleStep.text);
67
+ return {
68
+ stepMatchArguments: result.map((arg) => {
69
+ return {
70
+ group: mapArgumentGroup(arg.group),
71
+ parameterTypeName: arg.parameterType.name,
72
+ };
73
+ }),
74
+ };
75
+ }),
76
+ };
77
+ });
78
+ }
79
+ function mapArgumentGroup(group) {
80
+ return {
81
+ start: group.start,
82
+ value: group.value,
83
+ children: (0, value_checker_1.doesHaveValue)(group.children)
84
+ ? group.children.map((child) => mapArgumentGroup(child))
85
+ : undefined,
86
+ };
87
+ }
88
88
  //# sourceMappingURL=assemble_test_cases.js.map
@@ -1,33 +1,33 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { Readable } from 'stream';
4
- import * as messages from '@cucumber/messages';
5
- export interface IAttachmentMedia {
6
- encoding: messages.AttachmentContentEncoding;
7
- contentType: string;
8
- }
9
- export interface IAttachment {
10
- data: string;
11
- media: IAttachmentMedia;
12
- fileName?: string;
13
- }
14
- export type IAttachFunction = (attachment: IAttachment) => void;
15
- export interface ICreateAttachmentOptions {
16
- mediaType: string;
17
- fileName?: string;
18
- }
19
- export type ICreateStringAttachment = (data: string, mediaTypeOrOptions?: string | ICreateAttachmentOptions) => void;
20
- export type ICreateBufferAttachment = (data: Buffer, mediaTypeOrOptions: string | ICreateAttachmentOptions) => void;
21
- export type ICreateStreamAttachment = (data: Readable, mediaTypeOrOptions: string | ICreateAttachmentOptions) => Promise<void>;
22
- export type ICreateStreamAttachmentWithCallback = (data: Readable, mediaTypeOrOptions: string | ICreateAttachmentOptions, callback: () => void) => void;
23
- export type ICreateAttachment = ICreateStringAttachment & ICreateBufferAttachment & ICreateStreamAttachment & ICreateStreamAttachmentWithCallback;
24
- export type ICreateLog = (text: string) => void;
25
- export default class AttachmentManager {
26
- private readonly onAttachment;
27
- constructor(onAttachment: IAttachFunction);
28
- log(text: string): void | Promise<void>;
29
- create(data: Buffer | Readable | string, mediaTypeOrOptions?: string | ICreateAttachmentOptions, callback?: () => void): void | Promise<void>;
30
- createBufferAttachment(data: Buffer, mediaType: string, fileName?: string): void;
31
- createStreamAttachment(data: Readable, mediaType: string, fileName?: string, callback?: () => void): void | Promise<void>;
32
- createStringAttachment(data: string, media: IAttachmentMedia, fileName?: string): void;
33
- }
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { Readable } from 'stream';
4
+ import * as messages from '@cucumber/messages';
5
+ export interface IAttachmentMedia {
6
+ encoding: messages.AttachmentContentEncoding;
7
+ contentType: string;
8
+ }
9
+ export interface IAttachment {
10
+ data: string;
11
+ media: IAttachmentMedia;
12
+ fileName?: string;
13
+ }
14
+ export type IAttachFunction = (attachment: IAttachment) => void;
15
+ export interface ICreateAttachmentOptions {
16
+ mediaType: string;
17
+ fileName?: string;
18
+ }
19
+ export type ICreateStringAttachment = (data: string, mediaTypeOrOptions?: string | ICreateAttachmentOptions) => void;
20
+ export type ICreateBufferAttachment = (data: Buffer, mediaTypeOrOptions: string | ICreateAttachmentOptions) => void;
21
+ export type ICreateStreamAttachment = (data: Readable, mediaTypeOrOptions: string | ICreateAttachmentOptions) => Promise<void>;
22
+ export type ICreateStreamAttachmentWithCallback = (data: Readable, mediaTypeOrOptions: string | ICreateAttachmentOptions, callback: () => void) => void;
23
+ export type ICreateAttachment = ICreateStringAttachment & ICreateBufferAttachment & ICreateStreamAttachment & ICreateStreamAttachmentWithCallback;
24
+ export type ICreateLog = (text: string) => void;
25
+ export default class AttachmentManager {
26
+ private readonly onAttachment;
27
+ constructor(onAttachment: IAttachFunction);
28
+ log(text: string): void | Promise<void>;
29
+ create(data: Buffer | Readable | string, mediaTypeOrOptions?: string | ICreateAttachmentOptions, callback?: () => void): void | Promise<void>;
30
+ createBufferAttachment(data: Buffer, mediaType: string, fileName?: string): void;
31
+ createStreamAttachment(data: Readable, mediaType: string, fileName?: string, callback?: () => void): void | Promise<void>;
32
+ createStringAttachment(data: string, media: IAttachmentMedia, fileName?: string): void;
33
+ }
@@ -1,119 +1,119 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const is_stream_1 = __importDefault(require("is-stream"));
30
- const messages = __importStar(require("@cucumber/messages"));
31
- const value_checker_1 = require("../../value_checker");
32
- class AttachmentManager {
33
- constructor(onAttachment) {
34
- this.onAttachment = onAttachment;
35
- }
36
- log(text) {
37
- return this.create(text, 'text/x.cucumber.log+plain');
38
- }
39
- create(data, mediaTypeOrOptions, callback) {
40
- const options = normaliseOptions(mediaTypeOrOptions);
41
- if (Buffer.isBuffer(data)) {
42
- if ((0, value_checker_1.doesNotHaveValue)(options.mediaType)) {
43
- throw Error('Buffer attachments must specify a media type');
44
- }
45
- this.createBufferAttachment(data, options.mediaType, options.fileName);
46
- }
47
- else if (is_stream_1.default.readable(data)) {
48
- if ((0, value_checker_1.doesNotHaveValue)(options.mediaType)) {
49
- throw Error('Stream attachments must specify a media type');
50
- }
51
- return this.createStreamAttachment(data, options.mediaType, options.fileName, callback);
52
- }
53
- else if (typeof data === 'string') {
54
- if ((0, value_checker_1.doesNotHaveValue)(options.mediaType)) {
55
- options.mediaType = 'text/plain';
56
- }
57
- if (options.mediaType.startsWith('base64:')) {
58
- this.createStringAttachment(data, {
59
- encoding: messages.AttachmentContentEncoding.BASE64,
60
- contentType: options.mediaType.replace('base64:', ''),
61
- }, options.fileName);
62
- }
63
- else {
64
- this.createStringAttachment(data, {
65
- encoding: messages.AttachmentContentEncoding.IDENTITY,
66
- contentType: options.mediaType,
67
- }, options.fileName);
68
- }
69
- }
70
- else {
71
- throw Error('Invalid attachment data: must be a buffer, readable stream, or string');
72
- }
73
- }
74
- createBufferAttachment(data, mediaType, fileName) {
75
- this.createStringAttachment(data.toString('base64'), {
76
- encoding: messages.AttachmentContentEncoding.BASE64,
77
- contentType: mediaType,
78
- }, fileName);
79
- }
80
- createStreamAttachment(data, mediaType, fileName, callback) {
81
- const promise = new Promise((resolve, reject) => {
82
- const buffers = [];
83
- data.on('data', (chunk) => {
84
- buffers.push(chunk);
85
- });
86
- data.on('end', () => {
87
- this.createBufferAttachment(Buffer.concat(buffers), mediaType, fileName);
88
- resolve();
89
- });
90
- data.on('error', reject);
91
- });
92
- if ((0, value_checker_1.doesHaveValue)(callback)) {
93
- promise.then(callback, callback);
94
- }
95
- else {
96
- return promise;
97
- }
98
- }
99
- createStringAttachment(data, media, fileName) {
100
- this.onAttachment({
101
- data,
102
- media,
103
- ...(fileName ? { fileName } : {}),
104
- });
105
- }
106
- }
107
- exports.default = AttachmentManager;
108
- function normaliseOptions(mediaTypeOrOptions) {
109
- if (!mediaTypeOrOptions) {
110
- return {};
111
- }
112
- if (typeof mediaTypeOrOptions === 'string') {
113
- return {
114
- mediaType: mediaTypeOrOptions,
115
- };
116
- }
117
- return mediaTypeOrOptions;
118
- }
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const is_stream_1 = __importDefault(require("is-stream"));
30
+ const messages = __importStar(require("@cucumber/messages"));
31
+ const value_checker_1 = require("../../value_checker");
32
+ class AttachmentManager {
33
+ constructor(onAttachment) {
34
+ this.onAttachment = onAttachment;
35
+ }
36
+ log(text) {
37
+ return this.create(text, 'text/x.cucumber.log+plain');
38
+ }
39
+ create(data, mediaTypeOrOptions, callback) {
40
+ const options = normaliseOptions(mediaTypeOrOptions);
41
+ if (Buffer.isBuffer(data)) {
42
+ if ((0, value_checker_1.doesNotHaveValue)(options.mediaType)) {
43
+ throw Error('Buffer attachments must specify a media type');
44
+ }
45
+ this.createBufferAttachment(data, options.mediaType, options.fileName);
46
+ }
47
+ else if (is_stream_1.default.readable(data)) {
48
+ if ((0, value_checker_1.doesNotHaveValue)(options.mediaType)) {
49
+ throw Error('Stream attachments must specify a media type');
50
+ }
51
+ return this.createStreamAttachment(data, options.mediaType, options.fileName, callback);
52
+ }
53
+ else if (typeof data === 'string') {
54
+ if ((0, value_checker_1.doesNotHaveValue)(options.mediaType)) {
55
+ options.mediaType = 'text/plain';
56
+ }
57
+ if (options.mediaType.startsWith('base64:')) {
58
+ this.createStringAttachment(data, {
59
+ encoding: messages.AttachmentContentEncoding.BASE64,
60
+ contentType: options.mediaType.replace('base64:', ''),
61
+ }, options.fileName);
62
+ }
63
+ else {
64
+ this.createStringAttachment(data, {
65
+ encoding: messages.AttachmentContentEncoding.IDENTITY,
66
+ contentType: options.mediaType,
67
+ }, options.fileName);
68
+ }
69
+ }
70
+ else {
71
+ throw Error('Invalid attachment data: must be a buffer, readable stream, or string');
72
+ }
73
+ }
74
+ createBufferAttachment(data, mediaType, fileName) {
75
+ this.createStringAttachment(data.toString('base64'), {
76
+ encoding: messages.AttachmentContentEncoding.BASE64,
77
+ contentType: mediaType,
78
+ }, fileName);
79
+ }
80
+ createStreamAttachment(data, mediaType, fileName, callback) {
81
+ const promise = new Promise((resolve, reject) => {
82
+ const buffers = [];
83
+ data.on('data', (chunk) => {
84
+ buffers.push(chunk);
85
+ });
86
+ data.on('end', () => {
87
+ this.createBufferAttachment(Buffer.concat(buffers), mediaType, fileName);
88
+ resolve();
89
+ });
90
+ data.on('error', reject);
91
+ });
92
+ if ((0, value_checker_1.doesHaveValue)(callback)) {
93
+ promise.then(callback, callback);
94
+ }
95
+ else {
96
+ return promise;
97
+ }
98
+ }
99
+ createStringAttachment(data, media, fileName) {
100
+ this.onAttachment({
101
+ data,
102
+ media,
103
+ ...(fileName ? { fileName } : {}),
104
+ });
105
+ }
106
+ }
107
+ exports.default = AttachmentManager;
108
+ function normaliseOptions(mediaTypeOrOptions) {
109
+ if (!mediaTypeOrOptions) {
110
+ return {};
111
+ }
112
+ if (typeof mediaTypeOrOptions === 'string') {
113
+ return {
114
+ mediaType: mediaTypeOrOptions,
115
+ };
116
+ }
117
+ return mediaTypeOrOptions;
118
+ }
119
119
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import { TestStepResult } from '@cucumber/messages';
2
- export declare function formatError(error: Error, filterStackTraces: boolean): Pick<TestStepResult, 'message' | 'exception'>;
1
+ import { TestStepResult } from '@cucumber/messages';
2
+ export declare function formatError(error: Error, filterStackTraces: boolean): Pick<TestStepResult, 'message' | 'exception'>;
@@ -1,36 +1,36 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.formatError = void 0;
7
- const assertion_error_formatter_1 = require("assertion-error-formatter");
8
- const error_stack_parser_1 = __importDefault(require("error-stack-parser"));
9
- const filter_stack_trace_1 = require("../filter_stack_trace");
10
- function formatError(error, filterStackTraces) {
11
- let filteredStack;
12
- if (filterStackTraces) {
13
- try {
14
- filteredStack = (0, filter_stack_trace_1.filterStackTrace)(error_stack_parser_1.default.parse(error))
15
- .map((f) => f.source)
16
- .join('\n');
17
- }
18
- catch (_a) {
19
- // if we weren't able to parse and filter, we'll settle for the original
20
- }
21
- }
22
- const message = (0, assertion_error_formatter_1.format)(error, {
23
- colorFns: {
24
- errorStack: (stack) => filteredStack ? `\n${filteredStack}` : stack,
25
- },
26
- });
27
- return {
28
- message,
29
- exception: {
30
- type: error.name || 'Error',
31
- message: typeof error === 'string' ? error : error.message,
32
- },
33
- };
34
- }
35
- exports.formatError = formatError;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.formatError = void 0;
7
+ const assertion_error_formatter_1 = require("assertion-error-formatter");
8
+ const error_stack_parser_1 = __importDefault(require("error-stack-parser"));
9
+ const filter_stack_trace_1 = require("../filter_stack_trace");
10
+ function formatError(error, filterStackTraces) {
11
+ let filteredStack;
12
+ if (filterStackTraces) {
13
+ try {
14
+ filteredStack = (0, filter_stack_trace_1.filterStackTrace)(error_stack_parser_1.default.parse(error))
15
+ .map((f) => f.source)
16
+ .join('\n');
17
+ }
18
+ catch (_a) {
19
+ // if we weren't able to parse and filter, we'll settle for the original
20
+ }
21
+ }
22
+ const message = (0, assertion_error_formatter_1.format)(error, {
23
+ colorFns: {
24
+ errorStack: (stack) => filteredStack ? `\n${filteredStack}` : stack,
25
+ },
26
+ });
27
+ return {
28
+ message,
29
+ exception: {
30
+ type: error.name || 'Error',
31
+ message: typeof error === 'string' ? error : error.message,
32
+ },
33
+ };
34
+ }
35
+ exports.formatError = formatError;
36
36
  //# sourceMappingURL=format_error.js.map
@@ -1,6 +1,6 @@
1
- import StepDefinition from '../models/step_definition';
2
- import * as messages from '@cucumber/messages';
3
- import { IRuntimeOptions } from '.';
4
- export declare function getAmbiguousStepException(stepDefinitions: StepDefinition[]): string;
5
- export declare function retriesForPickle(pickle: messages.Pickle, options: IRuntimeOptions): number;
6
- export declare function shouldCauseFailure(status: messages.TestStepResultStatus, options: IRuntimeOptions): boolean;
1
+ import StepDefinition from '../models/step_definition';
2
+ import * as messages from '@cucumber/messages';
3
+ import { IRuntimeOptions } from '.';
4
+ export declare function getAmbiguousStepException(stepDefinitions: StepDefinition[]): string;
5
+ export declare function retriesForPickle(pickle: messages.Pickle, options: IRuntimeOptions): number;
6
+ export declare function shouldCauseFailure(status: messages.TestStepResultStatus, options: IRuntimeOptions): boolean;