@lynxwall/cucumber-tsflow 7.2.0 → 7.3.1
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.
- package/README.md +59 -35
- package/lib/api/load-configuration.js +60 -16
- package/lib/api/load-configuration.js.map +1 -1
- package/lib/bindings/binding-context.d.ts +40 -4
- package/lib/bindings/binding-context.js +50 -6
- package/lib/bindings/binding-context.js.map +1 -1
- package/lib/bindings/binding-decorator.js +32 -9
- package/lib/bindings/binding-decorator.js.map +1 -1
- package/lib/bindings/binding-registry.js +10 -0
- package/lib/bindings/binding-registry.js.map +1 -1
- package/lib/bindings/hook-decorators.js +4 -3
- package/lib/bindings/hook-decorators.js.map +1 -1
- package/lib/bindings/step-decorators.js +12 -9
- package/lib/bindings/step-decorators.js.map +1 -1
- package/lib/cli/argv-parser.js +1 -2
- package/lib/cli/argv-parser.js.map +1 -1
- package/lib/runtime/parallel/worker.js +1 -1
- package/lib/runtime/parallel/worker.js.map +1 -1
- package/lib/runtime/test-case-runner.d.ts +2 -1
- package/lib/runtime/test-case-runner.js +8 -5
- package/lib/runtime/test-case-runner.js.map +1 -1
- package/lib/transpilers/esbuild-transpiler.d.ts +1 -1
- package/lib/transpilers/esbuild-transpiler.js.map +1 -1
- package/lib/transpilers/esbuild.js.map +1 -1
- package/lib/transpilers/esm/esbuild-transpiler-cjs.js +2174 -0
- package/lib/transpilers/esm/esbuild-transpiler.mjs +19 -0
- package/lib/transpilers/esm/esbuild.mjs +141 -0
- package/lib/transpilers/esm/esmbuild-transpiler.d.ts +4 -0
- package/lib/transpilers/esm/esmbuild-transpiler.js +19 -0
- package/lib/transpilers/esm/esmbuild-transpiler.js.map +1 -0
- package/lib/transpilers/esm/esmbuild.d.ts +12 -0
- package/lib/transpilers/esm/esmbuild.js +72 -0
- package/lib/transpilers/esm/esmbuild.js.map +1 -0
- package/lib/transpilers/esm/esmnode.d.ts +1 -0
- package/lib/transpilers/esm/esmnode.js +8 -0
- package/lib/transpilers/esm/esmnode.js.map +1 -0
- package/lib/transpilers/esm/esmvue.d.ts +1 -0
- package/lib/transpilers/esm/esmvue.js +29 -0
- package/lib/transpilers/esm/esmvue.js.map +1 -0
- package/lib/transpilers/esm/esnode-loader.mjs +9 -0
- package/lib/transpilers/esm/esvue-loader.mjs +9 -0
- package/lib/transpilers/esm/loader-utils.mjs +356 -0
- package/lib/transpilers/esm/tsnode-esm.d.ts +1 -0
- package/lib/transpilers/esm/tsnode-esm.js +25 -0
- package/lib/transpilers/esm/tsnode-esm.js.map +1 -0
- package/lib/transpilers/esm/tsnode-exp-esm.d.ts +1 -0
- package/lib/transpilers/esm/tsnode-exp-esm.js +19 -0
- package/lib/transpilers/esm/tsnode-exp-esm.js.map +1 -0
- package/lib/transpilers/esm/tsnode-loader.mjs +107 -0
- package/lib/transpilers/esm/tsnode-service.mjs +40 -0
- package/lib/transpilers/esm/tsvue-esm.d.ts +1 -0
- package/lib/transpilers/esm/tsvue-esm.js +40 -0
- package/lib/transpilers/esm/tsvue-esm.js.map +1 -0
- package/lib/transpilers/esm/tsvue-exp-esm.d.ts +1 -0
- package/lib/transpilers/esm/tsvue-exp-esm.js +40 -0
- package/lib/transpilers/esm/tsvue-exp-esm.js.map +1 -0
- package/lib/transpilers/esm/vue-jsdom-setup.mjs +19 -0
- package/lib/transpilers/esm/vue-loader.mjs +113 -0
- package/lib/transpilers/esm/vue-sfc-compiler.mjs +216 -0
- package/lib/transpilers/esnode.js +1 -1
- package/lib/transpilers/esnode.js.map +1 -1
- package/lib/transpilers/esvue.js +1 -1
- package/lib/transpilers/esvue.js.map +1 -1
- package/lib/transpilers/tsnode-exp.js +1 -1
- package/lib/transpilers/tsnode-exp.js.map +1 -1
- package/lib/transpilers/tsnode.js +1 -1
- package/lib/transpilers/tsnode.js.map +1 -1
- package/lib/transpilers/tsvue-exp.js +1 -1
- package/lib/transpilers/tsvue-exp.js.map +1 -1
- package/lib/transpilers/tsvue.js +2 -2
- package/lib/transpilers/tsvue.js.map +1 -1
- package/lib/transpilers/vue-sfc/index.js.map +1 -1
- package/lib/tsconfig.node.tsbuildinfo +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +27 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-case-runner.js","sourceRoot":"","sources":["../../src/runtime/test-case-runner.ts"],"names":[],"mappings":"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","sourcesContent":["import { getAmbiguousStepException } from '@cucumber/cucumber/lib/runtime/helpers';\r\nimport { INewTestCaseRunnerOptions } from '@cucumber/cucumber/lib/runtime/test_case_runner';\r\nimport AttachmentManager, { ICreateAttachment } from '@cucumber/cucumber/lib/runtime/attachment_manager/index';\r\nimport StepRunner from '@cucumber/cucumber/lib/runtime/step_runner';\r\nimport * as messages from '@cucumber/messages';\r\nimport { getWorstTestStepResult, IdGenerator } from '@cucumber/messages';\r\nimport { EventEmitter } from 'events';\r\nimport {\r\n\tSupportCodeLibrary,\r\n\tITestCaseHookParameter,\r\n\tITestStepHookParameter\r\n} from '@cucumber/cucumber/lib/support_code_library_builder/types';\r\nimport TestCaseHookDefinition from '@cucumber/cucumber/lib/models/test_case_hook_definition';\r\nimport TestStepHookDefinition from '@cucumber/cucumber/lib/models/test_step_hook_definition';\r\nimport { IDefinition } from '@cucumber/cucumber/lib/models/definition';\r\nimport { doesHaveValue, doesNotHaveValue } from '@cucumber/cucumber/lib/value_checker';\r\nimport StepDefinition from '@cucumber/cucumber/lib/models/step_definition';\r\nimport { BindingRegistry } from '../bindings/binding-registry';\r\nimport { StepBinding } from '../bindings/step-binding';\r\nimport { ManagedScenarioContext } from './managed-scenario-context';\r\nimport { error } from 'console';\r\nimport { EndTestCaseInfo, StartTestCaseInfo } from './test-case-info';\r\nimport { IWorldOptions } from '@cucumber/cucumber/lib/support_code_library_builder/world';\r\nimport { timestamp } from '@cucumber/cucumber/lib/runtime/stopwatch';\r\n\r\nexport default class TestCaseRunner {\r\n\tprivate readonly workerId: string | undefined;\r\n\tprivate readonly attachmentManager: AttachmentManager;\r\n\tprivate currentTestCaseStartedId?: string;\r\n\tprivate currentTestStepId?: string;\r\n\tprivate readonly eventBroadcaster: EventEmitter;\r\n\tprivate readonly gherkinDocument: messages.GherkinDocument;\r\n\tprivate readonly newId: IdGenerator.NewId;\r\n\tprivate readonly pickle: messages.Pickle;\r\n\tprivate readonly testCase: messages.TestCase;\r\n\tprivate readonly maxAttempts: number;\r\n\tprivate readonly skip: boolean;\r\n\tprivate readonly filterStackTraces: boolean;\r\n\tprivate readonly supportCodeLibrary: SupportCodeLibrary;\r\n\tprivate testStepResults?: messages.TestStepResult[];\r\n\tprivate world: any;\r\n\tprivate readonly worldParameters: any;\r\n\tprivate bindingRegistry: BindingRegistry;\r\n\r\n\tconstructor({\r\n\t\tworkerId,\r\n\t\teventBroadcaster,\r\n\t\tgherkinDocument,\r\n\t\tnewId,\r\n\t\tpickle,\r\n\t\ttestCase,\r\n\t\tretries = 0,\r\n\t\tskip,\r\n\t\tfilterStackTraces,\r\n\t\tsupportCodeLibrary,\r\n\t\tworldParameters\r\n\t}: INewTestCaseRunnerOptions) {\r\n\t\tthis.workerId = workerId;\r\n\t\tthis.attachmentManager = new AttachmentManager(({ data, media, fileName }) => {\r\n\t\t\tif (doesNotHaveValue(this.currentTestStepId)) {\r\n\t\t\t\tthrow new Error(\r\n\t\t\t\t\t'Cannot attach when a step/hook is not running. Ensure your step/hook waits for the attach to finish.'\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tconst attachment: messages.Envelope = {\r\n\t\t\t\tattachment: {\r\n\t\t\t\t\tbody: data,\r\n\t\t\t\t\tcontentEncoding: media.encoding,\r\n\t\t\t\t\tmediaType: media.contentType,\r\n\t\t\t\t\tfileName,\r\n\t\t\t\t\ttestCaseStartedId: this.currentTestCaseStartedId,\r\n\t\t\t\t\ttestStepId: this.currentTestStepId\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tthis.eventBroadcaster.emit('envelope', attachment);\r\n\t\t});\r\n\t\tthis.eventBroadcaster = eventBroadcaster;\r\n\t\tthis.gherkinDocument = gherkinDocument;\r\n\t\tthis.maxAttempts = 1 + (skip ? 0 : retries);\r\n\t\tthis.newId = newId;\r\n\t\tthis.pickle = pickle;\r\n\t\tthis.testCase = testCase;\r\n\t\tthis.skip = skip;\r\n\t\tthis.filterStackTraces = filterStackTraces;\r\n\t\tthis.supportCodeLibrary = supportCodeLibrary;\r\n\t\tthis.worldParameters = worldParameters;\r\n\t\tthis.resetTestProgressData();\r\n\t\tthis.bindingRegistry = BindingRegistry.instance;\r\n\t}\r\n\r\n\tresetTestProgressData(): void {\r\n\t\tthis.world = new this.supportCodeLibrary.World({\r\n\t\t\tattach: this.attachmentManager.create.bind(this.attachmentManager) as unknown as ICreateAttachment,\r\n\t\t\tlog: this.attachmentManager.log.bind(this.attachmentManager),\r\n\t\t\tlink: this.attachmentManager.link.bind(this.attachmentManager),\r\n\t\t\tparameters: structuredClone(this.worldParameters)\r\n\t\t} satisfies IWorldOptions);\r\n\t\tthis.testStepResults = [];\r\n\t}\r\n\r\n\tgetBeforeStepHookDefinitions(): TestStepHookDefinition[] {\r\n\t\treturn this.supportCodeLibrary.beforeTestStepHookDefinitions.filter(hookDefinition =>\r\n\t\t\thookDefinition.appliesToTestCase(this.pickle)\r\n\t\t);\r\n\t}\r\n\r\n\tgetAfterStepHookDefinitions(): TestStepHookDefinition[] {\r\n\t\treturn this.supportCodeLibrary.afterTestStepHookDefinitions\r\n\t\t\t.slice(0)\r\n\t\t\t.reverse()\r\n\t\t\t.filter(hookDefinition => hookDefinition.appliesToTestCase(this.pickle));\r\n\t}\r\n\r\n\tgetWorstStepResult(): messages.TestStepResult {\r\n\t\tif (!this.testStepResults || this.testStepResults.length === 0) {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: this.skip ? messages.TestStepResultStatus.SKIPPED : messages.TestStepResultStatus.PASSED,\r\n\t\t\t\tduration: messages.TimeConversion.millisecondsToDuration(0)\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn getWorstTestStepResult(this.testStepResults);\r\n\t}\r\n\r\n\tasync invokeStep(\r\n\t\tstep: messages.PickleStep,\r\n\t\tstepDefinition: IDefinition,\r\n\t\thookParameter?: ITestCaseHookParameter\r\n\t): Promise<messages.TestStepResult> {\r\n\t\treturn await StepRunner.run({\r\n\t\t\tdefaultTimeout: this.supportCodeLibrary.defaultTimeout,\r\n\t\t\tfilterStackTraces: this.filterStackTraces,\r\n\t\t\thookParameter,\r\n\t\t\tstep,\r\n\t\t\tstepDefinition,\r\n\t\t\tworld: this.world\r\n\t\t});\r\n\t}\r\n\r\n\tisSkippingSteps(): boolean {\r\n\t\treturn this.getWorstStepResult().status !== messages.TestStepResultStatus.PASSED;\r\n\t}\r\n\r\n\tshouldSkipHook(isBeforeHook: boolean): boolean {\r\n\t\treturn this.skip || (this.isSkippingSteps() && isBeforeHook);\r\n\t}\r\n\r\n\tasync aroundTestStep(testStepId: string, runStepFn: () => Promise<messages.TestStepResult>): Promise<void> {\r\n\t\tconst testStepStarted: messages.Envelope = {\r\n\t\t\ttestStepStarted: {\r\n\t\t\t\ttestCaseStartedId: this.currentTestCaseStartedId!,\r\n\t\t\t\ttestStepId,\r\n\t\t\t\ttimestamp: timestamp()\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.eventBroadcaster.emit('envelope', testStepStarted);\r\n\t\tthis.currentTestStepId = testStepId;\r\n\t\tconst testStepResult = await runStepFn();\r\n\t\tthis.currentTestStepId = null;\r\n\t\tthis.testStepResults?.push(testStepResult);\r\n\t\tconst testStepFinished: messages.Envelope = {\r\n\t\t\ttestStepFinished: {\r\n\t\t\t\ttestCaseStartedId: this.currentTestCaseStartedId!,\r\n\t\t\t\ttestStepId,\r\n\t\t\t\ttestStepResult,\r\n\t\t\t\ttimestamp: timestamp()\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.eventBroadcaster.emit('envelope', testStepFinished);\r\n\t}\r\n\r\n\tasync run(): Promise<messages.TestStepResultStatus> {\r\n\t\tfor (let attempt = 0; attempt < this.maxAttempts; attempt++) {\r\n\t\t\tconst moreAttemptsRemaining = attempt + 1 < this.maxAttempts;\r\n\r\n\t\t\tconst willBeRetried = await this.runAttempt(attempt, moreAttemptsRemaining);\r\n\r\n\t\t\tif (!willBeRetried) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tthis.resetTestProgressData();\r\n\t\t}\r\n\t\treturn this.getWorstStepResult().status;\r\n\t}\r\n\r\n\tasync runAttempt(attempt: number, moreAttemptsRemaining: boolean): Promise<boolean> {\r\n\t\tthis.currentTestCaseStartedId = this.newId();\r\n\t\tconst testCaseStarted: messages.Envelope = {\r\n\t\t\ttestCaseStarted: {\r\n\t\t\t\tattempt,\r\n\t\t\t\ttestCaseId: this.testCase.id,\r\n\t\t\t\tid: this.currentTestCaseStartedId,\r\n\t\t\t\ttimestamp: timestamp()\r\n\t\t\t}\r\n\t\t};\r\n\t\tif (this.workerId) {\r\n\t\t\ttestCaseStarted.testCaseStarted.workerId = this.workerId;\r\n\t\t}\r\n\t\tthis.eventBroadcaster.emit('envelope', testCaseStarted);\r\n\t\t// used to determine whether a hook is a Before or After\r\n\t\tlet didWeRunStepsYet = false;\r\n\t\tfor (const testStep of this.testCase.testSteps) {\r\n\t\t\tawait this.aroundTestStep(testStep.id, async () => {\r\n\t\t\t\tif (doesHaveValue(testStep.hookId)) {\r\n\t\t\t\t\tconst hookParameter: ITestCaseHookParameter = {\r\n\t\t\t\t\t\tgherkinDocument: this.gherkinDocument,\r\n\t\t\t\t\t\tpickle: this.pickle,\r\n\t\t\t\t\t\ttestCaseStartedId: this.currentTestCaseStartedId!\r\n\t\t\t\t\t};\r\n\t\t\t\t\tif (didWeRunStepsYet) {\r\n\t\t\t\t\t\thookParameter.result = this.getWorstStepResult();\r\n\t\t\t\t\t\thookParameter.willBeRetried =\r\n\t\t\t\t\t\t\tthis.getWorstStepResult().status === messages.TestStepResultStatus.FAILED && moreAttemptsRemaining;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn await this.runHook(\r\n\t\t\t\t\t\tfindHookDefinition(testStep.hookId!, this.supportCodeLibrary),\r\n\t\t\t\t\t\thookParameter,\r\n\t\t\t\t\t\t!didWeRunStepsYet\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst pickleStep = this.pickle.steps.find(pickleStep => pickleStep.id === testStep.pickleStepId);\r\n\t\t\t\t\tconst testStepResult = await this.runStep(pickleStep!, testStep);\r\n\t\t\t\t\tdidWeRunStepsYet = true;\r\n\t\t\t\t\treturn testStepResult;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tconst worseResult = this.getWorstStepResult();\r\n\t\tconst willBeRetried = worseResult.status === messages.TestStepResultStatus.FAILED && moreAttemptsRemaining;\r\n\r\n\t\tconst endTestCaseParameter: EndTestCaseInfo = {\r\n\t\t\tgherkinDocument: this.gherkinDocument,\r\n\t\t\tpickle: this.pickle,\r\n\t\t\ttestCaseStartedId: this.currentTestCaseStartedId!,\r\n\t\t\tresult: worseResult,\r\n\t\t\twillBeRetried: willBeRetried\r\n\t\t};\r\n\r\n\t\t// End test case will call dispose on all context types\r\n\t\t// passed into a binding and then end the context.\r\n\t\tawait global.messageCollector.endTestCase(endTestCaseParameter);\r\n\r\n\t\tconst testCaseFinished: messages.Envelope = {\r\n\t\t\ttestCaseFinished: {\r\n\t\t\t\ttestCaseStartedId: this.currentTestCaseStartedId,\r\n\t\t\t\ttimestamp: timestamp(),\r\n\t\t\t\twillBeRetried\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.eventBroadcaster.emit('envelope', testCaseFinished);\r\n\r\n\t\treturn willBeRetried;\r\n\t}\r\n\r\n\tasync runHook(\r\n\t\thookDefinition: TestCaseHookDefinition,\r\n\t\thookParameter: ITestCaseHookParameter,\r\n\t\tisBeforeHook: boolean\r\n\t): Promise<messages.TestStepResult> {\r\n\t\tif (this.shouldSkipHook(isBeforeHook)) {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: messages.TestStepResultStatus.SKIPPED,\r\n\t\t\t\tduration: messages.TimeConversion.millisecondsToDuration(0)\r\n\t\t\t};\r\n\t\t}\r\n\t\t// Get the step binding and scenario context so that we can\r\n\t\t// initialize any context objects before hooks are executed\r\n\t\tconst stepBinding = this.bindingRegistry.getStepBindingByCucumberKey((hookDefinition.options as any).cucumberKey);\r\n\t\tif (!stepBinding) throw error('Unable to find StepBinding!');\r\n\t\tconst scenarioContext = global.messageCollector.getHookScenarioContext(hookParameter);\r\n\t\tif (!scenarioContext) throw error('Unable to find the ManagedScenarioContext!');\r\n\t\tawait this.initializeContext(stepBinding, scenarioContext);\r\n\r\n\t\treturn await this.invokeStep(null, hookDefinition, hookParameter);\r\n\t}\r\n\r\n\tasync runStepHooks(\r\n\t\tstepHooks: TestStepHookDefinition[],\r\n\t\tpickleStep: messages.PickleStep,\r\n\t\tstepResult?: messages.TestStepResult\r\n\t): Promise<messages.TestStepResult[]> {\r\n\t\tconst stepHooksResult = [];\r\n\t\tconst hookParameter: ITestStepHookParameter = {\r\n\t\t\tgherkinDocument: this.gherkinDocument,\r\n\t\t\tpickle: this.pickle,\r\n\t\t\tpickleStep,\r\n\t\t\ttestCaseStartedId: this.currentTestCaseStartedId!,\r\n\t\t\ttestStepId: this.currentTestStepId!,\r\n\t\t\tresult: stepResult!\r\n\t\t};\r\n\t\tfor (const stepHookDefinition of stepHooks) {\r\n\t\t\tstepHooksResult.push(await this.invokeStep(null, stepHookDefinition, hookParameter));\r\n\t\t}\r\n\t\treturn stepHooksResult;\r\n\t}\r\n\r\n\tasync runStep(pickleStep: messages.PickleStep, testStep: messages.TestStep): Promise<messages.TestStepResult> {\r\n\t\tconst stepDefinitions = testStep.stepDefinitionIds?.map(stepDefinitionId => {\r\n\t\t\treturn findStepDefinition(stepDefinitionId, this.supportCodeLibrary);\r\n\t\t});\r\n\r\n\t\tif (!stepDefinitions || stepDefinitions.length === 0) {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: messages.TestStepResultStatus.UNDEFINED,\r\n\t\t\t\tduration: messages.TimeConversion.millisecondsToDuration(0)\r\n\t\t\t};\r\n\t\t} else if (stepDefinitions.length > 1) {\r\n\t\t\treturn {\r\n\t\t\t\tmessage: getAmbiguousStepException(stepDefinitions),\r\n\t\t\t\tstatus: messages.TestStepResultStatus.AMBIGUOUS,\r\n\t\t\t\tduration: messages.TimeConversion.millisecondsToDuration(0)\r\n\t\t\t};\r\n\t\t} else if (this.isSkippingSteps()) {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: messages.TestStepResultStatus.SKIPPED,\r\n\t\t\t\tduration: messages.TimeConversion.millisecondsToDuration(0)\r\n\t\t\t};\r\n\t\t}\r\n\t\t// Get the step binding and scenario context so that we can\r\n\t\t// initialize any context objects before hooks are executed\r\n\t\tconst stepBinding = this.bindingRegistry.getStepBindingByCucumberKey(\r\n\t\t\t(stepDefinitions[0].options as any).cucumberKey\r\n\t\t);\r\n\t\tif (!stepBinding) throw error('Unable to find StepBinding!');\r\n\t\tconst scenarioContext = global.messageCollector.getStepScenarioContext(stepBinding);\r\n\t\tif (!scenarioContext) throw error('Unable to find the ManagedScenarioContext!');\r\n\t\tawait this.initializeContext(stepBinding, scenarioContext);\r\n\r\n\t\t// next execute any before step hooks followed by the step if there are no\r\n\t\t// failures in before step hooks.\r\n\t\tlet stepResult;\r\n\t\tlet stepResults = await this.runStepHooks(this.getBeforeStepHookDefinitions(), pickleStep);\r\n\t\tif (getWorstTestStepResult(stepResults).status !== messages.TestStepResultStatus.FAILED) {\r\n\t\t\tstepResult = await this.invokeStep(pickleStep, stepDefinitions[0]);\r\n\t\t\tstepResults.push(stepResult);\r\n\t\t}\r\n\t\t// run the after step hooks\r\n\t\tconst afterStepHookResults = await this.runStepHooks(this.getAfterStepHookDefinitions(), pickleStep, stepResult);\r\n\t\tstepResults = stepResults.concat(afterStepHookResults);\r\n\r\n\t\tconst finalStepResult = getWorstTestStepResult(stepResults);\r\n\t\tlet finalDuration = messages.TimeConversion.millisecondsToDuration(0);\r\n\t\tfor (const result of stepResults) {\r\n\t\t\tfinalDuration = messages.TimeConversion.addDurations(finalDuration, result.duration);\r\n\t\t}\r\n\t\tfinalStepResult.duration = finalDuration;\r\n\t\treturn finalStepResult;\r\n\t}\r\n\r\n\t/**\r\n\t * Helper used to initialize any context types that are passed into\r\n\t * a binding class before any hooks or steps are executed.\r\n\t * @param stepBinding\r\n\t * @param scenarioContext\r\n\t */\r\n\tasync initializeContext(stepBinding: StepBinding, scenarioContext: ManagedScenarioContext): Promise<void> {\r\n\t\tconst contextTypes = this.bindingRegistry.getContextTypesForClass(stepBinding.classPrototype);\r\n\t\tif (contextTypes.length > 0) {\r\n\t\t\tscenarioContext.getOrActivateBindingClass(stepBinding.classPrototype, contextTypes, this.world);\r\n\r\n\t\t\tconst startTestCaseParameter: StartTestCaseInfo = {\r\n\t\t\t\tgherkinDocument: this.gherkinDocument,\r\n\t\t\t\tpickle: this.pickle,\r\n\t\t\t\ttestCaseStartedId: this.currentTestCaseStartedId!\r\n\t\t\t};\r\n\t\t\tawait scenarioContext.initialize(startTestCaseParameter);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction findHookDefinition(id: string, supportCodeLibrary: SupportCodeLibrary): TestCaseHookDefinition {\r\n\treturn [...supportCodeLibrary.beforeTestCaseHookDefinitions, ...supportCodeLibrary.afterTestCaseHookDefinitions].find(\r\n\t\tdefinition => definition.id === id\r\n\t)!;\r\n}\r\n\r\nfunction findStepDefinition(id: string, supportCodeLibrary: SupportCodeLibrary): StepDefinition {\r\n\treturn supportCodeLibrary.stepDefinitions.find(definition => definition.id === id)!;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"test-case-runner.js","sourceRoot":"","sources":["../../src/runtime/test-case-runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAmF;AAEnF,oGAA+G;AAC/G,6FAAuF;AACvF,6DAA+C;AAC/C,iDAAyE;AAUzE,wEAAuF;AAEvF,mEAA+D;AAG/D,qCAAgC;AAGhC,wEAAqE;AAErE,MAAqB,cAAc;IACjB,QAAQ,CAAqB;IAC7B,iBAAiB,CAAoB;IAC9C,wBAAwB,CAAU;IAClC,iBAAiB,CAAU;IAClB,gBAAgB,CAAe;IAC/B,eAAe,CAA2B;IAC1C,KAAK,CAAoB;IACzB,MAAM,CAAkB;IACxB,QAAQ,CAAoB;IAC5B,WAAW,CAAS;IACpB,IAAI,CAAU;IACd,iBAAiB,CAAU;IAC3B,kBAAkB,CAAqB;IAChD,eAAe,CAA6B;IAC5C,KAAK,CAAM;IACF,eAAe,CAAM;IAC9B,eAAe,CAAkB;IAEzC,YAAY,EACX,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,KAAK,EACL,MAAM,EACN,QAAQ,EACR,OAAO,GAAG,CAAC,EACX,IAAI,EACJ,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACY;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,eAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC5E,IAAI,IAAA,gCAAgB,EAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,KAAK,CACd,sGAAsG,CACtG,CAAC;YACH,CAAC;YACD,MAAM,UAAU,GAAsB;gBACrC,UAAU,EAAE;oBACX,IAAI,EAAE,IAAI;oBACV,eAAe,EAAE,KAAK,CAAC,QAAQ;oBAC/B,SAAS,EAAE,KAAK,CAAC,WAAW;oBAC5B,QAAQ;oBACR,iBAAiB,EAAE,IAAI,CAAC,wBAAwB;oBAChD,UAAU,EAAE,IAAI,CAAC,iBAAiB;iBAClC;aACD,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,kCAAe,CAAC,QAAQ,CAAC;IACjD,CAAC;IAED,qBAAqB;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAC9C,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAiC;YAClG,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAC5D,IAAI,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAC9D,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;SACzB,CAAC,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,4BAA4B;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CACpF,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAC7C,CAAC;IACH,CAAC;IAED,2BAA2B;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC,4BAA4B;aACzD,KAAK,CAAC,CAAC,CAAC;aACR,OAAO,EAAE;aACT,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,kBAAkB;QACjB,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChE,OAAO;gBACN,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM;gBAChG,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC;aAC3D,CAAC;QACH,CAAC;QACD,OAAO,IAAA,iCAAsB,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,UAAU,CACf,IAAyB,EACzB,cAA2B,EAC3B,aAAsC;QAEtC,OAAO,MAAM,qBAAU,CAAC,GAAG,CAAC;YAC3B,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,cAAc;YACtD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,aAAa;YACb,IAAI;YACJ,cAAc;YACd,KAAK,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC,CAAC;IACJ,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC;IAClF,CAAC;IAED,cAAc,CAAC,YAAqB;QACnC,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,YAAY,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,UAAkB,EAAE,SAAiD;QACzF,MAAM,eAAe,GAAsB;YAC1C,eAAe,EAAE;gBAChB,iBAAiB,EAAE,IAAI,CAAC,wBAAyB;gBACjD,UAAU;gBACV,SAAS,EAAE,IAAA,qBAAS,GAAE;aACtB;SACD,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACxD,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;QACpC,MAAM,cAAc,GAAG,MAAM,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,gBAAgB,GAAsB;YAC3C,gBAAgB,EAAE;gBACjB,iBAAiB,EAAE,IAAI,CAAC,wBAAyB;gBACjD,UAAU;gBACV,cAAc;gBACd,SAAS,EAAE,IAAA,qBAAS,GAAE;aACtB;SACD,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,GAAG;QACR,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YAC7D,MAAM,qBAAqB,GAAG,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;YAE7D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;YAE5E,IAAI,CAAC,aAAa,EAAE,CAAC;gBACpB,MAAM;YACP,CAAC;YACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe,EAAE,qBAA8B;QAC/D,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7C,MAAM,eAAe,GAAsB;YAC1C,eAAe,EAAE;gBAChB,OAAO;gBACP,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC5B,EAAE,EAAE,IAAI,CAAC,wBAAwB;gBACjC,SAAS,EAAE,IAAA,qBAAS,GAAE;aACtB;SACD,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,eAAe,CAAC,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QACxD,wDAAwD;QACxD,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAChD,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;gBACjD,IAAI,IAAA,6BAAa,EAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACpC,MAAM,aAAa,GAA2B;wBAC7C,eAAe,EAAE,IAAI,CAAC,eAAe;wBACrC,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,iBAAiB,EAAE,IAAI,CAAC,wBAAyB;qBACjD,CAAC;oBACF,IAAI,gBAAgB,EAAE,CAAC;wBACtB,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACjD,aAAa,CAAC,aAAa;4BAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,oBAAoB,CAAC,MAAM,IAAI,qBAAqB,CAAC;oBACrG,CAAC;oBACD,OAAO,MAAM,IAAI,CAAC,OAAO,CACxB,kBAAkB,CAAC,QAAQ,CAAC,MAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAC7D,aAAa,EACb,CAAC,gBAAgB,CACjB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACP,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACjG,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAW,EAAE,QAAQ,CAAC,CAAC;oBACjE,gBAAgB,GAAG,IAAI,CAAC;oBACxB,OAAO,cAAc,CAAC;gBACvB,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,KAAK,QAAQ,CAAC,oBAAoB,CAAC,MAAM,IAAI,qBAAqB,CAAC;QAE3G,MAAM,oBAAoB,GAAoB;YAC7C,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,iBAAiB,EAAE,IAAI,CAAC,wBAAyB;YACjD,MAAM,EAAE,WAAW;YACnB,aAAa,EAAE,aAAa;SAC5B,CAAC;QAEF,uDAAuD;QACvD,kDAAkD;QAClD,MAAM,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;QAEhE,MAAM,gBAAgB,GAAsB;YAC3C,gBAAgB,EAAE;gBACjB,iBAAiB,EAAE,IAAI,CAAC,wBAAwB;gBAChD,SAAS,EAAE,IAAA,qBAAS,GAAE;gBACtB,aAAa;aACb;SACD,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAEzD,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,OAAO,CACZ,cAAsC,EACtC,aAAqC,EACrC,YAAqB;QAErB,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;YACvC,OAAO;gBACN,MAAM,EAAE,QAAQ,CAAC,oBAAoB,CAAC,OAAO;gBAC7C,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC;aAC3D,CAAC;QACH,CAAC;QAED,2DAA2D;QAC3D,2DAA2D;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAE,cAAc,CAAC,OAAe,CAAC,WAAW,CAAC,CAAC;QAClH,IAAI,CAAC,WAAW;YAAE,MAAM,IAAA,eAAK,EAAC,wDAAwD,CAAC,CAAC;QACxF,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACtF,IAAI,CAAC,eAAe;YAAE,MAAM,IAAA,eAAK,EAAC,4CAA4C,CAAC,CAAC;QAChF,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAE3D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,CAAC,YAAY,CACjB,SAAmC,EACnC,UAA+B,EAC/B,UAAoC;QAEpC,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,MAAM,aAAa,GAA2B;YAC7C,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU;YACV,iBAAiB,EAAE,IAAI,CAAC,wBAAyB;YACjD,UAAU,EAAE,IAAI,CAAC,iBAAkB;YACnC,MAAM,EAAE,UAAW;SACnB,CAAC;QACF,KAAK,MAAM,kBAAkB,IAAI,SAAS,EAAE,CAAC;YAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;YAClF,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,eAAe,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAA+B,EAAE,QAA2B;QACzE,MAAM,eAAe,GAAG,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,gBAAgB,CAAC,EAAE;YAC1E,OAAO,kBAAkB,CAAC,gBAAgB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO;gBACN,MAAM,EAAE,QAAQ,CAAC,oBAAoB,CAAC,SAAS;gBAC/C,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC;aAC3D,CAAC;QACH,CAAC;aAAM,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,OAAO;gBACN,OAAO,EAAE,IAAA,mCAAyB,EAAC,eAAe,CAAC;gBACnD,MAAM,EAAE,QAAQ,CAAC,oBAAoB,CAAC,SAAS;gBAC/C,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC;aAC3D,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACnC,OAAO;gBACN,MAAM,EAAE,QAAQ,CAAC,oBAAoB,CAAC,OAAO;gBAC7C,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC;aAC3D,CAAC;QACH,CAAC;QACD,2DAA2D;QAC3D,2DAA2D;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAClE,eAAe,CAAC,CAAC,CAAC,CAAC,OAAe,CAAC,WAAW,CAC/C,CAAC;QACF,IAAI,CAAC,WAAW;YAAE,MAAM,IAAA,eAAK,EAAC,yDAAyD,CAAC,CAAC;QACzF,MAAM,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACpF,IAAI,CAAC,eAAe;YAAE,MAAM,IAAA,eAAK,EAAC,4CAA4C,CAAC,CAAC;QAChF,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAE3D,0EAA0E;QAC1E,iCAAiC;QACjC,IAAI,UAAU,CAAC;QACf,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,UAAU,CAAC,CAAC;QAC3F,IAAI,IAAA,iCAAsB,EAAC,WAAW,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC;YACzF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,UAAU,GAAG,MAAM,CAAC;YACpB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;QACD,2BAA2B;QAC3B,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACjH,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAEvD,MAAM,eAAe,GAAG,IAAA,iCAAsB,EAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACtE,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YAClC,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtF,CAAC;QACD,eAAe,CAAC,QAAQ,GAAG,aAAa,CAAC;QACzC,OAAO,eAAe,CAAC;IACxB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CAAC,WAAwB,EAAE,eAAuC;QACxF,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC9F,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,eAAe,CAAC,yBAAyB,CAAC,WAAW,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAEhG,MAAM,sBAAsB,GAAsB;gBACjD,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,iBAAiB,EAAE,IAAI,CAAC,wBAAyB;aACjD,CAAC;YACF,MAAM,eAAe,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;CACD;AA1VD,iCA0VC;AAED,SAAS,kBAAkB,CAAC,EAAU,EAAE,kBAAsC;IAC7E,OAAO,CAAC,GAAG,kBAAkB,CAAC,6BAA6B,EAAE,GAAG,kBAAkB,CAAC,4BAA4B,CAAC,CAAC,IAAI,CACpH,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CACjC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAU,EAAE,kBAAsC;IAC7E,OAAO,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAE,CAAC;AACrF,CAAC","sourcesContent":["import { getAmbiguousStepException } from '@cucumber/cucumber/lib/runtime/helpers';\r\nimport { INewTestCaseRunnerOptions } from '@cucumber/cucumber/lib/runtime/test_case_runner';\r\nimport AttachmentManager, { ICreateAttachment } from '@cucumber/cucumber/lib/runtime/attachment_manager/index';\r\nimport StepRunner, { RunStepResult } from '@cucumber/cucumber/lib/runtime/step_runner';\r\nimport * as messages from '@cucumber/messages';\r\nimport { getWorstTestStepResult, IdGenerator } from '@cucumber/messages';\r\nimport { EventEmitter } from 'events';\r\nimport {\r\n\tSupportCodeLibrary,\r\n\tITestCaseHookParameter,\r\n\tITestStepHookParameter\r\n} from '@cucumber/cucumber/lib/support_code_library_builder/types';\r\nimport TestCaseHookDefinition from '@cucumber/cucumber/lib/models/test_case_hook_definition';\r\nimport TestStepHookDefinition from '@cucumber/cucumber/lib/models/test_step_hook_definition';\r\nimport { IDefinition } from '@cucumber/cucumber/lib/models/definition';\r\nimport { doesHaveValue, doesNotHaveValue } from '@cucumber/cucumber/lib/value_checker';\r\nimport StepDefinition from '@cucumber/cucumber/lib/models/step_definition';\r\nimport { BindingRegistry } from '../bindings/binding-registry';\r\nimport { StepBinding } from '../bindings/step-binding';\r\nimport { ManagedScenarioContext } from './managed-scenario-context';\r\nimport { error } from 'console';\r\nimport { EndTestCaseInfo, StartTestCaseInfo } from './test-case-info';\r\nimport { IWorldOptions } from '@cucumber/cucumber/lib/support_code_library_builder/world';\r\nimport { timestamp } from '@cucumber/cucumber/lib/runtime/stopwatch';\r\n\r\nexport default class TestCaseRunner {\r\n\tprivate readonly workerId: string | undefined;\r\n\tprivate readonly attachmentManager: AttachmentManager;\r\n\tprivate currentTestCaseStartedId?: string;\r\n\tprivate currentTestStepId?: string;\r\n\tprivate readonly eventBroadcaster: EventEmitter;\r\n\tprivate readonly gherkinDocument: messages.GherkinDocument;\r\n\tprivate readonly newId: IdGenerator.NewId;\r\n\tprivate readonly pickle: messages.Pickle;\r\n\tprivate readonly testCase: messages.TestCase;\r\n\tprivate readonly maxAttempts: number;\r\n\tprivate readonly skip: boolean;\r\n\tprivate readonly filterStackTraces: boolean;\r\n\tprivate readonly supportCodeLibrary: SupportCodeLibrary;\r\n\tprivate testStepResults?: messages.TestStepResult[];\r\n\tprivate world: any;\r\n\tprivate readonly worldParameters: any;\r\n\tprivate bindingRegistry: BindingRegistry;\r\n\r\n\tconstructor({\r\n\t\tworkerId,\r\n\t\teventBroadcaster,\r\n\t\tgherkinDocument,\r\n\t\tnewId,\r\n\t\tpickle,\r\n\t\ttestCase,\r\n\t\tretries = 0,\r\n\t\tskip,\r\n\t\tfilterStackTraces,\r\n\t\tsupportCodeLibrary,\r\n\t\tworldParameters\r\n\t}: INewTestCaseRunnerOptions) {\r\n\t\tthis.workerId = workerId;\r\n\t\tthis.attachmentManager = new AttachmentManager(({ data, media, fileName }) => {\r\n\t\t\tif (doesNotHaveValue(this.currentTestStepId)) {\r\n\t\t\t\tthrow new Error(\r\n\t\t\t\t\t'Cannot attach when a step/hook is not running. Ensure your step/hook waits for the attach to finish.'\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tconst attachment: messages.Envelope = {\r\n\t\t\t\tattachment: {\r\n\t\t\t\t\tbody: data,\r\n\t\t\t\t\tcontentEncoding: media.encoding,\r\n\t\t\t\t\tmediaType: media.contentType,\r\n\t\t\t\t\tfileName,\r\n\t\t\t\t\ttestCaseStartedId: this.currentTestCaseStartedId,\r\n\t\t\t\t\ttestStepId: this.currentTestStepId\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tthis.eventBroadcaster.emit('envelope', attachment);\r\n\t\t});\r\n\t\tthis.eventBroadcaster = eventBroadcaster;\r\n\t\tthis.gherkinDocument = gherkinDocument;\r\n\t\tthis.maxAttempts = 1 + (skip ? 0 : retries);\r\n\t\tthis.newId = newId;\r\n\t\tthis.pickle = pickle;\r\n\t\tthis.testCase = testCase;\r\n\t\tthis.skip = skip;\r\n\t\tthis.filterStackTraces = filterStackTraces;\r\n\t\tthis.supportCodeLibrary = supportCodeLibrary;\r\n\t\tthis.worldParameters = worldParameters;\r\n\t\tthis.resetTestProgressData();\r\n\t\tthis.bindingRegistry = BindingRegistry.instance;\r\n\t}\r\n\r\n\tresetTestProgressData(): void {\r\n\t\tthis.world = new this.supportCodeLibrary.World({\r\n\t\t\tattach: this.attachmentManager.create.bind(this.attachmentManager) as unknown as ICreateAttachment,\r\n\t\t\tlog: this.attachmentManager.log.bind(this.attachmentManager),\r\n\t\t\tlink: this.attachmentManager.link.bind(this.attachmentManager),\r\n\t\t\tparameters: structuredClone(this.worldParameters)\r\n\t\t} satisfies IWorldOptions);\r\n\t\tthis.testStepResults = [];\r\n\t}\r\n\r\n\tgetBeforeStepHookDefinitions(): TestStepHookDefinition[] {\r\n\t\treturn this.supportCodeLibrary.beforeTestStepHookDefinitions.filter(hookDefinition =>\r\n\t\t\thookDefinition.appliesToTestCase(this.pickle)\r\n\t\t);\r\n\t}\r\n\r\n\tgetAfterStepHookDefinitions(): TestStepHookDefinition[] {\r\n\t\treturn this.supportCodeLibrary.afterTestStepHookDefinitions\r\n\t\t\t.slice(0)\r\n\t\t\t.reverse()\r\n\t\t\t.filter(hookDefinition => hookDefinition.appliesToTestCase(this.pickle));\r\n\t}\r\n\r\n\tgetWorstStepResult(): messages.TestStepResult {\r\n\t\tif (!this.testStepResults || this.testStepResults.length === 0) {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: this.skip ? messages.TestStepResultStatus.SKIPPED : messages.TestStepResultStatus.PASSED,\r\n\t\t\t\tduration: messages.TimeConversion.millisecondsToDuration(0)\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn getWorstTestStepResult(this.testStepResults);\r\n\t}\r\n\r\n\tasync invokeStep(\r\n\t\tstep: messages.PickleStep,\r\n\t\tstepDefinition: IDefinition,\r\n\t\thookParameter?: ITestCaseHookParameter\r\n\t): Promise<RunStepResult> {\r\n\t\treturn await StepRunner.run({\r\n\t\t\tdefaultTimeout: this.supportCodeLibrary.defaultTimeout,\r\n\t\t\tfilterStackTraces: this.filterStackTraces,\r\n\t\t\thookParameter,\r\n\t\t\tstep,\r\n\t\t\tstepDefinition,\r\n\t\t\tworld: this.world\r\n\t\t});\r\n\t}\r\n\r\n\tisSkippingSteps(): boolean {\r\n\t\treturn this.getWorstStepResult().status !== messages.TestStepResultStatus.PASSED;\r\n\t}\r\n\r\n\tshouldSkipHook(isBeforeHook: boolean): boolean {\r\n\t\treturn this.skip || (this.isSkippingSteps() && isBeforeHook);\r\n\t}\r\n\r\n\tasync aroundTestStep(testStepId: string, runStepFn: () => Promise<messages.TestStepResult>): Promise<void> {\r\n\t\tconst testStepStarted: messages.Envelope = {\r\n\t\t\ttestStepStarted: {\r\n\t\t\t\ttestCaseStartedId: this.currentTestCaseStartedId!,\r\n\t\t\t\ttestStepId,\r\n\t\t\t\ttimestamp: timestamp()\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.eventBroadcaster.emit('envelope', testStepStarted);\r\n\t\tthis.currentTestStepId = testStepId;\r\n\t\tconst testStepResult = await runStepFn();\r\n\t\tthis.currentTestStepId = null;\r\n\t\tthis.testStepResults?.push(testStepResult);\r\n\t\tconst testStepFinished: messages.Envelope = {\r\n\t\t\ttestStepFinished: {\r\n\t\t\t\ttestCaseStartedId: this.currentTestCaseStartedId!,\r\n\t\t\t\ttestStepId,\r\n\t\t\t\ttestStepResult,\r\n\t\t\t\ttimestamp: timestamp()\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.eventBroadcaster.emit('envelope', testStepFinished);\r\n\t}\r\n\r\n\tasync run(): Promise<messages.TestStepResultStatus> {\r\n\t\tfor (let attempt = 0; attempt < this.maxAttempts; attempt++) {\r\n\t\t\tconst moreAttemptsRemaining = attempt + 1 < this.maxAttempts;\r\n\r\n\t\t\tconst willBeRetried = await this.runAttempt(attempt, moreAttemptsRemaining);\r\n\r\n\t\t\tif (!willBeRetried) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tthis.resetTestProgressData();\r\n\t\t}\r\n\t\treturn this.getWorstStepResult().status;\r\n\t}\r\n\r\n\tasync runAttempt(attempt: number, moreAttemptsRemaining: boolean): Promise<boolean> {\r\n\t\tthis.currentTestCaseStartedId = this.newId();\r\n\t\tconst testCaseStarted: messages.Envelope = {\r\n\t\t\ttestCaseStarted: {\r\n\t\t\t\tattempt,\r\n\t\t\t\ttestCaseId: this.testCase.id,\r\n\t\t\t\tid: this.currentTestCaseStartedId,\r\n\t\t\t\ttimestamp: timestamp()\r\n\t\t\t}\r\n\t\t};\r\n\t\tif (this.workerId) {\r\n\t\t\ttestCaseStarted.testCaseStarted.workerId = this.workerId;\r\n\t\t}\r\n\t\tthis.eventBroadcaster.emit('envelope', testCaseStarted);\r\n\t\t// used to determine whether a hook is a Before or After\r\n\t\tlet didWeRunStepsYet = false;\r\n\t\tfor (const testStep of this.testCase.testSteps) {\r\n\t\t\tawait this.aroundTestStep(testStep.id, async () => {\r\n\t\t\t\tif (doesHaveValue(testStep.hookId)) {\r\n\t\t\t\t\tconst hookParameter: ITestCaseHookParameter = {\r\n\t\t\t\t\t\tgherkinDocument: this.gherkinDocument,\r\n\t\t\t\t\t\tpickle: this.pickle,\r\n\t\t\t\t\t\ttestCaseStartedId: this.currentTestCaseStartedId!\r\n\t\t\t\t\t};\r\n\t\t\t\t\tif (didWeRunStepsYet) {\r\n\t\t\t\t\t\thookParameter.result = this.getWorstStepResult();\r\n\t\t\t\t\t\thookParameter.willBeRetried =\r\n\t\t\t\t\t\t\tthis.getWorstStepResult().status === messages.TestStepResultStatus.FAILED && moreAttemptsRemaining;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn await this.runHook(\r\n\t\t\t\t\t\tfindHookDefinition(testStep.hookId!, this.supportCodeLibrary),\r\n\t\t\t\t\t\thookParameter,\r\n\t\t\t\t\t\t!didWeRunStepsYet\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconst pickleStep = this.pickle.steps.find(pickleStep => pickleStep.id === testStep.pickleStepId);\r\n\t\t\t\t\tconst testStepResult = await this.runStep(pickleStep!, testStep);\r\n\t\t\t\t\tdidWeRunStepsYet = true;\r\n\t\t\t\t\treturn testStepResult;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tconst worseResult = this.getWorstStepResult();\r\n\t\tconst willBeRetried = worseResult.status === messages.TestStepResultStatus.FAILED && moreAttemptsRemaining;\r\n\r\n\t\tconst endTestCaseParameter: EndTestCaseInfo = {\r\n\t\t\tgherkinDocument: this.gherkinDocument,\r\n\t\t\tpickle: this.pickle,\r\n\t\t\ttestCaseStartedId: this.currentTestCaseStartedId!,\r\n\t\t\tresult: worseResult,\r\n\t\t\twillBeRetried: willBeRetried\r\n\t\t};\r\n\r\n\t\t// End test case will call dispose on all context types\r\n\t\t// passed into a binding and then end the context.\r\n\t\tawait global.messageCollector.endTestCase(endTestCaseParameter);\r\n\r\n\t\tconst testCaseFinished: messages.Envelope = {\r\n\t\t\ttestCaseFinished: {\r\n\t\t\t\ttestCaseStartedId: this.currentTestCaseStartedId,\r\n\t\t\t\ttimestamp: timestamp(),\r\n\t\t\t\twillBeRetried\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.eventBroadcaster.emit('envelope', testCaseFinished);\r\n\r\n\t\treturn willBeRetried;\r\n\t}\r\n\r\n\tasync runHook(\r\n\t\thookDefinition: TestCaseHookDefinition,\r\n\t\thookParameter: ITestCaseHookParameter,\r\n\t\tisBeforeHook: boolean\r\n\t): Promise<messages.TestStepResult> {\r\n\t\tif (this.shouldSkipHook(isBeforeHook)) {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: messages.TestStepResultStatus.SKIPPED,\r\n\t\t\t\tduration: messages.TimeConversion.millisecondsToDuration(0)\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t// Get the step binding and scenario context so that we can\r\n\t\t// initialize any context objects before hooks are executed\r\n\t\tconst stepBinding = this.bindingRegistry.getStepBindingByCucumberKey((hookDefinition.options as any).cucumberKey);\r\n\t\tif (!stepBinding) throw error('===268 test-case-runner.ts Unable to find StepBinding!');\r\n\t\tconst scenarioContext = global.messageCollector.getHookScenarioContext(hookParameter);\r\n\t\tif (!scenarioContext) throw error('Unable to find the ManagedScenarioContext!');\r\n\t\tawait this.initializeContext(stepBinding, scenarioContext);\r\n\r\n\t\tconst { result } = await this.invokeStep(null, hookDefinition, hookParameter);\r\n\t\treturn result;\r\n\t}\r\n\r\n\tasync runStepHooks(\r\n\t\tstepHooks: TestStepHookDefinition[],\r\n\t\tpickleStep: messages.PickleStep,\r\n\t\tstepResult?: messages.TestStepResult\r\n\t): Promise<messages.TestStepResult[]> {\r\n\t\tconst stepHooksResult = [];\r\n\t\tconst hookParameter: ITestStepHookParameter = {\r\n\t\t\tgherkinDocument: this.gherkinDocument,\r\n\t\t\tpickle: this.pickle,\r\n\t\t\tpickleStep,\r\n\t\t\ttestCaseStartedId: this.currentTestCaseStartedId!,\r\n\t\t\ttestStepId: this.currentTestStepId!,\r\n\t\t\tresult: stepResult!\r\n\t\t};\r\n\t\tfor (const stepHookDefinition of stepHooks) {\r\n\t\t\tconst { result } = await this.invokeStep(null, stepHookDefinition, hookParameter);\r\n\t\t\tstepHooksResult.push(result);\r\n\t\t}\r\n\t\treturn stepHooksResult;\r\n\t}\r\n\r\n\tasync runStep(pickleStep: messages.PickleStep, testStep: messages.TestStep): Promise<messages.TestStepResult> {\r\n\t\tconst stepDefinitions = testStep.stepDefinitionIds?.map(stepDefinitionId => {\r\n\t\t\treturn findStepDefinition(stepDefinitionId, this.supportCodeLibrary);\r\n\t\t});\r\n\r\n\t\tif (!stepDefinitions || stepDefinitions.length === 0) {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: messages.TestStepResultStatus.UNDEFINED,\r\n\t\t\t\tduration: messages.TimeConversion.millisecondsToDuration(0)\r\n\t\t\t};\r\n\t\t} else if (stepDefinitions.length > 1) {\r\n\t\t\treturn {\r\n\t\t\t\tmessage: getAmbiguousStepException(stepDefinitions),\r\n\t\t\t\tstatus: messages.TestStepResultStatus.AMBIGUOUS,\r\n\t\t\t\tduration: messages.TimeConversion.millisecondsToDuration(0)\r\n\t\t\t};\r\n\t\t} else if (this.isSkippingSteps()) {\r\n\t\t\treturn {\r\n\t\t\t\tstatus: messages.TestStepResultStatus.SKIPPED,\r\n\t\t\t\tduration: messages.TimeConversion.millisecondsToDuration(0)\r\n\t\t\t};\r\n\t\t}\r\n\t\t// Get the step binding and scenario context so that we can\r\n\t\t// initialize any context objects before hooks are executed\r\n\t\tconst stepBinding = this.bindingRegistry.getStepBindingByCucumberKey(\r\n\t\t\t(stepDefinitions[0].options as any).cucumberKey\r\n\t\t);\r\n\t\tif (!stepBinding) throw error('===323 test-case-runner.ts: Unable to find StepBinding!');\r\n\t\tconst scenarioContext = global.messageCollector.getStepScenarioContext(stepBinding);\r\n\t\tif (!scenarioContext) throw error('Unable to find the ManagedScenarioContext!');\r\n\t\tawait this.initializeContext(stepBinding, scenarioContext);\r\n\r\n\t\t// next execute any before step hooks followed by the step if there are no\r\n\t\t// failures in before step hooks.\r\n\t\tlet stepResult;\r\n\t\tlet stepResults = await this.runStepHooks(this.getBeforeStepHookDefinitions(), pickleStep);\r\n\t\tif (getWorstTestStepResult(stepResults).status !== messages.TestStepResultStatus.FAILED) {\r\n\t\t\tconst { result } = await this.invokeStep(pickleStep, stepDefinitions[0]);\r\n\t\t\tstepResult = result;\r\n\t\t\tstepResults.push(stepResult);\r\n\t\t}\r\n\t\t// run the after step hooks\r\n\t\tconst afterStepHookResults = await this.runStepHooks(this.getAfterStepHookDefinitions(), pickleStep, stepResult);\r\n\t\tstepResults = stepResults.concat(afterStepHookResults);\r\n\r\n\t\tconst finalStepResult = getWorstTestStepResult(stepResults);\r\n\t\tlet finalDuration = messages.TimeConversion.millisecondsToDuration(0);\r\n\t\tfor (const result of stepResults) {\r\n\t\t\tfinalDuration = messages.TimeConversion.addDurations(finalDuration, result.duration);\r\n\t\t}\r\n\t\tfinalStepResult.duration = finalDuration;\r\n\t\treturn finalStepResult;\r\n\t}\r\n\r\n\t/**\r\n\t * Helper used to initialize any context types that are passed into\r\n\t * a binding class before any hooks or steps are executed.\r\n\t * @param stepBinding\r\n\t * @param scenarioContext\r\n\t */\r\n\tasync initializeContext(stepBinding: StepBinding, scenarioContext: ManagedScenarioContext): Promise<void> {\r\n\t\tconst contextTypes = this.bindingRegistry.getContextTypesForClass(stepBinding.classPrototype);\r\n\t\tif (contextTypes.length > 0) {\r\n\t\t\tscenarioContext.getOrActivateBindingClass(stepBinding.classPrototype, contextTypes, this.world);\r\n\r\n\t\t\tconst startTestCaseParameter: StartTestCaseInfo = {\r\n\t\t\t\tgherkinDocument: this.gherkinDocument,\r\n\t\t\t\tpickle: this.pickle,\r\n\t\t\t\ttestCaseStartedId: this.currentTestCaseStartedId!\r\n\t\t\t};\r\n\t\t\tawait scenarioContext.initialize(startTestCaseParameter);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction findHookDefinition(id: string, supportCodeLibrary: SupportCodeLibrary): TestCaseHookDefinition {\r\n\treturn [...supportCodeLibrary.beforeTestCaseHookDefinitions, ...supportCodeLibrary.afterTestCaseHookDefinitions].find(\r\n\t\tdefinition => definition.id === id\r\n\t)!;\r\n}\r\n\r\nfunction findStepDefinition(id: string, supportCodeLibrary: SupportCodeLibrary): StepDefinition {\r\n\treturn supportCodeLibrary.stepDefinitions.find(definition => definition.id === id)!;\r\n}\r\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TranspileOptions, Transpiler, TranspileOutput } from 'ts-node';
|
|
1
|
+
import { TranspileOptions, Transpiler, TranspileOutput } from 'ts-node-maintained';
|
|
2
2
|
export declare class EsbuildTranspiler implements Transpiler {
|
|
3
3
|
transpile: (input: string, options: TranspileOptions) => TranspileOutput;
|
|
4
4
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild-transpiler.js","sourceRoot":"","sources":["../../src/transpilers/esbuild-transpiler.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAE1C,MAAM,MAAM,GAAG,CAAC,cAAuC,EAAc,EAAE;IACtE,OAAO,IAAI,iBAAiB,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAa,iBAAiB;IAC7B,SAAS,GAAG,CAAC,KAAa,EAAE,OAAyB,EAAmB,EAAE;QACzE,MAAM,MAAM,GAAG,IAAA,uBAAa,EAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEtD,OAAO;YACN,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,aAAa,EAAE,MAAM,CAAC,SAAS;SACZ,CAAC;IACtB,CAAC,CAAC;CACF;AATD,8CASC;AAED,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC","sourcesContent":["import { CreateTranspilerOptions, TranspileOptions, Transpiler, TranspileOutput } from 'ts-node';\r\nimport { transpileCode } from './esbuild';\r\n\r\nconst create = (_createOptions: CreateTranspilerOptions): Transpiler => {\r\n\treturn new EsbuildTranspiler();\r\n};\r\n\r\nexport class EsbuildTranspiler implements Transpiler {\r\n\ttranspile = (input: string, options: TranspileOptions): TranspileOutput => {\r\n\t\tconst result = transpileCode(input, options.fileName);\r\n\r\n\t\treturn {\r\n\t\t\toutputText: result.output,\r\n\t\t\tsourceMapText: result.sourceMap\r\n\t\t} as TranspileOutput;\r\n\t};\r\n}\r\n\r\nexports.create = create;\r\n"]}
|
|
1
|
+
{"version":3,"file":"esbuild-transpiler.js","sourceRoot":"","sources":["../../src/transpilers/esbuild-transpiler.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAE1C,MAAM,MAAM,GAAG,CAAC,cAAuC,EAAc,EAAE;IACtE,OAAO,IAAI,iBAAiB,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAa,iBAAiB;IAC7B,SAAS,GAAG,CAAC,KAAa,EAAE,OAAyB,EAAmB,EAAE;QACzE,MAAM,MAAM,GAAG,IAAA,uBAAa,EAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEtD,OAAO;YACN,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,aAAa,EAAE,MAAM,CAAC,SAAS;SACZ,CAAC;IACtB,CAAC,CAAC;CACF;AATD,8CASC;AAED,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC","sourcesContent":["import { CreateTranspilerOptions, TranspileOptions, Transpiler, TranspileOutput } from 'ts-node-maintained';\r\nimport { transpileCode } from './esbuild';\r\n\r\nconst create = (_createOptions: CreateTranspilerOptions): Transpiler => {\r\n\treturn new EsbuildTranspiler();\r\n};\r\n\r\nexport class EsbuildTranspiler implements Transpiler {\r\n\ttranspile = (input: string, options: TranspileOptions): TranspileOutput => {\r\n\t\tconst result = transpileCode(input, options.fileName);\r\n\r\n\t\treturn {\r\n\t\t\toutputText: result.output,\r\n\t\t\tsourceMapText: result.sourceMap\r\n\t\t} as TranspileOutput;\r\n\t};\r\n}\r\n\r\nexports.create = create;\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild.js","sourceRoot":"","sources":["../../src/transpilers/esbuild.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"esbuild.js","sourceRoot":"","sources":["../../src/transpilers/esbuild.ts"],"names":[],"mappings":";;;;;;AAAA,qCAA+F;AAC/F,gDAAwB;AAMxB,MAAM,cAAc,GAAqB;IACxC,KAAK,EAAE,IAAI;CACX,CAAC;AAEF,MAAM,aAAa,GAAkB;IACpC,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,MAAM;IAChB,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,UAAU;CACrB,CAAC;AAEF,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;IACnC,aAAa,CAAC,WAAW,GAAG;QAC3B,eAAe,EAAE;YAChB,sBAAsB,EAAE,IAAI;YAC5B,sBAAsB,EAAE,QAAQ;YAChC,MAAM,EAAE,IAAI;SACZ;KACD,CAAC;AACH,CAAC;KAAM,CAAC;IACP,aAAa,CAAC,WAAW,GAAG;QAC3B,eAAe,EAAE;YAChB,sBAAsB,EAAE,QAAQ;YAChC,MAAM,EAAE,IAAI;SACZ;KACD,CAAC;AACH,CAAC;AAOY,QAAA,OAAO,GAA2B;IAC9C,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,MAAM;CACf,CAAC;AAEK,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAAE,OAAO,KAAK,CAAC;IAChG,OAAO,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,eAAO,CAAC;AAC1C,CAAC,CAAC;AAHW,QAAA,QAAQ,YAGnB;AAEF,MAAM,UAAU,GAAG,CAAC,OAAyB,EAAE,EAAE;IAChD,MAAM,GAAG,GAAG,EAAE,GAAG,eAAO,EAAE,CAAC;IAC3B,IAAI,OAAO,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,CAAC;QAChD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAW,CAAC;IACnF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEK,MAAM,aAAa,GAAG,CAC5B,IAAY,EACZ,QAAgB,EAChB,GAAY,EACZ,QAAoC,EACjB,EAAE;IACrB,MAAM,OAAO,GAAqB,EAAE,GAAG,cAAc,EAAE,GAAG,QAAQ,EAAE,CAAC;IACrE,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElE,MAAM,GAAG,GAAG,IAAA,uBAAa,EAAC,IAAI,EAAE;QAC/B,GAAG,aAAa;QAChB,GAAI,OAAO,CAAC,OAAwC;QACpD,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;QAC1B,UAAU,EAAE,QAAQ;KACpB,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;AACjD,CAAC,CAAC;AAlBW,QAAA,aAAa,iBAkBxB","sourcesContent":["import { Loader, transformSync, CommonOptions, TransformOptions, BuildOptions } from 'esbuild';\r\nimport path from 'path';\r\n\r\nexport type TranspileOptions = {\r\n\tdebug: boolean;\r\n\tesbuild?: CommonOptions & TransformOptions & BuildOptions;\r\n};\r\nconst defaultOptions: TranspileOptions = {\r\n\tdebug: true\r\n};\r\n\r\nconst commonOptions: CommonOptions = {\r\n\tformat: 'cjs',\r\n\tlogLevel: 'info',\r\n\ttarget: [`es2022`],\r\n\tminify: false,\r\n\tsourcemap: 'external'\r\n};\r\n\r\nif (global.experimentalDecorators) {\r\n\tcommonOptions.tsconfigRaw = {\r\n\t\tcompilerOptions: {\r\n\t\t\texperimentalDecorators: true,\r\n\t\t\timportsNotUsedAsValues: 'remove',\r\n\t\t\tstrict: true\r\n\t\t}\r\n\t};\r\n} else {\r\n\tcommonOptions.tsconfigRaw = {\r\n\t\tcompilerOptions: {\r\n\t\t\timportsNotUsedAsValues: 'remove',\r\n\t\t\tstrict: true\r\n\t\t}\r\n\t};\r\n}\r\n\r\nexport type TranspileResults = {\r\n\toutput: string;\r\n\tsourceMap?: string;\r\n};\r\n\r\nexport const loaders: Record<string, Loader> = {\r\n\t'.js': 'js',\r\n\t'.mjs': 'js',\r\n\t'.cjs': 'js',\r\n\t'.jsx': 'jsx',\r\n\t'.ts': 'ts',\r\n\t'.tsx': 'tsx',\r\n\t'.json': 'json'\r\n};\r\n\r\nexport const supports = (filename: string) => {\r\n\tif (filename.includes('node_modules') || filename.includes('cucumber-tsflow/lib')) return false;\r\n\treturn path.extname(filename) in loaders;\r\n};\r\n\r\nconst getLoaders = (options: TranspileOptions) => {\r\n\tconst ret = { ...loaders };\r\n\tif (typeof options.esbuild?.loader == 'object') {\r\n\t\tfor (const [e, l] of Object.entries(options.esbuild.loader)) ret[e] = l as Loader;\r\n\t}\r\n\treturn ret;\r\n};\r\n\r\nexport const transpileCode = (\r\n\tcode: string,\r\n\tfilename: string,\r\n\text?: string,\r\n\t_options?: Partial<TranspileOptions>\r\n): TranspileResults => {\r\n\tconst options: TranspileOptions = { ...defaultOptions, ..._options };\r\n\tconst loaders = getLoaders(options);\r\n\tconst loaderExt = ext != undefined ? ext : path.extname(filename);\r\n\r\n\tconst ret = transformSync(code, {\r\n\t\t...commonOptions,\r\n\t\t...(options.esbuild as TransformOptions | undefined),\r\n\t\tloader: loaders[loaderExt],\r\n\t\tsourcefile: filename\r\n\t});\r\n\r\n\treturn { output: ret.code, sourceMap: ret.map };\r\n};\r\n"]}
|