@cucumber/cucumber 7.0.0 → 7.1.0

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 (85) hide show
  1. package/CHANGELOG.md +22 -17
  2. package/README.md +7 -11
  3. package/lib/cli/argv_parser.js.map +1 -1
  4. package/lib/cli/configuration_builder.js.map +1 -1
  5. package/lib/cli/helpers.js.map +1 -1
  6. package/lib/cli/i18n.js.map +1 -1
  7. package/lib/cli/index.js +17 -8
  8. package/lib/cli/index.js.map +1 -1
  9. package/lib/cli/install_validator.js.map +1 -1
  10. package/lib/cli/option_splitter.js.map +1 -1
  11. package/lib/cli/profile_loader.js.map +1 -1
  12. package/lib/cli/publish_banner.js.map +1 -1
  13. package/lib/cli/run.js.map +1 -1
  14. package/lib/formatter/builder.js.map +1 -1
  15. package/lib/formatter/get_color_fns.js.map +1 -1
  16. package/lib/formatter/helpers/event_data_collector.js.map +1 -1
  17. package/lib/formatter/helpers/gherkin_document_parser.js.map +1 -1
  18. package/lib/formatter/helpers/index.js.map +1 -1
  19. package/lib/formatter/helpers/issue_helpers.js.map +1 -1
  20. package/lib/formatter/helpers/keyword_type.js.map +1 -1
  21. package/lib/formatter/helpers/location_helpers.js.map +1 -1
  22. package/lib/formatter/helpers/pickle_parser.js.map +1 -1
  23. package/lib/formatter/helpers/step_argument_formatter.js.map +1 -1
  24. package/lib/formatter/helpers/summary_helpers.js.map +1 -1
  25. package/lib/formatter/helpers/test_case_attempt_formatter.js.map +1 -1
  26. package/lib/formatter/helpers/test_case_attempt_parser.js.map +1 -1
  27. package/lib/formatter/helpers/usage_helpers/index.js.map +1 -1
  28. package/lib/formatter/html_formatter.js +2 -2
  29. package/lib/formatter/html_formatter.js.map +1 -1
  30. package/lib/formatter/http_stream.d.ts +8 -9
  31. package/lib/formatter/http_stream.js +58 -54
  32. package/lib/formatter/http_stream.js.map +1 -1
  33. package/lib/formatter/index.js.map +1 -1
  34. package/lib/formatter/json_formatter.js.map +1 -1
  35. package/lib/formatter/message_formatter.js.map +1 -1
  36. package/lib/formatter/progress_bar_formatter.js.map +1 -1
  37. package/lib/formatter/progress_formatter.js.map +1 -1
  38. package/lib/formatter/rerun_formatter.js.map +1 -1
  39. package/lib/formatter/snippets_formatter.js +1 -1
  40. package/lib/formatter/snippets_formatter.js.map +1 -1
  41. package/lib/formatter/step_definition_snippet_builder/index.js +1 -1
  42. package/lib/formatter/step_definition_snippet_builder/index.js.map +1 -1
  43. package/lib/formatter/step_definition_snippet_builder/javascript_snippet_syntax.js.map +1 -1
  44. package/lib/formatter/step_definition_snippet_builder/snippet_syntax.js.map +1 -1
  45. package/lib/formatter/summary_formatter.js.map +1 -1
  46. package/lib/formatter/usage_formatter.js.map +1 -1
  47. package/lib/formatter/usage_json_formatter.js.map +1 -1
  48. package/lib/index.d.ts +4 -4
  49. package/lib/index.js.map +1 -1
  50. package/lib/models/data_table.js.map +1 -1
  51. package/lib/models/definition.js.map +1 -1
  52. package/lib/models/step_definition.js.map +1 -1
  53. package/lib/models/test_case_hook_definition.js.map +1 -1
  54. package/lib/models/test_run_hook_definition.js.map +1 -1
  55. package/lib/models/test_step_hook_definition.js.map +1 -1
  56. package/lib/pickle_filter.js.map +1 -1
  57. package/lib/runtime/attachment_manager/index.d.ts +4 -4
  58. package/lib/runtime/attachment_manager/index.js +12 -4
  59. package/lib/runtime/attachment_manager/index.js.map +1 -1
  60. package/lib/runtime/helpers.js.map +1 -1
  61. package/lib/runtime/index.js.map +1 -1
  62. package/lib/runtime/parallel/command_types.js.map +1 -1
  63. package/lib/runtime/parallel/coordinator.js.map +1 -1
  64. package/lib/runtime/parallel/run_worker.js.map +1 -1
  65. package/lib/runtime/parallel/worker.js.map +1 -1
  66. package/lib/runtime/pickle_runner.js.map +1 -1
  67. package/lib/runtime/step_runner.js.map +1 -1
  68. package/lib/runtime/stopwatch.js.map +1 -1
  69. package/lib/stack_trace_filter.js.map +1 -1
  70. package/lib/status.js.map +1 -1
  71. package/lib/step_arguments.js.map +1 -1
  72. package/lib/support_code_library_builder/build_helpers.js.map +1 -1
  73. package/lib/support_code_library_builder/finalize_helpers.js.map +1 -1
  74. package/lib/support_code_library_builder/index.js.map +1 -1
  75. package/lib/support_code_library_builder/types.d.ts +2 -2
  76. package/lib/support_code_library_builder/types.js.map +1 -1
  77. package/lib/support_code_library_builder/validate_arguments.js.map +1 -1
  78. package/lib/support_code_library_builder/world.js.map +1 -1
  79. package/lib/time.js.map +1 -1
  80. package/lib/types/index.js.map +1 -1
  81. package/lib/uncaught_exception_manager.js +2 -12
  82. package/lib/uncaught_exception_manager.js.map +1 -1
  83. package/lib/user_code_runner.js.map +1 -1
  84. package/lib/value_checker.js.map +1 -1
  85. package/package.json +44 -41
@@ -1 +1 @@
1
- {"version":3,"file":"step_argument_formatter.js","sourceRoot":"","sources":["../../../src/formatter/helpers/step_argument_formatter.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA8B;AAC9B,yDAAwD;AAGxD,SAAS,eAAe,CACtB,SAAmD;IAEnD,MAAM,KAAK,GAAG,IAAI,oBAAK,CAAC;QACtB,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,EAAE;YACjB,YAAY,EAAE,EAAE;YAChB,cAAc,EAAE,EAAE;YAClB,IAAI,EAAE,GAAG;YACT,UAAU,EAAE,EAAE;YACd,GAAG,EAAE,EAAE;YACP,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,EAAE;YACf,GAAG,EAAE,EAAE;YACP,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,EAAE;SAChB;QACD,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,CAAC;YACjB,eAAe,EAAE,CAAC;SACnB;KACF,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CACxD,CACF,CAAA;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IACnB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;AACzB,CAAC;AAED,SAAS,eAAe,CACtB,SAAuD;IAEvD,OAAO,QAAQ,SAAS,CAAC,OAAO,OAAO,CAAA;AACzC,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAiC;IAClE,OAAO,kCAAiB,CAAC,GAAG,EAAE;QAC5B,SAAS,EAAE,eAAe;QAC1B,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAA;AACJ,CAAC;AALD,gDAKC"}
1
+ {"version":3,"file":"step_argument_formatter.js","sourceRoot":"","sources":["../../../src/formatter/helpers/step_argument_formatter.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA8B;AAC9B,yDAAwD;AAGxD,SAAS,eAAe,CACtB,SAAmD;IAEnD,MAAM,KAAK,GAAG,IAAI,oBAAK,CAAC;QACtB,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,aAAa,EAAE,EAAE;YACjB,YAAY,EAAE,EAAE;YAChB,cAAc,EAAE,EAAE;YAClB,IAAI,EAAE,GAAG;YACT,UAAU,EAAE,EAAE;YACd,GAAG,EAAE,EAAE;YACP,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,EAAE;YACf,GAAG,EAAE,EAAE;YACP,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,EAAE;SAChB;QACD,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,cAAc,EAAE,CAAC;YACjB,eAAe,EAAE,CAAC;SACnB;KACF,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACrB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CACxD,CACF,CAAA;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IACnB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;AACzB,CAAC;AAED,SAAS,eAAe,CACtB,SAAuD;IAEvD,OAAO,QAAQ,SAAS,CAAC,OAAO,OAAO,CAAA;AACzC,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAiC;IAClE,OAAO,kCAAiB,CAAC,GAAG,EAAE;QAC5B,SAAS,EAAE,eAAe;QAC1B,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAA;AACJ,CAAC;AALD,gDAKC","sourcesContent":["import Table from 'cli-table3'\nimport { parseStepArgument } from '../../step_arguments'\nimport { messages } from '@cucumber/messages'\n\nfunction formatDataTable(\n dataTable: messages.PickleStepArgument.IPickleTable\n): string {\n const table = new Table({\n chars: {\n bottom: '',\n 'bottom-left': '',\n 'bottom-mid': '',\n 'bottom-right': '',\n left: '|',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n middle: '|',\n right: '|',\n 'right-mid': '',\n top: '',\n 'top-left': '',\n 'top-mid': '',\n 'top-right': '',\n },\n style: {\n border: [],\n 'padding-left': 1,\n 'padding-right': 1,\n },\n })\n const rows = dataTable.rows.map((row) =>\n row.cells.map((cell) =>\n cell.value.replace(/\\\\/g, '\\\\\\\\').replace(/\\n/g, '\\\\n')\n )\n )\n table.push(...rows)\n return table.toString()\n}\n\nfunction formatDocString(\n docString: messages.PickleStepArgument.IPickleDocString\n): string {\n return `\"\"\"\\n${docString.content}\\n\"\"\"`\n}\n\nexport function formatStepArgument(arg: messages.IPickleStepArgument): string {\n return parseStepArgument(arg, {\n dataTable: formatDataTable,\n docString: formatDocString,\n })\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"summary_helpers.js","sourceRoot":"","sources":["../../../src/formatter/helpers/summary_helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summary_helpers.js","sourceRoot":"","sources":["../../../src/formatter/helpers/summary_helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import _ from 'lodash'\nimport Duration from 'duration'\nimport Status from '../../status'\nimport { addDurations, getZeroDuration } from '../../time'\nimport { IColorFns } from '../get_color_fns'\nimport { ITestCaseAttempt } from './event_data_collector'\nimport { messages, TimeConversion } from '@cucumber/messages'\n\nconst STATUS_REPORT_ORDER = [\n Status.FAILED,\n Status.AMBIGUOUS,\n Status.UNDEFINED,\n Status.PENDING,\n Status.SKIPPED,\n Status.PASSED,\n]\n\nexport interface IFormatSummaryRequest {\n colorFns: IColorFns\n testCaseAttempts: ITestCaseAttempt[]\n testRunDuration: messages.IDuration\n}\n\nexport function formatSummary({\n colorFns,\n testCaseAttempts,\n testRunDuration,\n}: IFormatSummaryRequest): string {\n const testCaseResults: messages.TestStepFinished.ITestStepResult[] = []\n const testStepResults: messages.TestStepFinished.ITestStepResult[] = []\n let totalStepDuration = getZeroDuration()\n testCaseAttempts.forEach(({ testCase, worstTestStepResult, stepResults }) => {\n Object.values(stepResults).forEach((stepResult) => {\n totalStepDuration = addDurations(totalStepDuration, stepResult.duration)\n })\n if (!worstTestStepResult.willBeRetried) {\n testCaseResults.push(worstTestStepResult)\n _.each(testCase.testSteps, (testStep) => {\n if (testStep.pickleStepId !== '') {\n testStepResults.push(stepResults[testStep.id])\n }\n })\n }\n })\n const scenarioSummary = getCountSummary({\n colorFns,\n objects: testCaseResults,\n type: 'scenario',\n })\n const stepSummary = getCountSummary({\n colorFns,\n objects: testStepResults,\n type: 'step',\n })\n const durationSummary = `${getDurationSummary(\n testRunDuration\n )} (executing steps: ${getDurationSummary(totalStepDuration)})\\n`\n return [scenarioSummary, stepSummary, durationSummary].join('\\n')\n}\n\ninterface IGetCountSummaryRequest {\n colorFns: IColorFns\n objects: messages.TestStepFinished.ITestStepResult[]\n type: string\n}\n\nfunction getCountSummary({\n colorFns,\n objects,\n type,\n}: IGetCountSummaryRequest): string {\n const counts = _.chain(objects).groupBy('status').mapValues('length').value()\n const total = _.chain(counts).values().sum().value()\n let text = `${total.toString()} ${type}${total === 1 ? '' : 's'}`\n if (total > 0) {\n const details: string[] = []\n STATUS_REPORT_ORDER.forEach((status) => {\n if (counts[status] > 0) {\n details.push(\n colorFns.forStatus(status)(\n `${counts[status].toString()} ${Status[status].toLowerCase()}`\n )\n )\n }\n })\n text += ` (${details.join(', ')})`\n }\n return text\n}\n\nfunction getDurationSummary(durationMsg: messages.IDuration): string {\n const start = new Date(0)\n const end = new Date(TimeConversion.durationToMilliseconds(durationMsg))\n const duration = new Duration(start, end)\n // Use spaces in toString method for readability and to avoid %Ls which is a format\n return duration.toString('%Ms m %S . %L s').replace(/ /g, '')\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"test_case_attempt_formatter.js","sourceRoot":"","sources":["../../../src/formatter/helpers/test_case_attempt_formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test_case_attempt_formatter.js","sourceRoot":"","sources":["../../../src/formatter/helpers/test_case_attempt_formatter.ts"],"names":[],"mappings":"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","sourcesContent":["import indentString from 'indent-string'\nimport Status from '../../status'\nimport figures from 'figures'\nimport { formatLocation } from './location_helpers'\nimport {\n IParsedTestStep,\n parseTestCaseAttempt,\n} from './test_case_attempt_parser'\nimport { formatStepArgument } from './step_argument_formatter'\nimport { IColorFns } from '../get_color_fns'\nimport { doesHaveValue, valueOrDefault } from '../../value_checker'\nimport { ITestCaseAttempt } from './event_data_collector'\nimport StepDefinitionSnippetBuilder from '../step_definition_snippet_builder'\nimport { ISupportCodeLibrary } from '../../support_code_library_builder/types'\n\nconst CHARACTERS: { [status: number]: string } = {\n [Status.AMBIGUOUS]: figures.cross,\n [Status.FAILED]: figures.cross,\n [Status.PASSED]: figures.tick,\n [Status.PENDING]: '?',\n [Status.SKIPPED]: '-',\n [Status.UNDEFINED]: '?',\n}\n\nfunction getStepMessage(testStep: IParsedTestStep): string {\n switch (testStep.result.status) {\n case Status.AMBIGUOUS:\n case Status.FAILED:\n return testStep.result.message\n case Status.UNDEFINED:\n return `${\n 'Undefined. Implement with the following snippet:' + '\\n\\n'\n }${indentString(testStep.snippet, 2)}\\n`\n case Status.PENDING:\n return 'Pending'\n }\n return ''\n}\n\ninterface IFormatStepRequest {\n colorFns: IColorFns\n testStep: IParsedTestStep\n}\n\nfunction formatStep({ colorFns, testStep }: IFormatStepRequest): string {\n const {\n result: { status },\n actionLocation,\n attachments,\n } = testStep\n const colorFn = colorFns.forStatus(status)\n const identifier = testStep.keyword + valueOrDefault(testStep.text, '')\n let text = colorFn(`${CHARACTERS[status]} ${identifier}`)\n if (doesHaveValue(actionLocation)) {\n text += ` # ${colorFns.location(formatLocation(actionLocation))}`\n }\n text += '\\n'\n if (doesHaveValue(testStep.argument)) {\n const argumentsText = formatStepArgument(testStep.argument)\n text += indentString(`${colorFn(argumentsText)}\\n`, 4)\n }\n attachments.forEach(({ body, mediaType }) => {\n const message = mediaType === 'text/plain' ? `: ${body}` : ''\n text += indentString(`Attachment (${mediaType})${message}\\n`, 4)\n })\n const message = getStepMessage(testStep)\n if (message !== '') {\n text += `${indentString(colorFn(message), 4)}\\n`\n }\n return text\n}\n\nexport interface IFormatTestCaseAttemptRequest {\n colorFns: IColorFns\n cwd: string\n testCaseAttempt: ITestCaseAttempt\n snippetBuilder: StepDefinitionSnippetBuilder\n supportCodeLibrary: ISupportCodeLibrary\n}\n\nexport function formatTestCaseAttempt({\n colorFns,\n cwd,\n snippetBuilder,\n supportCodeLibrary,\n testCaseAttempt,\n}: IFormatTestCaseAttemptRequest): string {\n const parsed = parseTestCaseAttempt({\n cwd,\n snippetBuilder,\n testCaseAttempt,\n supportCodeLibrary,\n })\n let text = `Scenario: ${parsed.testCase.name}`\n text += getAttemptText(\n parsed.testCase.attempt,\n parsed.testCase.worstTestStepResult.willBeRetried\n )\n text += ` # ${colorFns.location(\n formatLocation(parsed.testCase.sourceLocation)\n )}\\n`\n parsed.testSteps.forEach((testStep) => {\n text += formatStep({ colorFns, testStep })\n })\n return `${text}\\n`\n}\n\nfunction getAttemptText(attempt: number, willBeRetried: boolean): string {\n if (attempt > 0 || willBeRetried) {\n const numberStr = (attempt + 1).toString()\n const retriedStr = willBeRetried ? ', retried' : ''\n return ` (attempt ${numberStr}${retriedStr})`\n }\n return ''\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"test_case_attempt_parser.js","sourceRoot":"","sources":["../../../src/formatter/helpers/test_case_attempt_parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test_case_attempt_parser.js","sourceRoot":"","sources":["../../../src/formatter/helpers/test_case_attempt_parser.ts"],"names":[],"mappings":"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","sourcesContent":["import _, { Dictionary } from 'lodash'\nimport Status from '../../status'\nimport { getStepKeywordType, KeywordType } from './keyword_type'\nimport {\n getGherkinScenarioLocationMap,\n getGherkinStepMap,\n} from './gherkin_document_parser'\nimport { getPickleStepMap, getStepKeyword } from './pickle_parser'\nimport path from 'path'\nimport { messages } from '@cucumber/messages'\nimport { ITestCaseAttempt } from './event_data_collector'\nimport StepDefinitionSnippetBuilder from '../step_definition_snippet_builder'\nimport { ISupportCodeLibrary } from '../../support_code_library_builder/types'\nimport { doesHaveValue, valueOrDefault } from '../../value_checker'\nimport TestCaseHookDefinition from '../../models/test_case_hook_definition'\nimport { ILineAndUri } from '../../types'\n\nexport interface IParsedTestStep {\n actionLocation?: ILineAndUri\n argument?: messages.IPickleStepArgument\n attachments: messages.IAttachment[]\n keyword: string\n result: messages.TestStepFinished.ITestStepResult\n snippet?: string\n sourceLocation?: ILineAndUri\n text?: string\n}\n\nexport interface IParsedTestCase {\n attempt: number\n name: string\n sourceLocation?: ILineAndUri\n worstTestStepResult: messages.TestStepFinished.ITestStepResult\n}\n\nexport interface IParsedTestCaseAttempt {\n testCase: IParsedTestCase\n testSteps: IParsedTestStep[]\n}\n\ninterface IParseStepRequest {\n isBeforeHook: boolean\n gherkinStepMap: Dictionary<messages.GherkinDocument.Feature.IStep>\n keyword: string\n keywordType: KeywordType\n pickleStep: messages.Pickle.IPickleStep\n pickleUri: string\n snippetBuilder: StepDefinitionSnippetBuilder\n supportCodeLibrary: ISupportCodeLibrary\n testStep: messages.TestCase.ITestStep\n testStepResult: messages.TestStepFinished.ITestStepResult\n testStepAttachments: messages.IAttachment[]\n}\n\nfunction parseStep({\n isBeforeHook,\n gherkinStepMap,\n keyword,\n keywordType,\n pickleStep,\n pickleUri,\n snippetBuilder,\n supportCodeLibrary,\n testStep,\n testStepResult,\n testStepAttachments,\n}: IParseStepRequest): IParsedTestStep {\n const out: IParsedTestStep = {\n attachments: testStepAttachments,\n keyword:\n testStep.pickleStepId !== ''\n ? keyword\n : isBeforeHook\n ? 'Before'\n : 'After',\n result: testStepResult,\n }\n if (testStep.hookId !== '') {\n let hookDefinition: TestCaseHookDefinition\n if (isBeforeHook) {\n hookDefinition = supportCodeLibrary.beforeTestCaseHookDefinitions.find(\n (x) => x.id === testStep.hookId\n )\n } else {\n hookDefinition = supportCodeLibrary.afterTestCaseHookDefinitions.find(\n (x) => x.id === testStep.hookId\n )\n }\n out.actionLocation = {\n uri: hookDefinition.uri,\n line: hookDefinition.line,\n }\n }\n if (\n doesHaveValue(testStep.stepDefinitionIds) &&\n testStep.stepDefinitionIds.length === 1\n ) {\n const stepDefinition = supportCodeLibrary.stepDefinitions.find(\n (x) => x.id === testStep.stepDefinitionIds[0]\n )\n out.actionLocation = {\n uri: stepDefinition.uri,\n line: stepDefinition.line,\n }\n }\n if (testStep.pickleStepId !== '') {\n out.sourceLocation = {\n uri: pickleUri,\n line: gherkinStepMap[pickleStep.astNodeIds[0]].location.line,\n }\n out.text = pickleStep.text\n if (doesHaveValue(pickleStep.argument)) {\n out.argument = pickleStep.argument\n }\n }\n if (testStepResult.status === Status.UNDEFINED) {\n out.snippet = snippetBuilder.build({ keywordType, pickleStep })\n }\n return out\n}\n\nexport interface IParseTestCaseAttemptRequest {\n cwd: string\n testCaseAttempt: ITestCaseAttempt\n snippetBuilder: StepDefinitionSnippetBuilder\n supportCodeLibrary: ISupportCodeLibrary\n}\n\n// Converts a testCaseAttempt into a json object with all data needed for\n// displaying it in a pretty format\nexport function parseTestCaseAttempt({\n cwd,\n testCaseAttempt,\n snippetBuilder,\n supportCodeLibrary,\n}: IParseTestCaseAttemptRequest): IParsedTestCaseAttempt {\n const { testCase, pickle, gherkinDocument } = testCaseAttempt\n const gherkinStepMap = getGherkinStepMap(gherkinDocument)\n const gherkinScenarioLocationMap = getGherkinScenarioLocationMap(\n gherkinDocument\n )\n const pickleStepMap = getPickleStepMap(pickle)\n const relativePickleUri = path.relative(cwd, pickle.uri)\n const parsedTestCase: IParsedTestCase = {\n attempt: testCaseAttempt.attempt,\n name: pickle.name,\n sourceLocation: {\n uri: relativePickleUri,\n line: gherkinScenarioLocationMap[_.last(pickle.astNodeIds)].line,\n },\n worstTestStepResult: testCaseAttempt.worstTestStepResult,\n }\n const parsedTestSteps: IParsedTestStep[] = []\n let isBeforeHook = true\n let previousKeywordType = KeywordType.Precondition\n _.each(testCase.testSteps, (testStep) => {\n const testStepResult = testCaseAttempt.stepResults[testStep.id]\n isBeforeHook = isBeforeHook && testStep.hookId !== ''\n let keyword, keywordType, pickleStep\n if (testStep.pickleStepId !== '') {\n pickleStep = pickleStepMap[testStep.pickleStepId]\n keyword = getStepKeyword({ pickleStep, gherkinStepMap })\n keywordType = getStepKeywordType({\n keyword,\n language: gherkinDocument.feature.language,\n previousKeywordType,\n })\n }\n const parsedStep = parseStep({\n isBeforeHook,\n gherkinStepMap,\n keyword,\n keywordType,\n pickleStep,\n pickleUri: relativePickleUri,\n snippetBuilder,\n supportCodeLibrary,\n testStep,\n testStepResult,\n testStepAttachments: valueOrDefault(\n testCaseAttempt.stepAttachments[testStep.id],\n []\n ),\n })\n parsedTestSteps.push(parsedStep)\n previousKeywordType = keywordType\n })\n return {\n testCase: parsedTestCase,\n testSteps: parsedTestSteps,\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/formatter/helpers/usage_helpers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/formatter/helpers/usage_helpers/index.ts"],"names":[],"mappings":"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","sourcesContent":["import _, { Dictionary } from 'lodash'\nimport { getPickleStepMap } from '../pickle_parser'\nimport path from 'path'\nimport { getGherkinStepMap } from '../gherkin_document_parser'\nimport { durationToMilliseconds, millisecondsToDuration } from '../../../time'\nimport { messages } from '@cucumber/messages'\nimport StepDefinition from '../../../models/step_definition'\nimport { doesHaveValue } from '../../../value_checker'\nimport EventDataCollector from '../event_data_collector'\n\nexport interface IUsageMatch {\n duration?: messages.IDuration\n line: number\n text: string\n uri: string\n}\n\nexport interface IUsage {\n code: string\n line: number\n matches: IUsageMatch[]\n meanDuration?: messages.IDuration\n pattern: string\n patternType: string\n uri: string\n}\n\nexport interface IGetUsageRequest {\n cwd: string\n eventDataCollector: EventDataCollector\n stepDefinitions: StepDefinition[]\n}\n\nfunction buildEmptyMapping(\n stepDefinitions: StepDefinition[]\n): Dictionary<IUsage> {\n const mapping: Dictionary<IUsage> = {}\n stepDefinitions.forEach((stepDefinition) => {\n mapping[stepDefinition.id] = {\n code: stepDefinition.unwrappedCode.toString(),\n line: stepDefinition.line,\n pattern: stepDefinition.expression.source,\n patternType: stepDefinition.expression.constructor.name,\n matches: [],\n uri: stepDefinition.uri,\n }\n })\n return mapping\n}\n\nfunction buildMapping({\n cwd,\n stepDefinitions,\n eventDataCollector,\n}: IGetUsageRequest): Dictionary<IUsage> {\n const mapping = buildEmptyMapping(stepDefinitions)\n _.each(eventDataCollector.getTestCaseAttempts(), (testCaseAttempt) => {\n const pickleStepMap = getPickleStepMap(testCaseAttempt.pickle)\n const gherkinStepMap = getGherkinStepMap(testCaseAttempt.gherkinDocument)\n testCaseAttempt.testCase.testSteps.forEach((testStep) => {\n if (\n testStep.pickleStepId !== '' &&\n testStep.stepDefinitionIds.length === 1\n ) {\n const stepDefinitionId = testStep.stepDefinitionIds[0]\n const pickleStep = pickleStepMap[testStep.pickleStepId]\n const gherkinStep = gherkinStepMap[pickleStep.astNodeIds[0]]\n const match: IUsageMatch = {\n line: gherkinStep.location.line,\n text: pickleStep.text,\n uri: path.relative(cwd, testCaseAttempt.pickle.uri),\n }\n const { duration, status } = testCaseAttempt.stepResults[testStep.id]\n if (\n ![\n messages.TestStepFinished.TestStepResult.Status.AMBIGUOUS,\n messages.TestStepFinished.TestStepResult.Status.SKIPPED,\n messages.TestStepFinished.TestStepResult.Status.UNDEFINED,\n ].includes(status) &&\n doesHaveValue(duration)\n ) {\n match.duration = duration\n }\n if (doesHaveValue(mapping[stepDefinitionId])) {\n mapping[stepDefinitionId].matches.push(match)\n }\n }\n })\n })\n return mapping\n}\n\nfunction invertDuration(duration: messages.IDuration): number {\n if (doesHaveValue(duration)) {\n return -1 * durationToMilliseconds(duration)\n }\n return 1\n}\n\nfunction buildResult(mapping: Dictionary<IUsage>): IUsage[] {\n return _.chain(mapping)\n .map(({ matches, ...rest }: IUsage) => {\n const sortedMatches = _.sortBy(matches, [\n (match: IUsageMatch) => invertDuration(match.duration),\n 'text',\n ])\n const result = { matches: sortedMatches, ...rest }\n const durations: messages.IDuration[] = _.chain(matches)\n .map((m: IUsageMatch) => m.duration)\n .compact()\n .value()\n if (durations.length > 0) {\n result.meanDuration = millisecondsToDuration(\n _.meanBy(durations, (d: messages.IDuration) =>\n durationToMilliseconds(d)\n )\n )\n }\n return result\n })\n .sortBy((usage: IUsage) => invertDuration(usage.meanDuration))\n .value()\n}\n\nexport function getUsage({\n cwd,\n stepDefinitions,\n eventDataCollector,\n}: IGetUsageRequest): IUsage[] {\n const mapping = buildMapping({ cwd, stepDefinitions, eventDataCollector })\n return buildResult(mapping)\n}\n"]}
@@ -12,8 +12,8 @@ const util_1 = require("util");
12
12
  class HtmlFormatter extends _1.default {
13
13
  constructor(options) {
14
14
  super(options);
15
- const cucumberHtmlStream = new html_formatter_1.default(resolve_pkg_1.default('@cucumber/react', { cwd: __dirname }) +
16
- '/dist/src/styles/cucumber-react.css', resolve_pkg_1.default('@cucumber/html-formatter', { cwd: __dirname }) +
15
+ const cucumberHtmlStream = new html_formatter_1.default(resolve_pkg_1.default('@cucumber/html-formatter', { cwd: __dirname }) +
16
+ '/dist/cucumber-react.css', resolve_pkg_1.default('@cucumber/html-formatter', { cwd: __dirname }) +
17
17
  '/dist/main.js');
18
18
  options.eventBroadcaster.on('envelope', (envelope) => {
19
19
  cucumberHtmlStream.write(envelope);
@@ -1 +1 @@
1
- {"version":3,"file":"html_formatter.js","sourceRoot":"","sources":["../../src/formatter/html_formatter.ts"],"names":[],"mappings":";;;;;AAAA,yCAAgD;AAEhD,8DAAoC;AACpC,8EAAyD;AACzD,oDAAgD;AAChD,mCAAiC;AACjC,+BAAgC;AAEhC,MAAqB,aAAc,SAAQ,UAAS;IAGlD,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,MAAM,kBAAkB,GAAG,IAAI,wBAAkB,CAC/C,qBAAU,CAAC,iBAAiB,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YAC/C,qCAAqC,EACvC,qBAAU,CAAC,0BAA0B,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YACxD,eAAe,CAClB,CAAA;QACD,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAA2B,EAAE,EAAE;YACtE,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YAClC,IAAI,6BAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC3C,kBAAkB,CAAC,GAAG,EAAE,CAAA;aACzB;QACH,CAAC,CAAC,CAAA;QACF,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QACzD,IAAI,CAAC,SAAS,GAAG,gBAAS,CAAC,iBAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAA;IAC1D,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,SAAS,CAAA;QACpB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;IACxB,CAAC;CACF;AAzBD,gCAyBC"}
1
+ {"version":3,"file":"html_formatter.js","sourceRoot":"","sources":["../../src/formatter/html_formatter.ts"],"names":[],"mappings":";;;;;AAAA,yCAAgD;AAEhD,8DAAoC;AACpC,8EAAyD;AACzD,oDAAgD;AAChD,mCAAiC;AACjC,+BAAgC;AAEhC,MAAqB,aAAc,SAAQ,UAAS;IAGlD,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,MAAM,kBAAkB,GAAG,IAAI,wBAAkB,CAC/C,qBAAU,CAAC,0BAA0B,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YACxD,0BAA0B,EAC5B,qBAAU,CAAC,0BAA0B,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;YACxD,eAAe,CAClB,CAAA;QACD,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAA2B,EAAE,EAAE;YACtE,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YAClC,IAAI,6BAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC3C,kBAAkB,CAAC,GAAG,EAAE,CAAA;aACzB;QACH,CAAC,CAAC,CAAA;QACF,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QACzD,IAAI,CAAC,SAAS,GAAG,gBAAS,CAAC,iBAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAA;IAC1D,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,SAAS,CAAA;QACpB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;IACxB,CAAC;CACF;AAzBD,gCAyBC","sourcesContent":["import Formatter, { IFormatterOptions } from '.'\nimport { messages } from '@cucumber/messages'\nimport resolvePkg from 'resolve-pkg'\nimport CucumberHtmlStream from '@cucumber/html-formatter'\nimport { doesHaveValue } from '../value_checker'\nimport { finished } from 'stream'\nimport { promisify } from 'util'\n\nexport default class HtmlFormatter extends Formatter {\n private readonly _finished: Promise<void>\n\n constructor(options: IFormatterOptions) {\n super(options)\n const cucumberHtmlStream = new CucumberHtmlStream(\n resolvePkg('@cucumber/html-formatter', { cwd: __dirname }) +\n '/dist/cucumber-react.css',\n resolvePkg('@cucumber/html-formatter', { cwd: __dirname }) +\n '/dist/main.js'\n )\n options.eventBroadcaster.on('envelope', (envelope: messages.Envelope) => {\n cucumberHtmlStream.write(envelope)\n if (doesHaveValue(envelope.testRunFinished)) {\n cucumberHtmlStream.end()\n }\n })\n cucumberHtmlStream.on('data', (chunk) => this.log(chunk))\n this._finished = promisify(finished)(cucumberHtmlStream)\n }\n\n async finished(): Promise<void> {\n await this._finished\n await super.finished()\n }\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  /// <reference types="node" />
2
- import { Writable } from 'stream';
3
- declare type HttpMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH';
2
+ import { Transform } from 'stream';
3
+ import http from 'http';
4
+ declare type HttpMethod = 'GET' | 'POST' | 'PUT';
4
5
  /**
5
6
  * This Writable writes data to a HTTP/HTTPS URL.
6
7
  *
@@ -11,19 +12,17 @@ declare type HttpMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT'
11
12
  *
12
13
  * 3xx redirects are not currently followed.
13
14
  */
14
- export default class HttpStream extends Writable {
15
+ export default class HttpStream extends Transform {
15
16
  private readonly url;
16
17
  private readonly method;
17
18
  private readonly headers;
18
- private readonly reportLocation;
19
19
  private tempFilePath;
20
20
  private tempFile;
21
- private responseBodyFromGet;
22
- constructor(url: string, method: HttpMethod, headers: {
23
- [name: string]: string;
24
- }, reportLocation: (content: string) => void);
21
+ constructor(url: string, method: HttpMethod, headers: http.OutgoingHttpHeaders);
25
22
  _write(chunk: any, encoding: BufferEncoding, callback: (err?: Error | null) => void): void;
26
23
  _final(callback: (error?: Error | null) => void): void;
27
- private sendRequest;
24
+ private pushResponseBody;
25
+ private emitErrorUnlessHttp2xx;
26
+ private sendHttpRequest;
28
27
  }
29
28
  export {};
@@ -19,14 +19,14 @@ const value_checker_1 = require("../value_checker");
19
19
  *
20
20
  * 3xx redirects are not currently followed.
21
21
  */
22
- class HttpStream extends stream_1.Writable {
23
- constructor(url, method, headers, reportLocation) {
24
- super();
22
+ class HttpStream extends stream_1.Transform {
23
+ constructor(url, method, headers) {
24
+ super({
25
+ readableObjectMode: true,
26
+ });
25
27
  this.url = url;
26
28
  this.method = method;
27
29
  this.headers = headers;
28
- this.reportLocation = reportLocation;
29
- this.responseBodyFromGet = null;
30
30
  }
31
31
  _write(chunk, encoding, callback) {
32
32
  if (this.tempFile === undefined) {
@@ -44,63 +44,67 @@ class HttpStream extends stream_1.Writable {
44
44
  }
45
45
  _final(callback) {
46
46
  this.tempFile.end(() => {
47
- this.sendRequest(this.url, this.method, (err) => {
48
- if (value_checker_1.doesHaveValue(err))
49
- return callback(err);
50
- this.reportLocation(this.responseBodyFromGet);
51
- callback(null);
47
+ this.sendHttpRequest(this.url, this.method, this.headers, (err1, res1) => {
48
+ if (value_checker_1.doesHaveValue(err1))
49
+ return callback(err1);
50
+ this.pushResponseBody(res1, () => {
51
+ this.emitErrorUnlessHttp2xx(res1, this.url, this.method);
52
+ if (res1.statusCode === 202 &&
53
+ res1.headers.location !== undefined) {
54
+ this.sendHttpRequest(res1.headers.location, 'PUT', {}, (err2, res2) => {
55
+ if (value_checker_1.doesHaveValue(err2))
56
+ return callback(err2);
57
+ this.emitErrorUnlessHttp2xx(res2, this.url, this.method);
58
+ callback();
59
+ });
60
+ }
61
+ else {
62
+ callback();
63
+ }
64
+ });
52
65
  });
53
66
  });
54
67
  }
55
- sendRequest(url, method, callback) {
68
+ pushResponseBody(res, done) {
69
+ let body = Buffer.alloc(0);
70
+ res.on('data', (chunk) => {
71
+ body = Buffer.concat([body, chunk]);
72
+ });
73
+ res.on('end', () => {
74
+ this.push(body.toString('utf-8'));
75
+ done();
76
+ });
77
+ }
78
+ emitErrorUnlessHttp2xx(res, url, method) {
79
+ if (res.statusCode >= 300)
80
+ this.emit('error', new Error(`Unexpected http status ${res.statusCode} from ${method} ${url}`));
81
+ }
82
+ sendHttpRequest(url, method, headers, callback) {
56
83
  const httpx = value_checker_1.doesHaveValue(url.match(/^https:/)) ? https_1.default : http_1.default;
57
- if (method === 'GET') {
58
- httpx.get(url, { headers: this.headers }, (res) => {
59
- if (res.statusCode >= 400) {
60
- return callback(new Error(`${method} ${url} returned status ${res.statusCode}`));
61
- }
62
- if (res.statusCode !== 202 || res.headers.location === undefined) {
63
- callback(null, url);
64
- }
65
- else {
66
- let body = Buffer.alloc(0);
67
- res.on('data', (chunk) => {
68
- body = Buffer.concat([body, chunk]);
69
- });
70
- res.on('end', () => {
71
- this.responseBodyFromGet = body.toString('utf-8');
72
- this.sendRequest(res.headers.location, 'PUT', callback);
73
- });
84
+ const additionalHttpHeaders = {};
85
+ const upload = method === 'PUT' || method === 'POST';
86
+ if (upload) {
87
+ additionalHttpHeaders['Content-Length'] = fs_1.default.statSync(this.tempFilePath).size;
88
+ }
89
+ const allHeaders = Object.assign(Object.assign({}, headers), additionalHttpHeaders);
90
+ const req = httpx.request(url, {
91
+ method,
92
+ headers: allHeaders,
93
+ });
94
+ req.on('error', (err) => this.emit('error', err));
95
+ req.on('response', (res) => {
96
+ res.on('error', (err) => this.emit('error', err));
97
+ callback(null, res);
98
+ });
99
+ if (upload) {
100
+ stream_1.pipeline(fs_1.default.createReadStream(this.tempFilePath), req, (err) => {
101
+ if (value_checker_1.doesHaveValue(err)) {
102
+ this.emit('error', err);
74
103
  }
75
104
  });
76
105
  }
77
106
  else {
78
- const contentLength = fs_1.default.statSync(this.tempFilePath).size;
79
- const req = httpx.request(url, {
80
- method,
81
- headers: {
82
- 'Content-Length': contentLength,
83
- },
84
- });
85
- req.on('response', (res) => {
86
- if (res.statusCode >= 400) {
87
- let body = Buffer.alloc(0);
88
- res.on('data', (chunk) => {
89
- body = Buffer.concat([body, chunk]);
90
- });
91
- res.on('end', () => {
92
- callback(new Error(`${method} ${url} returned status ${res.statusCode}:\n${body.toString('utf-8')}`));
93
- });
94
- res.on('error', callback);
95
- }
96
- else {
97
- callback(null, url);
98
- }
99
- });
100
- stream_1.pipeline(fs_1.default.createReadStream(this.tempFilePath), req, (err) => {
101
- if (value_checker_1.doesHaveValue(err))
102
- callback(err);
103
- });
107
+ req.end();
104
108
  }
105
109
  }
106
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"http_stream.js","sourceRoot":"","sources":["../../src/formatter/http_stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http_stream.js","sourceRoot":"","sources":["../../src/formatter/http_stream.ts"],"names":[],"mappings":"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","sourcesContent":["import { pipeline, Transform, Writable } from 'stream'\nimport tmp from 'tmp'\nimport fs from 'fs'\nimport http from 'http'\nimport https from 'https'\nimport { doesHaveValue } from '../value_checker'\n\ntype HttpMethod = 'GET' | 'POST' | 'PUT'\n\n/**\n * This Writable writes data to a HTTP/HTTPS URL.\n *\n * It has special handling for https://reports.cucumber.io/\n * which uses an API where the first request is a `GET`,\n * and if the response is 202 with a Location header, issues\n * a PUT request to that URL.\n *\n * 3xx redirects are not currently followed.\n */\nexport default class HttpStream extends Transform {\n private tempFilePath: string\n private tempFile: Writable\n\n constructor(\n private readonly url: string,\n private readonly method: HttpMethod,\n private readonly headers: http.OutgoingHttpHeaders\n ) {\n super({\n readableObjectMode: true,\n })\n }\n\n _write(\n chunk: any,\n encoding: BufferEncoding,\n callback: (err?: Error | null) => void\n ): void {\n if (this.tempFile === undefined) {\n tmp.file((err, name, fd) => {\n if (doesHaveValue(err)) return callback(err)\n this.tempFilePath = name\n this.tempFile = fs.createWriteStream(name, { fd })\n this.tempFile.write(chunk, encoding, callback)\n })\n } else {\n this.tempFile.write(chunk, encoding, callback)\n }\n }\n\n _final(callback: (error?: Error | null) => void): void {\n this.tempFile.end(() => {\n this.sendHttpRequest(\n this.url,\n this.method,\n this.headers,\n (err1, res1) => {\n if (doesHaveValue(err1)) return callback(err1)\n this.pushResponseBody(res1, () => {\n this.emitErrorUnlessHttp2xx(res1, this.url, this.method)\n if (\n res1.statusCode === 202 &&\n res1.headers.location !== undefined\n ) {\n this.sendHttpRequest(\n res1.headers.location,\n 'PUT',\n {},\n (err2, res2) => {\n if (doesHaveValue(err2)) return callback(err2)\n this.emitErrorUnlessHttp2xx(res2, this.url, this.method)\n callback()\n }\n )\n } else {\n callback()\n }\n })\n }\n )\n })\n }\n\n private pushResponseBody(res: http.IncomingMessage, done: () => void): void {\n let body = Buffer.alloc(0)\n res.on('data', (chunk) => {\n body = Buffer.concat([body, chunk])\n })\n res.on('end', () => {\n this.push(body.toString('utf-8'))\n done()\n })\n }\n\n private emitErrorUnlessHttp2xx(\n res: http.IncomingMessage,\n url: string,\n method: string\n ): void {\n if (res.statusCode >= 300)\n this.emit(\n 'error',\n new Error(\n `Unexpected http status ${res.statusCode} from ${method} ${url}`\n )\n )\n }\n\n private sendHttpRequest(\n url: string,\n method: HttpMethod,\n headers: http.OutgoingHttpHeaders,\n callback: (err?: Error | null, res?: http.IncomingMessage) => void\n ): void {\n const httpx = doesHaveValue(url.match(/^https:/)) ? https : http\n const additionalHttpHeaders: http.OutgoingHttpHeaders = {}\n\n const upload = method === 'PUT' || method === 'POST'\n if (upload) {\n additionalHttpHeaders['Content-Length'] = fs.statSync(\n this.tempFilePath\n ).size\n }\n\n const allHeaders = { ...headers, ...additionalHttpHeaders }\n const req = httpx.request(url, {\n method,\n headers: allHeaders,\n })\n req.on('error', (err) => this.emit('error', err))\n req.on('response', (res) => {\n res.on('error', (err) => this.emit('error', err))\n callback(null, res)\n })\n\n if (upload) {\n pipeline(fs.createReadStream(this.tempFilePath), req, (err) => {\n if (doesHaveValue(err)) {\n this.emit('error', err)\n }\n })\n } else {\n req.end()\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/formatter/index.ts"],"names":[],"mappings":";;AAgCA,MAAqB,SAAS;IAU5B,YAAY,OAA0B;QACpC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAA;QACpD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC5C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAA;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;IACtB,CAAC;CACF;AAxBD,4BAwBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/formatter/index.ts"],"names":[],"mappings":";;AAgCA,MAAqB,SAAS;IAU5B,YAAY,OAA0B;QACpC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAA;QACpD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAA;QAC5C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAA;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;IACtB,CAAC;CACF;AAxBD,4BAwBC","sourcesContent":["import { IColorFns } from './get_color_fns'\nimport { EventDataCollector } from './helpers'\nimport StepDefinitionSnippetBuilder from './step_definition_snippet_builder'\nimport { PassThrough, Writable as WritableStream } from 'stream'\nimport { ISupportCodeLibrary } from '../support_code_library_builder/types'\nimport { WriteStream as FsWriteStream } from 'fs'\nimport { WriteStream as TtyWriteStream } from 'tty'\nimport { EventEmitter } from 'events'\nimport { IParsedArgvFormatOptions } from '../cli/argv_parser'\nimport HttpStream from './http_stream'\n\nexport type IFormatterStream =\n | FsWriteStream\n | TtyWriteStream\n | PassThrough\n | HttpStream\nexport type IFormatterLogFn = (buffer: string | Uint8Array) => void\nexport type IFormatterCleanupFn = () => Promise<any>\n\nexport interface IFormatterOptions {\n colorFns: IColorFns\n cwd: string\n eventBroadcaster: EventEmitter\n eventDataCollector: EventDataCollector\n log: IFormatterLogFn\n parsedArgvOptions: IParsedArgvFormatOptions\n snippetBuilder: StepDefinitionSnippetBuilder\n stream: WritableStream\n cleanup: IFormatterCleanupFn\n supportCodeLibrary: ISupportCodeLibrary\n}\n\nexport default class Formatter {\n protected colorFns: IColorFns\n protected cwd: string\n protected eventDataCollector: EventDataCollector\n protected log: IFormatterLogFn\n protected snippetBuilder: StepDefinitionSnippetBuilder\n protected stream: WritableStream\n protected supportCodeLibrary: ISupportCodeLibrary\n private readonly cleanup: IFormatterCleanupFn\n\n constructor(options: IFormatterOptions) {\n this.colorFns = options.colorFns\n this.cwd = options.cwd\n this.eventDataCollector = options.eventDataCollector\n this.log = options.log\n this.snippetBuilder = options.snippetBuilder\n this.stream = options.stream\n this.supportCodeLibrary = options.supportCodeLibrary\n this.cleanup = options.cleanup\n }\n\n async finished(): Promise<void> {\n await this.cleanup()\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"json_formatter.js","sourceRoot":"","sources":["../../src/formatter/json_formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json_formatter.js","sourceRoot":"","sources":["../../src/formatter/json_formatter.ts"],"names":[],"mappings":"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","sourcesContent":["import _, { Dictionary } from 'lodash'\nimport Formatter, { IFormatterOptions } from './'\nimport Status from '../status'\nimport { formatLocation, GherkinDocumentParser, PickleParser } from './helpers'\nimport { durationToNanoseconds } from '../time'\nimport path from 'path'\nimport { messages } from '@cucumber/messages'\nimport {\n getGherkinExampleRuleMap,\n getGherkinScenarioLocationMap,\n} from './helpers/gherkin_document_parser'\nimport { ITestCaseAttempt } from './helpers/event_data_collector'\nimport { doesHaveValue, doesNotHaveValue } from '../value_checker'\nimport { parseStepArgument } from '../step_arguments'\nimport ITag = messages.GherkinDocument.Feature.ITag\nimport IFeature = messages.GherkinDocument.IFeature\nimport IPickle = messages.IPickle\nimport IScenario = messages.GherkinDocument.Feature.IScenario\nimport IEnvelope = messages.IEnvelope\nimport IRule = messages.GherkinDocument.Feature.FeatureChild.IRule\n\nconst { getGherkinStepMap, getGherkinScenarioMap } = GherkinDocumentParser\n\nconst {\n getScenarioDescription,\n getPickleStepMap,\n getStepKeyword,\n} = PickleParser\n\nexport interface IJsonFeature {\n description: string\n elements: IJsonScenario[]\n id: string\n keyword: string\n line: number\n name: string\n tags: IJsonTag[]\n uri: string\n}\n\nexport interface IJsonScenario {\n description: string\n id: string\n keyword: string\n line: number\n name: string\n steps: IJsonStep[]\n tags: IJsonTag[]\n type: string\n}\n\nexport interface IJsonStep {\n arguments?: any // TODO\n embeddings?: any // TODO\n hidden?: boolean\n keyword?: string // TODO, not optional\n line?: number\n match?: any // TODO\n name?: string\n result?: any // TODO\n}\n\nexport interface IJsonTag {\n name: string\n line: number\n}\n\ninterface IBuildJsonFeatureOptions {\n feature: messages.GherkinDocument.IFeature\n elements: IJsonScenario[]\n uri: string\n}\n\ninterface IBuildJsonScenarioOptions {\n feature: messages.GherkinDocument.IFeature\n gherkinScenarioMap: Dictionary<IScenario>\n gherkinExampleRuleMap: Dictionary<IRule>\n gherkinScenarioLocationMap: Dictionary<messages.ILocation>\n pickle: messages.IPickle\n steps: IJsonStep[]\n}\n\ninterface IBuildJsonStepOptions {\n isBeforeHook: boolean\n gherkinStepMap: Dictionary<messages.GherkinDocument.Feature.IStep>\n pickleStepMap: Dictionary<messages.Pickle.IPickleStep>\n testStep: messages.TestCase.ITestStep\n testStepAttachments: messages.IAttachment[]\n testStepResult: messages.TestStepFinished.ITestStepResult\n}\n\ninterface UriToTestCaseAttemptsMap {\n [uri: string]: ITestCaseAttempt[]\n}\n\nexport default class JsonFormatter extends Formatter {\n constructor(options: IFormatterOptions) {\n super(options)\n console.warn(\n \"The built-in JSON formatter is deprecated and will be removed in the next major release. Where you need a structured data representation of your test run, it's best to use the `message` formatter. For legacy tools that depend on the deprecated JSON format, a standalone formatter is available (see https://github.com/cucumber/cucumber/tree/master/json-formatter).\"\n )\n options.eventBroadcaster.on('envelope', (envelope: IEnvelope) => {\n if (doesHaveValue(envelope.testRunFinished)) {\n this.onTestRunFinished()\n }\n })\n }\n\n convertNameToId(obj: IFeature | IPickle): string {\n return obj.name.replace(/ /g, '-').toLowerCase()\n }\n\n formatDataTable(dataTable: messages.PickleStepArgument.IPickleTable): any {\n return {\n rows: dataTable.rows.map((row) => ({ cells: _.map(row.cells, 'value') })),\n }\n }\n\n formatDocString(\n docString: messages.PickleStepArgument.IPickleDocString,\n gherkinStep: messages.GherkinDocument.Feature.IStep\n ): any {\n return {\n content: docString.content,\n line: gherkinStep.docString.location.line,\n }\n }\n\n formatStepArgument(\n stepArgument: messages.IPickleStepArgument,\n gherkinStep: messages.GherkinDocument.Feature.IStep\n ): any {\n if (doesNotHaveValue(stepArgument)) {\n return []\n }\n return [\n parseStepArgument<any>(stepArgument, {\n dataTable: (dataTable) => this.formatDataTable(dataTable),\n docString: (docString) => this.formatDocString(docString, gherkinStep),\n }),\n ]\n }\n\n onTestRunFinished(): void {\n const groupedTestCaseAttempts: UriToTestCaseAttemptsMap = {}\n _.each(\n this.eventDataCollector.getTestCaseAttempts(),\n (testCaseAttempt: ITestCaseAttempt) => {\n if (!testCaseAttempt.worstTestStepResult.willBeRetried) {\n const uri = path.relative(this.cwd, testCaseAttempt.pickle.uri)\n if (doesNotHaveValue(groupedTestCaseAttempts[uri])) {\n groupedTestCaseAttempts[uri] = []\n }\n groupedTestCaseAttempts[uri].push(testCaseAttempt)\n }\n }\n )\n const features = _.map(groupedTestCaseAttempts, (group, uri) => {\n const { gherkinDocument } = group[0]\n const gherkinStepMap = getGherkinStepMap(gherkinDocument)\n const gherkinScenarioMap = getGherkinScenarioMap(gherkinDocument)\n const gherkinExampleRuleMap = getGherkinExampleRuleMap(gherkinDocument)\n const gherkinScenarioLocationMap = getGherkinScenarioLocationMap(\n gherkinDocument\n )\n const elements = group.map((testCaseAttempt: ITestCaseAttempt) => {\n const { pickle } = testCaseAttempt\n const pickleStepMap = getPickleStepMap(pickle)\n let isBeforeHook = true\n const steps = testCaseAttempt.testCase.testSteps.map((testStep) => {\n isBeforeHook = isBeforeHook && testStep.pickleStepId === ''\n return this.getStepData({\n isBeforeHook,\n gherkinStepMap,\n pickleStepMap,\n testStep,\n testStepAttachments: testCaseAttempt.stepAttachments[testStep.id],\n testStepResult: testCaseAttempt.stepResults[testStep.id],\n })\n })\n return this.getScenarioData({\n feature: gherkinDocument.feature,\n gherkinScenarioLocationMap,\n gherkinExampleRuleMap,\n gherkinScenarioMap,\n pickle,\n steps,\n })\n })\n return this.getFeatureData({\n feature: gherkinDocument.feature,\n elements,\n uri,\n })\n })\n this.log(JSON.stringify(features, null, 2))\n }\n\n getFeatureData({\n feature,\n elements,\n uri,\n }: IBuildJsonFeatureOptions): IJsonFeature {\n return {\n description: feature.description,\n elements,\n id: this.convertNameToId(feature),\n line: feature.location.line,\n keyword: feature.keyword,\n name: feature.name,\n tags: this.getFeatureTags(feature),\n uri,\n }\n }\n\n getScenarioData({\n feature,\n gherkinScenarioLocationMap,\n gherkinExampleRuleMap,\n gherkinScenarioMap,\n pickle,\n steps,\n }: IBuildJsonScenarioOptions): IJsonScenario {\n const description = getScenarioDescription({\n pickle,\n gherkinScenarioMap,\n })\n return {\n description,\n id: this.formatScenarioId({ feature, pickle, gherkinExampleRuleMap }),\n keyword: gherkinScenarioMap[pickle.astNodeIds[0]].keyword,\n line: gherkinScenarioLocationMap[pickle.astNodeIds[0]].line,\n name: pickle.name,\n steps,\n tags: this.getScenarioTags({ feature, pickle, gherkinScenarioMap }),\n type: 'scenario',\n }\n }\n\n private formatScenarioId({\n feature,\n pickle,\n gherkinExampleRuleMap,\n }: {\n feature: IFeature\n pickle: IPickle\n gherkinExampleRuleMap: Dictionary<IRule>\n }): string {\n let parts: any[]\n const rule = gherkinExampleRuleMap[pickle.astNodeIds[0]]\n if (doesHaveValue(rule)) {\n parts = [feature, rule, pickle]\n } else {\n parts = [feature, pickle]\n }\n return parts.map((part) => this.convertNameToId(part)).join(';')\n }\n\n getStepData({\n isBeforeHook,\n gherkinStepMap,\n pickleStepMap,\n testStep,\n testStepAttachments,\n testStepResult,\n }: IBuildJsonStepOptions): IJsonStep {\n const data: IJsonStep = {}\n if (testStep.pickleStepId !== '') {\n const pickleStep = pickleStepMap[testStep.pickleStepId]\n data.arguments = this.formatStepArgument(\n pickleStep.argument,\n gherkinStepMap[pickleStep.astNodeIds[0]]\n )\n data.keyword = getStepKeyword({ pickleStep, gherkinStepMap })\n data.line = gherkinStepMap[pickleStep.astNodeIds[0]].location.line\n data.name = pickleStep.text\n } else {\n data.keyword = isBeforeHook ? 'Before' : 'After'\n data.hidden = true\n }\n if (testStep.stepDefinitionIds.length === 1) {\n const stepDefinition = this.supportCodeLibrary.stepDefinitions.find(\n (s) => s.id === testStep.stepDefinitionIds[0]\n )\n data.match = { location: formatLocation(stepDefinition) }\n }\n const { message, status } = testStepResult\n data.result = { status: Status[status].toLowerCase() }\n if (doesHaveValue(testStepResult.duration)) {\n data.result.duration = durationToNanoseconds(testStepResult.duration)\n }\n if (status === Status.FAILED && doesHaveValue(message)) {\n data.result.error_message = message\n }\n if (_.size(testStepAttachments) > 0) {\n data.embeddings = testStepAttachments.map((attachment) => ({\n data: attachment.body,\n mime_type: attachment.mediaType,\n }))\n }\n return data\n }\n\n getFeatureTags(feature: IFeature): IJsonTag[] {\n return _.map(feature.tags, (tagData) => ({\n name: tagData.name,\n line: tagData.location.line,\n }))\n }\n\n getScenarioTags({\n feature,\n pickle,\n gherkinScenarioMap,\n }: {\n feature: IFeature\n pickle: IPickle\n gherkinScenarioMap: { [id: string]: IScenario }\n }): IJsonTag[] {\n return _.map(pickle.tags, (tagData) => {\n const featureSource = feature.tags.find(\n (t: ITag) => t.id === tagData.astNodeId\n )\n const scenarioSource = gherkinScenarioMap[pickle.astNodeIds[0]].tags.find(\n (t: ITag) => t.id === tagData.astNodeId\n )\n const line = doesHaveValue(featureSource)\n ? featureSource.location.line\n : scenarioSource.location.line\n return {\n name: tagData.name,\n line,\n }\n })\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"message_formatter.js","sourceRoot":"","sources":["../../src/formatter/message_formatter.ts"],"names":[],"mappings":";;;;;AAAA,yCAAgD;AAGhD,MAAqB,gBAAiB,SAAQ,UAAS;IACrD,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAA2B,EAAE,EAAE,CACtE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CACnD,CAAA;IACH,CAAC;CACF;AAPD,mCAOC"}
1
+ {"version":3,"file":"message_formatter.js","sourceRoot":"","sources":["../../src/formatter/message_formatter.ts"],"names":[],"mappings":";;;;;AAAA,yCAAgD;AAGhD,MAAqB,gBAAiB,SAAQ,UAAS;IACrD,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAA2B,EAAE,EAAE,CACtE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CACnD,CAAA;IACH,CAAC;CACF;AAPD,mCAOC","sourcesContent":["import Formatter, { IFormatterOptions } from '.'\nimport { messages } from '@cucumber/messages'\n\nexport default class MessageFormatter extends Formatter {\n constructor(options: IFormatterOptions) {\n super(options)\n options.eventBroadcaster.on('envelope', (envelope: messages.Envelope) =>\n this.log(JSON.stringify(envelope.toJSON()) + '\\n')\n )\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"progress_bar_formatter.js","sourceRoot":"","sources":["../../src/formatter/progress_bar_formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress_bar_formatter.js","sourceRoot":"","sources":["../../src/formatter/progress_bar_formatter.ts"],"names":[],"mappings":"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","sourcesContent":["import { formatIssue, formatSummary, isIssue } from './helpers'\nimport Formatter, { IFormatterOptions } from './'\nimport ProgressBar from 'progress'\nimport { WriteStream as TtyWriteStream } from 'tty'\nimport { messages } from '@cucumber/messages'\nimport { doesHaveValue, valueOrDefault } from '../value_checker'\nimport { formatUndefinedParameterType } from './helpers/issue_helpers'\nimport { durationBetweenTimestamps } from '../time'\n\n// Inspired by https://github.com/thekompanee/fuubar and https://github.com/martinciu/fuubar-cucumber\nexport default class ProgressBarFormatter extends Formatter {\n private numberOfSteps: number\n private testRunStarted: messages.ITestRunStarted\n private issueCount: number\n public progressBar: ProgressBar\n\n constructor(options: IFormatterOptions) {\n super(options)\n options.eventBroadcaster.on('envelope', this.parseEnvelope.bind(this))\n this.numberOfSteps = 0\n this.issueCount = 0\n }\n\n incrementStepCount(pickleId: string): void {\n const pickle = this.eventDataCollector.getPickle(pickleId)\n this.numberOfSteps += pickle.steps.length\n }\n\n initializeProgressBar(): void {\n if (doesHaveValue(this.progressBar)) {\n return\n }\n this.progressBar = new ProgressBar(':current/:total steps [:bar] ', {\n clear: true,\n incomplete: ' ',\n stream: this.stream,\n total: this.numberOfSteps,\n width: valueOrDefault((this.stream as TtyWriteStream).columns, 80),\n })\n }\n\n logProgress({\n testStepId,\n testCaseStartedId,\n }: messages.ITestStepFinished): void {\n const { testCase } = this.eventDataCollector.getTestCaseAttempt(\n testCaseStartedId\n )\n const testStep = testCase.testSteps.find((s) => s.id === testStepId)\n if (testStep.pickleStepId !== '') {\n this.progressBar.tick()\n }\n }\n\n logUndefinedParametertype(\n parameterType: messages.IUndefinedParameterType\n ): void {\n this.log(\n `Undefined parameter type: ${formatUndefinedParameterType(\n parameterType\n )}\\n`\n )\n }\n\n logErrorIfNeeded(testCaseFinished: messages.ITestCaseFinished): void {\n const { worstTestStepResult } = this.eventDataCollector.getTestCaseAttempt(\n testCaseFinished.testCaseStartedId\n )\n if (isIssue(worstTestStepResult)) {\n this.issueCount += 1\n const testCaseAttempt = this.eventDataCollector.getTestCaseAttempt(\n testCaseFinished.testCaseStartedId\n )\n this.progressBar.interrupt(\n formatIssue({\n colorFns: this.colorFns,\n cwd: this.cwd,\n number: this.issueCount,\n snippetBuilder: this.snippetBuilder,\n supportCodeLibrary: this.supportCodeLibrary,\n testCaseAttempt,\n })\n )\n if (worstTestStepResult.willBeRetried) {\n const stepsToRetry = testCaseAttempt.pickle.steps.length\n this.progressBar.tick(-stepsToRetry)\n }\n }\n }\n\n logSummary(testRunFinished: messages.ITestRunFinished): void {\n const testRunDuration = durationBetweenTimestamps(\n this.testRunStarted.timestamp,\n testRunFinished.timestamp\n )\n this.log(\n formatSummary({\n colorFns: this.colorFns,\n testCaseAttempts: this.eventDataCollector.getTestCaseAttempts(),\n testRunDuration,\n })\n )\n }\n\n parseEnvelope(envelope: messages.IEnvelope): void {\n if (doesHaveValue(envelope.undefinedParameterType)) {\n this.logUndefinedParametertype(envelope.undefinedParameterType)\n } else if (doesHaveValue(envelope.pickle)) {\n this.incrementStepCount(envelope.pickle.id)\n } else if (doesHaveValue(envelope.testStepStarted)) {\n this.initializeProgressBar()\n } else if (doesHaveValue(envelope.testStepFinished)) {\n this.logProgress(envelope.testStepFinished)\n } else if (doesHaveValue(envelope.testCaseFinished)) {\n this.logErrorIfNeeded(envelope.testCaseFinished)\n } else if (doesHaveValue(envelope.testRunStarted)) {\n this.testRunStarted = envelope.testRunStarted\n } else if (doesHaveValue(envelope.testRunFinished)) {\n this.logSummary(envelope.testRunFinished)\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"progress_formatter.js","sourceRoot":"","sources":["../../src/formatter/progress_formatter.ts"],"names":[],"mappings":";;;;;AAAA,4EAAkD;AAClD,uDAA8B;AAC9B,oDAAgD;AAMhD,MAAM,wBAAwB,GAA8B;IAC1D,CAAC,gBAAM,CAAC,SAAS,CAAC,EAAE,GAAG;IACvB,CAAC,gBAAM,CAAC,MAAM,CAAC,EAAE,GAAG;IACpB,CAAC,gBAAM,CAAC,MAAM,CAAC,EAAE,GAAG;IACpB,CAAC,gBAAM,CAAC,OAAO,CAAC,EAAE,GAAG;IACrB,CAAC,gBAAM,CAAC,OAAO,CAAC,EAAE,GAAG;IACrB,CAAC,gBAAM,CAAC,SAAS,CAAC,EAAE,GAAG;CACxB,CAAA;AAED,MAAqB,iBAAkB,SAAQ,2BAAgB;IAC7D,YAAY,OAA0B;QACpC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAmB,EAAE,EAAE;YAC9D,IAAI,6BAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC3C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;aACjB;iBAAM,IAAI,6BAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;gBACnD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;aAC5C;QACH,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,OAAO,CAAC,CAAA;IAChB,CAAC;IAED,WAAW,CAAC,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,EAAqB;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAC/C,wBAAwB,CAAC,MAAM,CAAC,CACjC,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACrB,CAAC;CACF;AAlBD,oCAkBC"}
1
+ {"version":3,"file":"progress_formatter.js","sourceRoot":"","sources":["../../src/formatter/progress_formatter.ts"],"names":[],"mappings":";;;;;AAAA,4EAAkD;AAClD,uDAA8B;AAC9B,oDAAgD;AAMhD,MAAM,wBAAwB,GAA8B;IAC1D,CAAC,gBAAM,CAAC,SAAS,CAAC,EAAE,GAAG;IACvB,CAAC,gBAAM,CAAC,MAAM,CAAC,EAAE,GAAG;IACpB,CAAC,gBAAM,CAAC,MAAM,CAAC,EAAE,GAAG;IACpB,CAAC,gBAAM,CAAC,OAAO,CAAC,EAAE,GAAG;IACrB,CAAC,gBAAM,CAAC,OAAO,CAAC,EAAE,GAAG;IACrB,CAAC,gBAAM,CAAC,SAAS,CAAC,EAAE,GAAG;CACxB,CAAA;AAED,MAAqB,iBAAkB,SAAQ,2BAAgB;IAC7D,YAAY,OAA0B;QACpC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAmB,EAAE,EAAE;YAC9D,IAAI,6BAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC3C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;aACjB;iBAAM,IAAI,6BAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;gBACnD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;aAC5C;QACH,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,OAAO,CAAC,CAAA;IAChB,CAAC;IAED,WAAW,CAAC,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,EAAqB;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAC/C,wBAAwB,CAAC,MAAM,CAAC,CACjC,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACrB,CAAC;CACF;AAlBD,oCAkBC","sourcesContent":["import SummaryFormatter from './summary_formatter'\nimport Status from '../status'\nimport { doesHaveValue } from '../value_checker'\nimport { IFormatterOptions } from './index'\nimport { messages } from '@cucumber/messages'\nimport IEnvelope = messages.IEnvelope\nimport ITestStepFinished = messages.ITestStepFinished\n\nconst STATUS_CHARACTER_MAPPING: { [key: number]: string } = {\n [Status.AMBIGUOUS]: 'A',\n [Status.FAILED]: 'F',\n [Status.PASSED]: '.',\n [Status.PENDING]: 'P',\n [Status.SKIPPED]: '-',\n [Status.UNDEFINED]: 'U',\n}\n\nexport default class ProgressFormatter extends SummaryFormatter {\n constructor(options: IFormatterOptions) {\n options.eventBroadcaster.on('envelope', (envelope: IEnvelope) => {\n if (doesHaveValue(envelope.testRunFinished)) {\n this.log('\\n\\n')\n } else if (doesHaveValue(envelope.testStepFinished)) {\n this.logProgress(envelope.testStepFinished)\n }\n })\n super(options)\n }\n\n logProgress({ testStepResult: { status } }: ITestStepFinished): void {\n const character = this.colorFns.forStatus(status)(\n STATUS_CHARACTER_MAPPING[status]\n )\n this.log(character)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"rerun_formatter.js","sourceRoot":"","sources":["../../src/formatter/rerun_formatter.ts"],"names":[],"mappings":";;;;;AAAA,oDAAsB;AACtB,0CAAiD;AACjD,uDAA8B;AAC9B,gDAAuB;AACvB,+EAAiF;AACjF,oDAIyB;AAGzB,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAM9B,MAAqB,cAAe,SAAQ,UAAS;IAGnD,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAA4B,EAAE,EAAE;YACvE,IAAI,6BAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC3C,IAAI,CAAC,kBAAkB,EAAE,CAAA;aAC1B;QACH,CAAC,CAAC,CAAA;QACF,MAAM,YAAY,GAAG,8BAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACxE,IAAI,CAAC,SAAS,GAAG,8BAAc,CAAC,YAAY,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;IAC5E,CAAC;IAED,kBAAkB;QAChB,MAAM,OAAO,GAAkB,EAAE,CAAA;QACjC,gBAAC,CAAC,IAAI,CACJ,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,EAC7C,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,EAAE;YACnD,IAAI,mBAAmB,CAAC,MAAM,KAAK,gBAAM,CAAC,MAAM,EAAE;gBAChD,MAAM,WAAW,GAAG,cAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;gBACvD,MAAM,IAAI,GAAG,uDAA6B,CAAC,eAAe,CAAC,CACzD,gBAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAC1B,CAAC,IAAI,CAAA;gBACN,IAAI,gCAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE;oBAC1C,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAA;iBAC1B;gBACD,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aAChC;QACH,CAAC,CACF,CAAA;QACD,MAAM,IAAI,GAAG,gBAAC,CAAC,KAAK,CAAC,OAAO,CAAC;aAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;aAChD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;aACpB,KAAK,EAAE,CAAA;QACV,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;CACF;AArCD,iCAqCC"}
1
+ {"version":3,"file":"rerun_formatter.js","sourceRoot":"","sources":["../../src/formatter/rerun_formatter.ts"],"names":[],"mappings":";;;;;AAAA,oDAAsB;AACtB,0CAAiD;AACjD,uDAA8B;AAC9B,gDAAuB;AACvB,+EAAiF;AACjF,oDAIyB;AAGzB,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAM9B,MAAqB,cAAe,SAAQ,UAAS;IAGnD,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAA4B,EAAE,EAAE;YACvE,IAAI,6BAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC3C,IAAI,CAAC,kBAAkB,EAAE,CAAA;aAC1B;QACH,CAAC,CAAC,CAAA;QACF,MAAM,YAAY,GAAG,8BAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACxE,IAAI,CAAC,SAAS,GAAG,8BAAc,CAAC,YAAY,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;IAC5E,CAAC;IAED,kBAAkB;QAChB,MAAM,OAAO,GAAkB,EAAE,CAAA;QACjC,gBAAC,CAAC,IAAI,CACJ,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,EAC7C,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,EAAE;YACnD,IAAI,mBAAmB,CAAC,MAAM,KAAK,gBAAM,CAAC,MAAM,EAAE;gBAChD,MAAM,WAAW,GAAG,cAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;gBACvD,MAAM,IAAI,GAAG,uDAA6B,CAAC,eAAe,CAAC,CACzD,gBAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAC1B,CAAC,IAAI,CAAA;gBACN,IAAI,gCAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE;oBAC1C,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAA;iBAC1B;gBACD,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aAChC;QACH,CAAC,CACF,CAAA;QACD,MAAM,IAAI,GAAG,gBAAC,CAAC,KAAK,CAAC,OAAO,CAAC;aAC1B,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;aAChD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;aACpB,KAAK,EAAE,CAAA;QACV,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;CACF;AArCD,iCAqCC","sourcesContent":["import _ from 'lodash'\nimport Formatter, { IFormatterOptions } from './'\nimport Status from '../status'\nimport path from 'path'\nimport { getGherkinScenarioLocationMap } from './helpers/gherkin_document_parser'\nimport {\n doesHaveValue,\n doesNotHaveValue,\n valueOrDefault,\n} from '../value_checker'\nimport { messages } from '@cucumber/messages'\n\nconst DEFAULT_SEPARATOR = '\\n'\n\ninterface UriToLinesMap {\n [uri: string]: number[]\n}\n\nexport default class RerunFormatter extends Formatter {\n private readonly separator: string\n\n constructor(options: IFormatterOptions) {\n super(options)\n options.eventBroadcaster.on('envelope', (envelope: messages.IEnvelope) => {\n if (doesHaveValue(envelope.testRunFinished)) {\n this.logFailedTestCases()\n }\n })\n const rerunOptions = valueOrDefault(options.parsedArgvOptions.rerun, {})\n this.separator = valueOrDefault(rerunOptions.separator, DEFAULT_SEPARATOR)\n }\n\n logFailedTestCases(): void {\n const mapping: UriToLinesMap = {}\n _.each(\n this.eventDataCollector.getTestCaseAttempts(),\n ({ gherkinDocument, pickle, worstTestStepResult }) => {\n if (worstTestStepResult.status !== Status.PASSED) {\n const relativeUri = path.relative(this.cwd, pickle.uri)\n const line = getGherkinScenarioLocationMap(gherkinDocument)[\n _.last(pickle.astNodeIds)\n ].line\n if (doesNotHaveValue(mapping[relativeUri])) {\n mapping[relativeUri] = []\n }\n mapping[relativeUri].push(line)\n }\n }\n )\n const text = _.chain(mapping)\n .map((lines, uri) => `${uri}:${lines.join(':')}`)\n .join(this.separator)\n .value()\n this.log(text)\n }\n}\n"]}
@@ -18,7 +18,7 @@ class SnippetsFormatter extends _1.default {
18
18
  }
19
19
  logSnippets() {
20
20
  const snippets = [];
21
- this.eventDataCollector.getTestCaseAttempts().map((testCaseAttempt) => {
21
+ this.eventDataCollector.getTestCaseAttempts().forEach((testCaseAttempt) => {
22
22
  const parsed = helpers_1.parseTestCaseAttempt({
23
23
  cwd: this.cwd,
24
24
  snippetBuilder: this.snippetBuilder,
@@ -1 +1 @@
1
- {"version":3,"file":"snippets_formatter.js","sourceRoot":"","sources":["../../src/formatter/snippets_formatter.ts"],"names":[],"mappings":";;;;;AAAA,0CAAiD;AACjD,uDAA8B;AAC9B,uCAAgD;AAChD,oDAAgD;AAIhD,MAAqB,iBAAkB,SAAQ,UAAS;IACtD,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAmB,EAAE,EAAE;YAC9D,IAAI,6BAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC3C,IAAI,CAAC,WAAW,EAAE,CAAA;aACnB;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,WAAW;QACT,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE;YACpE,MAAM,MAAM,GAAG,8BAAoB,CAAC;gBAClC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,eAAe;aAChB,CAAC,CAAA;YACF,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACpC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,gBAAM,CAAC,SAAS,EAAE;oBAC/C,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;iBAChC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACjC,CAAC;CACF;AA3BD,oCA2BC"}
1
+ {"version":3,"file":"snippets_formatter.js","sourceRoot":"","sources":["../../src/formatter/snippets_formatter.ts"],"names":[],"mappings":";;;;;AAAA,0CAAiD;AACjD,uDAA8B;AAC9B,uCAAgD;AAChD,oDAAgD;AAIhD,MAAqB,iBAAkB,SAAQ,UAAS;IACtD,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAmB,EAAE,EAAE;YAC9D,IAAI,6BAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC3C,IAAI,CAAC,WAAW,EAAE,CAAA;aACnB;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,WAAW;QACT,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,EAAE;YACxE,MAAM,MAAM,GAAG,8BAAoB,CAAC;gBAClC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,eAAe;aAChB,CAAC,CAAA;YACF,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACpC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,gBAAM,CAAC,SAAS,EAAE;oBAC/C,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;iBAChC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACjC,CAAC;CACF;AA3BD,oCA2BC","sourcesContent":["import Formatter, { IFormatterOptions } from './'\nimport Status from '../status'\nimport { parseTestCaseAttempt } from './helpers'\nimport { doesHaveValue } from '../value_checker'\nimport { messages } from '@cucumber/messages'\nimport IEnvelope = messages.IEnvelope\n\nexport default class SnippetsFormatter extends Formatter {\n constructor(options: IFormatterOptions) {\n super(options)\n options.eventBroadcaster.on('envelope', (envelope: IEnvelope) => {\n if (doesHaveValue(envelope.testRunFinished)) {\n this.logSnippets()\n }\n })\n }\n\n logSnippets(): void {\n const snippets: string[] = []\n this.eventDataCollector.getTestCaseAttempts().forEach((testCaseAttempt) => {\n const parsed = parseTestCaseAttempt({\n cwd: this.cwd,\n snippetBuilder: this.snippetBuilder,\n supportCodeLibrary: this.supportCodeLibrary,\n testCaseAttempt,\n })\n parsed.testSteps.forEach((testStep) => {\n if (testStep.result.status === Status.UNDEFINED) {\n snippets.push(testStep.snippet)\n }\n })\n })\n this.log(snippets.join('\\n\\n'))\n }\n}\n"]}
@@ -7,7 +7,7 @@ const value_checker_1 = require("../../value_checker");
7
7
  class StepDefinitionSnippetBuilder {
8
8
  constructor({ snippetSyntax, parameterTypeRegistry, }) {
9
9
  this.snippetSyntax = snippetSyntax;
10
- this.cucumberExpressionGenerator = new cucumber_expressions_1.CucumberExpressionGenerator(parameterTypeRegistry);
10
+ this.cucumberExpressionGenerator = new cucumber_expressions_1.CucumberExpressionGenerator(() => parameterTypeRegistry.parameterTypes);
11
11
  }
12
12
  build({ keywordType, pickleStep }) {
13
13
  const comment = 'Write code here that turns the phrase above into concrete actions';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/formatter/step_definition_snippet_builder/index.ts"],"names":[],"mappings":";;AAAA,wCAAwC;AACxC,yDAAwD;AAExD,yEAGuC;AAEvC,uDAAmD;AAYnD,MAAqB,4BAA4B;IAI/C,YAAY,EACV,aAAa,EACb,qBAAqB,GACmB;QACxC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,2BAA2B,GAAG,IAAI,kDAA2B,CAChE,qBAAqB,CACtB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,EAAE,WAAW,EAAE,UAAU,EAAiB;QAC9C,MAAM,OAAO,GACX,mEAAmE,CAAA;QACrE,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QACtD,MAAM,oBAAoB,GAAG,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,CAC/E,UAAU,CAAC,IAAI,CAChB,CAAA;QACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;QACjE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAC9B,OAAO;YACP,YAAY;YACZ,oBAAoB;YACpB,kBAAkB;SACnB,CAAC,CAAA;IACJ,CAAC;IAED,eAAe,CAAC,WAAwB;QACtC,QAAQ,WAAW,EAAE;YACnB,KAAK,qBAAW,CAAC,KAAK;gBACpB,OAAO,MAAM,CAAA;YACf,KAAK,qBAAW,CAAC,OAAO;gBACtB,OAAO,MAAM,CAAA;YACf,KAAK,qBAAW,CAAC,YAAY;gBAC3B,OAAO,OAAO,CAAA;SACjB;IACH,CAAC;IAED,qBAAqB,CAAC,IAAiC;QACrD,IAAI,6BAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAChC,MAAM,YAAY,GAAG,kCAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACpD,SAAS,EAAE,GAAG,EAAE,CAAC,WAAW;gBAC5B,SAAS,EAAE,GAAG,EAAE,CAAC,WAAW;aAC7B,CAAC,CAAA;YACF,OAAO,CAAC,YAAY,CAAC,CAAA;SACtB;QACD,OAAO,EAAE,CAAA;IACX,CAAC;CACF;AAnDD,+CAmDC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/formatter/step_definition_snippet_builder/index.ts"],"names":[],"mappings":";;AAAA,wCAAwC;AACxC,yDAAwD;AAExD,yEAGuC;AAEvC,uDAAmD;AAYnD,MAAqB,4BAA4B;IAI/C,YAAY,EACV,aAAa,EACb,qBAAqB,GACmB;QACxC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,2BAA2B,GAAG,IAAI,kDAA2B,CAChE,GAAG,EAAE,CAAC,qBAAqB,CAAC,cAAc,CAC3C,CAAA;IACH,CAAC;IAED,KAAK,CAAC,EAAE,WAAW,EAAE,UAAU,EAAiB;QAC9C,MAAM,OAAO,GACX,mEAAmE,CAAA;QACrE,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QACtD,MAAM,oBAAoB,GAAG,IAAI,CAAC,2BAA2B,CAAC,mBAAmB,CAC/E,UAAU,CAAC,IAAI,CAChB,CAAA;QACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAA;QACjE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAC9B,OAAO;YACP,YAAY;YACZ,oBAAoB;YACpB,kBAAkB;SACnB,CAAC,CAAA;IACJ,CAAC;IAED,eAAe,CAAC,WAAwB;QACtC,QAAQ,WAAW,EAAE;YACnB,KAAK,qBAAW,CAAC,KAAK;gBACpB,OAAO,MAAM,CAAA;YACf,KAAK,qBAAW,CAAC,OAAO;gBACtB,OAAO,MAAM,CAAA;YACf,KAAK,qBAAW,CAAC,YAAY;gBAC3B,OAAO,OAAO,CAAA;SACjB;IACH,CAAC;IAED,qBAAqB,CAAC,IAAiC;QACrD,IAAI,6BAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAChC,MAAM,YAAY,GAAG,kCAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACpD,SAAS,EAAE,GAAG,EAAE,CAAC,WAAW;gBAC5B,SAAS,EAAE,GAAG,EAAE,CAAC,WAAW;aAC7B,CAAC,CAAA;YACF,OAAO,CAAC,YAAY,CAAC,CAAA;SACtB;QACD,OAAO,EAAE,CAAA;IACX,CAAC;CACF;AAnDD,+CAmDC","sourcesContent":["import { KeywordType } from '../helpers'\nimport { parseStepArgument } from '../../step_arguments'\nimport { ISnippetSnytax } from './snippet_syntax'\nimport {\n CucumberExpressionGenerator,\n ParameterTypeRegistry,\n} from '@cucumber/cucumber-expressions'\nimport { messages } from '@cucumber/messages'\nimport { doesHaveValue } from '../../value_checker'\n\nexport interface INewStepDefinitionSnippetBuilderOptions {\n snippetSyntax: ISnippetSnytax\n parameterTypeRegistry: ParameterTypeRegistry\n}\n\nexport interface IBuildRequest {\n keywordType: KeywordType\n pickleStep: messages.Pickle.IPickleStep\n}\n\nexport default class StepDefinitionSnippetBuilder {\n private readonly snippetSyntax: ISnippetSnytax\n private readonly cucumberExpressionGenerator: CucumberExpressionGenerator\n\n constructor({\n snippetSyntax,\n parameterTypeRegistry,\n }: INewStepDefinitionSnippetBuilderOptions) {\n this.snippetSyntax = snippetSyntax\n this.cucumberExpressionGenerator = new CucumberExpressionGenerator(\n () => parameterTypeRegistry.parameterTypes\n )\n }\n\n build({ keywordType, pickleStep }: IBuildRequest): string {\n const comment =\n 'Write code here that turns the phrase above into concrete actions'\n const functionName = this.getFunctionName(keywordType)\n const generatedExpressions = this.cucumberExpressionGenerator.generateExpressions(\n pickleStep.text\n )\n const stepParameterNames = this.getStepParameterNames(pickleStep)\n return this.snippetSyntax.build({\n comment,\n functionName,\n generatedExpressions,\n stepParameterNames,\n })\n }\n\n getFunctionName(keywordType: KeywordType): string {\n switch (keywordType) {\n case KeywordType.Event:\n return 'When'\n case KeywordType.Outcome:\n return 'Then'\n case KeywordType.Precondition:\n return 'Given'\n }\n }\n\n getStepParameterNames(step: messages.Pickle.IPickleStep): string[] {\n if (doesHaveValue(step.argument)) {\n const argumentName = parseStepArgument(step.argument, {\n dataTable: () => 'dataTable',\n docString: () => 'docString',\n })\n return [argumentName]\n }\n return []\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"javascript_snippet_syntax.js","sourceRoot":"","sources":["../../../src/formatter/step_definition_snippet_builder/javascript_snippet_syntax.ts"],"names":[],"mappings":";;AAAA,qDAIyB;AAEzB,MAAM,aAAa,GAAG,UAAU,CAAA;AAEhC,MAAqB,uBAAuB;IAG1C,YAAY,gBAAkC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,EACJ,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACS;QAC3B,IAAI,eAAe,GAAG,WAAW,CAAA;QACjC,IAAI,IAAI,CAAC,gBAAgB,KAAK,iCAAgB,CAAC,UAAU,EAAE;YACzD,eAAe,GAAG,QAAQ,GAAG,eAAe,CAAA;SAC7C;aAAM,IAAI,IAAI,CAAC,gBAAgB,KAAK,iCAAgB,CAAC,SAAS,EAAE;YAC/D,eAAe,IAAI,GAAG,CAAA;SACvB;QAED,IAAI,cAAsB,CAAA;QAC1B,IAAI,IAAI,CAAC,gBAAgB,KAAK,iCAAgB,CAAC,QAAQ,EAAE;YACvD,cAAc,GAAG,GAAG,aAAa,oBAAoB,CAAA;SACtD;aAAM;YACL,cAAc,GAAG,mBAAmB,CAAA;SACrC;QAED,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,CAChD,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;YACvC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,cAAc,CAAC,MAAM,CACjE,kBAAkB,CACnB,CAAA;YACD,IAAI,IAAI,CAAC,gBAAgB,KAAK,iCAAgB,CAAC,QAAQ,EAAE;gBACvD,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;aACtC;YACD,OAAO,GAAG,MAAM,GAAG,YAAY,KAAK,mBAAmB,CAAC,MAAM,CAAC,OAAO,CACpE,IAAI,EACJ,KAAK,CACN,MAAM,eAAe,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;QAC/D,CAAC,CACF,CAAA;QAED,OAAO,CACL,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,OAAO,IAAI;YAChD,KAAK,cAAc,IAAI;YACvB,KAAK,CACN,CAAA;IACH,CAAC;CACF;AAjDD,0CAiDC"}
1
+ {"version":3,"file":"javascript_snippet_syntax.js","sourceRoot":"","sources":["../../../src/formatter/step_definition_snippet_builder/javascript_snippet_syntax.ts"],"names":[],"mappings":";;AAAA,qDAIyB;AAEzB,MAAM,aAAa,GAAG,UAAU,CAAA;AAEhC,MAAqB,uBAAuB;IAG1C,YAAY,gBAAkC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,EACJ,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,GACS;QAC3B,IAAI,eAAe,GAAG,WAAW,CAAA;QACjC,IAAI,IAAI,CAAC,gBAAgB,KAAK,iCAAgB,CAAC,UAAU,EAAE;YACzD,eAAe,GAAG,QAAQ,GAAG,eAAe,CAAA;SAC7C;aAAM,IAAI,IAAI,CAAC,gBAAgB,KAAK,iCAAgB,CAAC,SAAS,EAAE;YAC/D,eAAe,IAAI,GAAG,CAAA;SACvB;QAED,IAAI,cAAsB,CAAA;QAC1B,IAAI,IAAI,CAAC,gBAAgB,KAAK,iCAAgB,CAAC,QAAQ,EAAE;YACvD,cAAc,GAAG,GAAG,aAAa,oBAAoB,CAAA;SACtD;aAAM;YACL,cAAc,GAAG,mBAAmB,CAAA;SACrC;QAED,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,CAChD,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE;YAC7B,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;YACvC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,cAAc,CAAC,MAAM,CACjE,kBAAkB,CACnB,CAAA;YACD,IAAI,IAAI,CAAC,gBAAgB,KAAK,iCAAgB,CAAC,QAAQ,EAAE;gBACvD,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;aACtC;YACD,OAAO,GAAG,MAAM,GAAG,YAAY,KAAK,mBAAmB,CAAC,MAAM,CAAC,OAAO,CACpE,IAAI,EACJ,KAAK,CACN,MAAM,eAAe,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAA;QAC/D,CAAC,CACF,CAAA;QAED,OAAO,CACL,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,OAAO,IAAI;YAChD,KAAK,cAAc,IAAI;YACvB,KAAK,CACN,CAAA;IACH,CAAC;CACF;AAjDD,0CAiDC","sourcesContent":["import {\n ISnippetSnytax,\n ISnippetSyntaxBuildOptions,\n SnippetInterface,\n} from './snippet_syntax'\n\nconst CALLBACK_NAME = 'callback'\n\nexport default class JavaScriptSnippetSyntax implements ISnippetSnytax {\n private readonly snippetInterface: SnippetInterface\n\n constructor(snippetInterface: SnippetInterface) {\n this.snippetInterface = snippetInterface\n }\n\n build({\n comment,\n generatedExpressions,\n functionName,\n stepParameterNames,\n }: ISnippetSyntaxBuildOptions): string {\n let functionKeyword = 'function '\n if (this.snippetInterface === SnippetInterface.AsyncAwait) {\n functionKeyword = 'async ' + functionKeyword\n } else if (this.snippetInterface === SnippetInterface.Generator) {\n functionKeyword += '*'\n }\n\n let implementation: string\n if (this.snippetInterface === SnippetInterface.Callback) {\n implementation = `${CALLBACK_NAME}(null, 'pending');`\n } else {\n implementation = \"return 'pending';\"\n }\n\n const definitionChoices = generatedExpressions.map(\n (generatedExpression, index) => {\n const prefix = index === 0 ? '' : '// '\n const allParameterNames = generatedExpression.parameterNames.concat(\n stepParameterNames\n )\n if (this.snippetInterface === SnippetInterface.Callback) {\n allParameterNames.push(CALLBACK_NAME)\n }\n return `${prefix + functionName}('${generatedExpression.source.replace(\n /'/g,\n \"\\\\'\"\n )}', ${functionKeyword}(${allParameterNames.join(', ')}) {\\n`\n }\n )\n\n return (\n `${definitionChoices.join('')} // ${comment}\\n` +\n ` ${implementation}\\n` +\n '});'\n )\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"snippet_syntax.js","sourceRoot":"","sources":["../../../src/formatter/step_definition_snippet_builder/snippet_syntax.ts"],"names":[],"mappings":";;;AAEA,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,8CAA0B,CAAA;IAC1B,yCAAqB,CAAA;IACrB,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,+CAA2B,CAAA;AAC7B,CAAC,EANW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAM3B"}
1
+ {"version":3,"file":"snippet_syntax.js","sourceRoot":"","sources":["../../../src/formatter/step_definition_snippet_builder/snippet_syntax.ts"],"names":[],"mappings":";;;AAEA,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,8CAA0B,CAAA;IAC1B,yCAAqB,CAAA;IACrB,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,+CAA2B,CAAA;AAC7B,CAAC,EANW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAM3B","sourcesContent":["import GeneratedExpression from '@cucumber/cucumber-expressions/dist/src/GeneratedExpression'\n\nexport enum SnippetInterface {\n AsyncAwait = 'async-await',\n Callback = 'callback',\n Generator = 'generator',\n Promise = 'promise',\n Synchronous = 'synchronous',\n}\n\nexport interface ISnippetSyntaxBuildOptions {\n comment: string\n functionName: string\n generatedExpressions: readonly GeneratedExpression[]\n stepParameterNames: string[]\n}\n\nexport interface ISnippetSnytax {\n build: (options: ISnippetSyntaxBuildOptions) => string\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"summary_formatter.js","sourceRoot":"","sources":["../../src/formatter/summary_formatter.ts"],"names":[],"mappings":";;;;;AAAA,oDAAsB;AACtB,uCAA4E;AAC5E,0CAAiD;AACjD,oDAAgD;AAGhD,2DAAuE;AACvE,kCAAmD;AAOnD,MAAqB,gBAAiB,SAAQ,UAAS;IACrD,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,uBAA4C,CAAA;QAChD,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAA4B,EAAE,EAAE;YACvE,IAAI,6BAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC1C,uBAAuB,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAA;aAC5D;YACD,IAAI,6BAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC3C,MAAM,wBAAwB,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAA;gBACnE,IAAI,CAAC,UAAU,CACb,gCAAyB,CACvB,uBAAuB,EACvB,wBAAwB,CACzB,CACF,CAAA;aACF;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,UAAU,CAAC,eAAmC;QAC5C,MAAM,QAAQ,GAAuB,EAAE,CAAA;QACvC,MAAM,QAAQ,GAAuB,EAAE,CAAA;QACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAA;QACtE,gBAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,eAAe,EAAE,EAAE;YAC3C,IAAI,mBAAS,CAAC,eAAe,CAAC,mBAAmB,CAAC,EAAE;gBAClD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;aAC/B;iBAAM,IAAI,mBAAS,CAAC,eAAe,CAAC,mBAAmB,CAAC,EAAE;gBACzD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;aAC/B;QACH,CAAC,CAAC,CAAA;QACF,IAAI,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,IAAI,CAAC,GAAG,CACN,6CAA6B,CAC3B,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAChD,CACF,CAAA;SACF;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;SACxD;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;SACxD;QACD,IAAI,CAAC,GAAG,CACN,uBAAa,CAAC;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,gBAAgB;YAChB,eAAe;SAChB,CAAC,CACH,CAAA;IACH,CAAC;IAED,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAqB;QAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,OAAO,CAAC,CAAA;QACzB,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CACN,qBAAW,CAAC;gBACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,KAAK,GAAG,CAAC;gBACjB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,eAAe;aAChB,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AApED,mCAoEC"}
1
+ {"version":3,"file":"summary_formatter.js","sourceRoot":"","sources":["../../src/formatter/summary_formatter.ts"],"names":[],"mappings":";;;;;AAAA,oDAAsB;AACtB,uCAA4E;AAC5E,0CAAiD;AACjD,oDAAgD;AAGhD,2DAAuE;AACvE,kCAAmD;AAOnD,MAAqB,gBAAiB,SAAQ,UAAS;IACrD,YAAY,OAA0B;QACpC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,uBAA4C,CAAA;QAChD,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAA4B,EAAE,EAAE;YACvE,IAAI,6BAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;gBAC1C,uBAAuB,GAAG,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAA;aAC5D;YACD,IAAI,6BAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;gBAC3C,MAAM,wBAAwB,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAA;gBACnE,IAAI,CAAC,UAAU,CACb,gCAAyB,CACvB,uBAAuB,EACvB,wBAAwB,CACzB,CACF,CAAA;aACF;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,UAAU,CAAC,eAAmC;QAC5C,MAAM,QAAQ,GAAuB,EAAE,CAAA;QACvC,MAAM,QAAQ,GAAuB,EAAE,CAAA;QACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAA;QACtE,gBAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,eAAe,EAAE,EAAE;YAC3C,IAAI,mBAAS,CAAC,eAAe,CAAC,mBAAmB,CAAC,EAAE;gBAClD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;aAC/B;iBAAM,IAAI,mBAAS,CAAC,eAAe,CAAC,mBAAmB,CAAC,EAAE;gBACzD,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;aAC/B;QACH,CAAC,CAAC,CAAA;QACF,IAAI,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,IAAI,CAAC,GAAG,CACN,6CAA6B,CAC3B,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAChD,CACF,CAAA;SACF;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;SACxD;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;SACxD;QACD,IAAI,CAAC,GAAG,CACN,uBAAa,CAAC;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,gBAAgB;YAChB,eAAe;SAChB,CAAC,CACH,CAAA;IACH,CAAC;IAED,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAqB;QAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,OAAO,CAAC,CAAA;QACzB,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,KAAK,EAAE,EAAE;YACxC,IAAI,CAAC,GAAG,CACN,qBAAW,CAAC;gBACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,KAAK,GAAG,CAAC;gBACjB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,eAAe;aAChB,CAAC,CACH,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AApED,mCAoEC","sourcesContent":["import _ from 'lodash'\nimport { formatIssue, formatSummary, isFailure, isWarning } from './helpers'\nimport Formatter, { IFormatterOptions } from './'\nimport { doesHaveValue } from '../value_checker'\nimport { messages } from '@cucumber/messages'\nimport { ITestCaseAttempt } from './helpers/event_data_collector'\nimport { formatUndefinedParameterTypes } from './helpers/issue_helpers'\nimport { durationBetweenTimestamps } from '../time'\n\ninterface ILogIssuesRequest {\n issues: ITestCaseAttempt[]\n title: string\n}\n\nexport default class SummaryFormatter extends Formatter {\n constructor(options: IFormatterOptions) {\n super(options)\n let testRunStartedTimestamp: messages.ITimestamp\n options.eventBroadcaster.on('envelope', (envelope: messages.IEnvelope) => {\n if (doesHaveValue(envelope.testRunStarted)) {\n testRunStartedTimestamp = envelope.testRunStarted.timestamp\n }\n if (doesHaveValue(envelope.testRunFinished)) {\n const testRunFinishedTimestamp = envelope.testRunFinished.timestamp\n this.logSummary(\n durationBetweenTimestamps(\n testRunStartedTimestamp,\n testRunFinishedTimestamp\n )\n )\n }\n })\n }\n\n logSummary(testRunDuration: messages.IDuration): void {\n const failures: ITestCaseAttempt[] = []\n const warnings: ITestCaseAttempt[] = []\n const testCaseAttempts = this.eventDataCollector.getTestCaseAttempts()\n _.each(testCaseAttempts, (testCaseAttempt) => {\n if (isFailure(testCaseAttempt.worstTestStepResult)) {\n failures.push(testCaseAttempt)\n } else if (isWarning(testCaseAttempt.worstTestStepResult)) {\n warnings.push(testCaseAttempt)\n }\n })\n if (this.eventDataCollector.undefinedParameterTypes.length > 0) {\n this.log(\n formatUndefinedParameterTypes(\n this.eventDataCollector.undefinedParameterTypes\n )\n )\n }\n if (failures.length > 0) {\n this.logIssues({ issues: failures, title: 'Failures' })\n }\n if (warnings.length > 0) {\n this.logIssues({ issues: warnings, title: 'Warnings' })\n }\n this.log(\n formatSummary({\n colorFns: this.colorFns,\n testCaseAttempts,\n testRunDuration,\n })\n )\n }\n\n logIssues({ issues, title }: ILogIssuesRequest): void {\n this.log(`${title}:\\n\\n`)\n issues.forEach((testCaseAttempt, index) => {\n this.log(\n formatIssue({\n colorFns: this.colorFns,\n cwd: this.cwd,\n number: index + 1,\n snippetBuilder: this.snippetBuilder,\n supportCodeLibrary: this.supportCodeLibrary,\n testCaseAttempt,\n })\n )\n })\n }\n}\n"]}