@lynxwall/cucumber-tsflow 6.3.0 → 6.5.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.
package/README.md CHANGED
@@ -313,7 +313,7 @@ If using VSCode to edit your project the following launch configurations can be
313
313
  Bindings provide the automation that connects a specification step in a Gherkin feature file to some code that
314
314
  executes for that step. When using Cucumber with TypeScript you can define this automation using a 'binding' class:
315
315
 
316
- ```javascript
316
+ ```typescript
317
317
  import { binding } from "@lynxwall/cucumber-tsflow";
318
318
 
319
319
  @binding()
@@ -327,7 +327,7 @@ export default class MySteps {
327
327
  Step definitions can be bound to automation code in a 'binding' class by implementing a public function that is
328
328
  bound with a 'given', 'when' or 'then' binding decorator:
329
329
 
330
- ```javascript
330
+ ```typescript
331
331
  import { binding, given, when, then } from "@lynxwall/cucumber-tsflow";
332
332
 
333
333
  @binding()
@@ -362,7 +362,7 @@ Scenario: Boolean type supported
362
362
 
363
363
  The associated step definition replaces `true` in this scenario with a `{boolean}` expression as shown below:
364
364
 
365
- ```javascript
365
+ ```typescript
366
366
  @given('I pass {boolean} into a step')
367
367
  iPassbooleanIntoAStep(boolean: boolean): any {
368
368
  this.boolValue = boolean;
@@ -386,7 +386,7 @@ More information on Cucumber Expressions and Custom Parameter Types can be found
386
386
  Step definitions can be conditionally selected for execution based on the tags of the scenario by supplying tags when using the binding
387
387
  decorators:
388
388
 
389
- ```javascript
389
+ ```typescript
390
390
  @given('I perform a search using the value {string}')
391
391
  public givenAValueBasedSearch(searchValue: string): void {
392
392
  ...
@@ -506,7 +506,7 @@ If it doesn't already exist, create a file named cucumber.json at the root of yo
506
506
 
507
507
  The following example shows how to configure the behave formatter in cucumber.json. The tsflow-snippet-syntax module is configured as the default snippet syntax and does not require configuration. However, you can override the snippet syntax as documented here: <https://github.com/cucumber/cucumber-js/blob/v8.0.0/docs/custom_snippet_syntaxes.md>
508
508
 
509
- ```javascript
509
+ ```typescript
510
510
  {
511
511
  "default": {
512
512
  "format": [
@@ -520,7 +520,7 @@ The following example shows how to configure the behave formatter in cucumber.js
520
520
 
521
521
  The following example shows how to configure the bamboo junit formatter in cucumber.json. This differs from the standard cucumber junit formatter in that "pending" and "undefined" tests do not get classified as failures, instead they are classified as skips
522
522
 
523
- ```javascript
523
+ ```typescript
524
524
  {
525
525
  "default": {
526
526
  "format": [
@@ -530,73 +530,218 @@ The following example shows how to configure the bamboo junit formatter in cucum
530
530
  }
531
531
  ```
532
532
 
533
- ## Sharing Data between Bindings
533
+ ## Sharing Data between Steps and Bindings
534
534
 
535
535
  ### Context Injection
536
536
 
537
- Like 'specflow', cucumber-tsflow supports a simple dependency injection framework that will instantitate and inject class instances into 'binding' classes for each execuing scenario.
537
+ Like 'specflow', cucumber-tsflow supports a simple dependency injection framework that will instantiate and inject class instances into 'binding' classes for each executing scenario.
538
538
 
539
- To use context injection:
539
+ Each scenario in a feature will get a new instance of the *Context* object when the steps associated with a scenario are executed. Hooks and steps used by the scenario will have access to the same instance of a "Scenario Context" during execution of the test steps. In addition, if steps of a scenario are implemented in separate bindings, those steps will still have access to the same instance of the *Context* object created for the scenario.
540
540
 
541
- - Create simple classes representing the shared data (they _must_ have default constructors)
542
- - Define a constructor on the 'binding' classes that will require the shared data that accepts the context objects as parameters
543
- - Update the `@binding()` decorator to indicate the types of context objects that are required by the 'binding' class
541
+ **Recent Updates:**
544
542
 
545
- ```javascript
543
+ - versions >= 6.5.0
544
+ - Context classes now support an `initialize()` function that can be defined synchronous or asynchronous. The `initialize()` function is called after the `BeforeAll` hook and before any other hooks or steps. This provides the ability to initialize a scenario context before any tests are executed with support for async operations.
545
+ - Context classes have always supported a `dispose()` function for cleanup. However, with latest updates the `dispose()` function can be defined synchronously or asynchronously.
546
+
547
+ - versions >= 6.4.0
548
+ - The current Cucumber World object is now available as a constructor parameter on all classes defined for Context Injection. For more information on the World object see: [Access to Cucumber.js World object](#access-to-cucumber.js-world-object).
549
+
550
+
551
+ ### Using Context Injection
552
+
553
+ With Context Injection you first need to define one or more classes that will be injected into a binding instance. Next, you'll need to add the context types to the `@binding` decorator and implement a constructor that passes initialized instances of the context type into the binding instance.
554
+
555
+ **Defining a Context class:**
556
+
557
+ - Create a simple *Context* class representing the shared data. The class can have no constructor or a default empty constructor. However, to access the Cucumber World object you should define a constructor as shown in the example below.
558
+
559
+ **Synchronous example:**
560
+
561
+ ```typescript
562
+ import { World } from '@cucumber/cucumber';
563
+
564
+ export class ScenarioContext {
565
+ public world: World;
566
+ public someValue = '';
567
+ private id: string = '';
568
+
569
+ constructor(worldObj: World) {
570
+ this.world = worldObj;
571
+ }
572
+ public initialize(): void {
573
+ this.id = this.makeid(5);
574
+ console.log(`Sync init: ${this.id}`);
575
+ }
576
+ public dispose(): void {
577
+ console.log(`Sync dispose: ${this.id}`);
578
+ }
579
+ makeid(length: number) {
580
+ ...
581
+ return result;
582
+ }
583
+ }
584
+ ```
585
+
586
+ **Asynchronous example:**
587
+
588
+ ```typescript
589
+ import { World } from '@cucumber/cucumber';
590
+
591
+ export class ScenarioContext {
592
+ public world: World;
593
+ public someValue = '';
594
+ private id: string = '';
595
+
596
+ constructor(worldObj: World) {
597
+ this.world = worldObj;
598
+ }
599
+ public async initialize(): Promise<void> {
600
+ this.id = this.makeid(5);
601
+ await this.logTest(`Async init: ${this.id}`);
602
+ }
603
+ public async dispose(): Promise<void> {
604
+ await this.logTest(`Async dispose: ${this.id}`);
605
+ }
606
+ async logTest(text: string): Promise<void> {
607
+ await Promise.resolve(console.log(text));
608
+ }
609
+ makeid(length: number) {
610
+ ...
611
+ return result;
612
+ }
613
+ }
614
+ ```
615
+
616
+
617
+
618
+ **Initialize Binding in Step class:**
619
+
620
+ - Update the `@binding()` decorator to indicate the types of context objects that are required by the 'binding' class. You can include up to nine separate *Context* objects.
621
+ - Define a constructor on the `@binding` class with steps that need access to the shared data that accepts one or more context objects as parameters based on initialization of the `@binding` decorator.
622
+
623
+ **Single Context class example:**
624
+
625
+ ```typescript
626
+ import { binding, given, when } from '@lynxwall/cucumber-tsflow';
627
+ import { ScenarioContext } from '../fixtures/scenario-context';
628
+ import { expect } from 'chai';
629
+
630
+ @binding([ScenarioContext])
631
+ export default class InjectionTestSteps1 {
632
+ constructor(private context: ScenarioContext) {}
633
+
634
+ @given('The Workspace is available and valid')
635
+ theWorkspaceIsAvailableAndValid() {
636
+ expect(this.context).not.to.be.undefined;
637
+ expect(this.context.world).not.to.be.undefined;
638
+ }
639
+
640
+ @when('I change the workspace in one step definition class')
641
+ whenIChangeTheWorkspaceInOneStep() {
642
+ this.context.someValue = 'value changed';
643
+ }
644
+ }
645
+ ```
646
+
647
+ **Multiple Context classes example:**
648
+
649
+ ```typescript
546
650
  import { binding, given, when } from '@lynxwall/cucumber-tsflow';
547
- import { Workspace } from './workspace';
651
+ import { ScenarioContext } from '../fixtures/scenario-context';
652
+ import { SyncContext } from '../fixtures/sync-context';
548
653
  import { expect } from 'chai';
549
654
 
550
- @binding([Workspace])
655
+ @binding([ScenarioContext, SyncContext])
551
656
  export default class InjectionTestSteps1 {
552
- constructor(private workspace: Workspace) {}
657
+ constructor(private context: ScenarioContext, private syncContext: SyncContext) {}
553
658
 
554
659
  @given('The Workspace is available and valid')
555
660
  theWorkspaceIsAvailableAndValid() {
556
- expect(this.workspace).not.to.be.undefined;
557
- expect(this.workspace.world).not.to.be.undefined;
661
+ expect(this.context).not.to.be.undefined;
662
+ expect(this.context.world).not.to.be.undefined;
663
+
664
+ expect(this.syncContext).not.to.be.undefined;
665
+ expect(this.syncContext.world).not.to.be.undefined;
558
666
  }
559
667
 
560
668
  @when('I change the workspace in one step definition class')
561
669
  whenIChangeTheWorkspaceInOneStep() {
562
- this.workspace.someValue = 'value changed';
670
+ this.context.someValue = 'value changed';
563
671
  }
564
672
  }
565
673
  ```
566
674
 
675
+
676
+
567
677
  ### Access to Cucumber.js World object
568
678
 
569
- The context object that you inject can also be configured to access the [World](https://github.com/cucumber/cucumber-js/blob/main/docs/support_files/world.md) object from Cucumber.js, which provides a method for adding attachments, a method for logging information from hooks/steps and an object of parameters passed in via configuration.
679
+ The context object that you inject can also be configured to access the [World](https://github.com/cucumber/cucumber-js/blob/main/docs/support_files/world.md) object from Cucumber.js, which provides the following:
570
680
 
571
- The first step is to define a world property on the class that you're injecting:
681
+ - `attach`: a method for adding [attachments](https://github.com/cucumber/cucumber-js/blob/main/docs/support_files/attachments.md) to hooks/steps
682
+ - `log`: a method for [logging](https://github.com/cucumber/cucumber-js/blob/main/docs/support_files/attachments.md#logging) information from hooks/steps
683
+ - `parameters`: an object of parameters passed in via configuration
572
684
 
573
- ```javascript
685
+ Starting with version **6.4.0** the Cucumber World object is now passed into a *Context* class as a constructor parameter as shown below:
686
+
687
+ ```typescript
688
+ import { World } from '@cucumber/cucumber';
689
+
690
+ export class ScenarioContext {
691
+ public world: World;
692
+ public someValue = '';
693
+
694
+ constructor(worldObj: World) {
695
+ this.world = worldObj;
696
+ }
697
+
698
+ public dispose(): void {
699
+ this.someValue = '';
700
+ }
701
+ }
702
+ ```
703
+
704
+ In the example shown above, the world object instance passed in to the constructor is saved to a variable in the `ScenarioContext` class. This class is automatically initialized and injected into the constructor of a binding class when tests are executed. As a result, the world object, with access to world context parameters, logging and attachments, is available to most hooks and all steps within a test.
705
+
706
+ **NOTE:** `BeforeAll` and `AfterAll` hooks do not have access to the scenario context.
707
+
708
+ *Context* classes, as demonstrated by the `ScenarioContext` example above, also support a `dispose()` function that is called when the execution of a test scenario is complete.
709
+
710
+ With instance initialization, and dispose functionality, you have the ability to initialize common support operations and data needed for scenario test runs, and cleanup any resources when scenario test runs are complete.
711
+
712
+ ### Access to the World object without using a constructor
713
+
714
+ **NOTE:** This approach of accessing the Cucumber World object is still supported. However, the ability to access the world object during *Context* initialization provides much better control over when context data is initialized versus relying on execution of a hook. As a result, using a `@before` hook as shown below is not recommended.
715
+
716
+ With this approach, you would define a world property on simple *Context* class that you're injecting:
717
+
718
+ ```typescript
574
719
  import { World } from '@cucumber/cucumber';
575
720
 
576
- export class Workspace {
721
+ export class ScenarioContext {
577
722
  public world!: World;
578
723
  public someValue = '';
579
724
  }
580
725
  ```
581
726
 
582
- Next you'll need to initialize the world property in a **_@before_** hook so that it's available to all steps in a scenario. My approach is to add a new file to the steps folder that is dedicated to initializing the class (Workspace in this example) in a **_@before_** hook.
727
+ Next you'll need to initialize the world property in a `@before` hook so that it's available to all steps in a scenario. This is done by adding a new file to the steps folder that is dedicated to initializing the class (`ScenarioContext` in this example) in a `@before` hook.
583
728
 
584
729
  For this example I've added a file named world-context.ts with the following content:
585
730
 
586
- ```javascript
731
+ ```typescript
587
732
  import { binding, before } from '@lynxwall/cucumber-tsflow';
588
- import { Workspace } from './workspace';
733
+ import { ScenarioContext } from '../fixtures/scenario-context';
589
734
  import { World } from '@cucumber/cucumber';
590
735
 
591
- @binding([Workspace])
736
+ @binding([ScenarioContext])
592
737
  export default class WorldContext {
593
738
  _worldObj?: World;
594
739
 
595
- constructor(private workspace: Workspace) {}
740
+ constructor(private context: ScenarioContext) {}
596
741
 
597
742
  @before()
598
743
  beforeScenario() {
599
- this.workspace.world = this._worldObj as World;
744
+ this.context.world = this._worldObj as World;
600
745
  }
601
746
  }
602
747
  ```
@@ -91,7 +91,7 @@ function bindStepDefinition(stepBinding) {
91
91
  throw new Error(`Cannot find matched step definition for ${stepBinding.stepPattern.toString()} with tag ${scenarioContext.scenarioInfo.tags} in binding registry`);
92
92
  }
93
93
  const contextTypes = bindingRegistry.getContextTypesForTarget(matchingStepBindings[0].targetPrototype);
94
- const bindingObject = scenarioContext.getOrActivateBindingClass(matchingStepBindings[0].targetPrototype, contextTypes);
94
+ const bindingObject = scenarioContext.getOrActivateBindingClass(matchingStepBindings[0].targetPrototype, contextTypes, this);
95
95
  bindingObject._worldObj = this;
96
96
  return bindingObject[matchingStepBindings[0].targetPropertyKey].apply(bindingObject, arguments);
97
97
  }
@@ -133,7 +133,7 @@ function bindHook(stepBinding) {
133
133
  const scenarioContext = global.messageCollector.getHookScenarioContext(arg);
134
134
  if (scenarioContext) {
135
135
  const contextTypes = binding_registry_1.BindingRegistry.instance.getContextTypesForTarget(stepBinding.targetPrototype);
136
- const bindingObject = scenarioContext.getOrActivateBindingClass(stepBinding.targetPrototype, contextTypes);
136
+ const bindingObject = scenarioContext.getOrActivateBindingClass(stepBinding.targetPrototype, contextTypes, this);
137
137
  bindingObject._worldObj = this;
138
138
  return bindingObject[stepBinding.targetPropertyKey].apply(bindingObject, arguments);
139
139
  }
@@ -178,4 +178,4 @@ function bindHook(stepBinding) {
178
178
  }
179
179
  }
180
180
  }
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZy1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3VjdW1iZXIvYmluZGluZy1kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsdUNBQXVDO0FBQ3ZDLGlEQVc0QjtBQUU1Qix5REFBa0U7QUFDbEUsd0RBQXNFO0FBRXRFLGlEQUF5RDtBQUN6RCw0REFBMkI7QUFLM0I7Ozs7Ozs7R0FPRztBQUNILE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7QUFFMUU7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxvQkFBb0M7SUFDM0QsT0FBTyxDQUFJLE1BQW1DLEVBQUUsRUFBRTtRQUNqRCxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25CLE1BQU0sZUFBZSxHQUFHLGtDQUFlLENBQUMsUUFBUSxDQUFDO1FBQ2pELGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDdEYsTUFBTSxXQUFXLEdBQWtCLEVBQUUsQ0FBQztRQUN0QyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEUsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUVoRixXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2pDLElBQUksV0FBVyxDQUFDLFdBQVcsR0FBRywrQkFBZ0IsQ0FBQyxlQUFlLEVBQUU7Z0JBQy9ELElBQUksZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDeEYsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7b0JBQ25DLGdCQUFn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
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZy1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3VjdW1iZXIvYmluZGluZy1kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsdUNBQXVDO0FBQ3ZDLGlEQVc0QjtBQUU1Qix5REFBa0U7QUFDbEUsd0RBQXNFO0FBRXRFLGlEQUF5RDtBQUN6RCw0REFBMkI7QUFLM0I7Ozs7Ozs7R0FPRztBQUNILE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7QUFFMUU7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxvQkFBb0M7SUFDM0QsT0FBTyxDQUFJLE1BQW1DLEVBQUUsRUFBRTtRQUNqRCxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25CLE1BQU0sZUFBZSxHQUFHLGtDQUFlLENBQUMsUUFBUSxDQUFDO1FBQ2pELGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDdEYsTUFBTSxXQUFXLEdBQWtCLEVBQUUsQ0FBQztRQUN0QyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEUsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUVoRixXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2pDLElBQUksV0FBVyxDQUFDLFdBQVcsR0FBRywrQkFBZ0IsQ0FBQyxlQUFlLEVBQUU7Z0JBQy9ELElBQUksZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDeEYsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7b0JBQ25DLGdCQUFnQixHQUFHLCtCQUFnQixDQUFDLElBQUksQ0FBQztpQkFDekM7Z0JBQ0QsSUFBSSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFO29CQUMvQyxPQUFPO2lCQUNQO2dCQUNELGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNoQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDN0c7aUJBQU0sSUFBSSxXQUFXLENBQUMsV0FBVyxHQUFHLCtCQUFnQixDQUFDLEtBQUssRUFBRTtnQkFDNUQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3RCO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSCxDQUFDO0FBekJELDBCQXlCQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxvQkFBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7SUFDcEMsSUFBQSw4QkFBbUIsRUFBQztRQUNuQixJQUFJLEVBQUUsU0FBUztRQUNmLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7S0FDL0MsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUM7QUFFSDs7OztHQUlHO0FBQ0gsU0FBUyxrQkFBa0IsQ0FBQyxXQUF3QjtJQUNuRCxNQUFNLFdBQVcsR0FBRztRQUNuQixNQUFNLGVBQWUsR0FBRyxrQ0FBZSxDQUFDLFFBQVEsQ0FBQztRQUVqRCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEYsSUFBSSxlQUFlLEVBQUU7WUFDcEIsTUFBTSxvQkFBb0IsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUMzRCxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUNsQyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDakMsQ0FBQztZQUVGLElBQUksb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDcEMsSUFBSSxPQUFPLEdBQUcsbUNBQW1DLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsTUFBTSxDQUFDO2dCQUUzRixvQkFBb0IsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFBRTtvQkFDbEQsT0FBTzt3QkFDTixPQUFPOzRCQUNQLE9BQU8sTUFBTSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLEtBQUssbUJBQW1CLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7Z0JBQ3hHLENBQUMsQ0FBQyxDQUFDO2dCQUVILE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekI7aUJBQU0sSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUM3QyxNQUFNLElBQUksS0FBSyxDQUNkLDJDQUEyQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxhQUM1RSxlQUFlLENBQUMsWUFBWSxDQUFDLElBQzlCLHNCQUFzQixDQUN0QixDQUFDO2FBQ0Y7WUFFRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsd0JBQXdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDdkcsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLHlCQUF5QixDQUM5RCxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQ3ZDLFlBQVksRUFDWixJQUFJLENBQ0osQ0FBQztZQUNGLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBRS9CLE9BQVEsYUFBYSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFnQixDQUFDLEtBQUssQ0FDcEYsYUFBYSxFQUNiLFNBQWdCLENBQ2hCLENBQUM7U0FDRjthQUFNO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1NBQ25FO0lBQ0YsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFO1FBQzVDLEtBQUssRUFBRSxXQUFXLENBQUMsVUFBVTtLQUM3QixDQUFDLENBQUM7SUFFSCwrQ0FBK0M7SUFDL0MsTUFBTSxPQUFPLEdBQUc7UUFDZixXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVc7UUFDcEMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1FBQzVCLGNBQWMsRUFBRSxXQUFXLENBQUMsYUFBYTtLQUN6QyxDQUFDO0lBQ0Ysd0JBQXdCO0lBQ3hCLElBQUksV0FBVyxDQUFDLFdBQVcsR0FBRywrQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7UUFDckQsSUFBQSxnQkFBSyxFQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0tBQ3JEO1NBQU0sSUFBSSxXQUFXLENBQUMsV0FBVyxHQUFHLCtCQUFnQixDQUFDLElBQUksRUFBRTtRQUMzRCxJQUFBLGVBQUksRUFBQyxXQUFXLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztLQUNwRDtTQUFNLElBQUksV0FBVyxDQUFDLFdBQVcsR0FBRywrQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7UUFDM0QsSUFBQSxlQUFJLEVBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7S0FDcEQ7QUFDRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsUUFBUSxDQUFDLFdBQXdCO0lBQ3pDLE1BQU0sV0FBVyxHQUNoQixXQUFXLENBQUMsV0FBVyxJQUFJLCtCQUFnQixDQUFDLFNBQVMsSUFBSSxXQUFXLENBQUMsV0FBVyxJQUFJLCtCQUFnQixDQUFDLFFBQVE7UUFDNUcsQ0FBQyxDQUFDO1lBQ0EsT0FBTyxXQUFXLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUssRUFBZ0IsQ0FBQztRQUN4RixDQUFDO1FBQ0gsQ0FBQyxDQUFDLFVBQXFCLEdBQVE7WUFDN0IsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVFLElBQUksZUFBZSxFQUFFO2dCQUNwQixNQUFNLFlBQVksR0FBRyxrQ0FBZSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ3BHLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyx5QkFBeUIsQ0FDOUQsV0FBVyxDQUFDLGVBQWUsRUFDM0IsWUFBWSxFQUNaLElBQUksQ0FDSixDQUFDO2dCQUNGLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUMvQixPQUFRLGFBQWEsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQWdCLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxTQUFnQixDQUFDLENBQUM7YUFDM0c7aUJBQU07Z0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO2FBQ2pFO1FBQ0QsQ0FBQyxDQUFDO0lBQ04sTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFO1FBQzVDLEtBQUssRUFBRSxXQUFXLENBQUMsVUFBVTtLQUM3QixDQUFDLENBQUM7SUFFSCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxLQUFLLDhCQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUU3RSxRQUFRLFdBQVcsQ0FBQyxXQUFXLEVBQUU7UUFDaEMsS0FBSywrQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoQyxNQUFNLE9BQU8sR0FBRyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkYsSUFBQSxvQkFBUyxFQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNoQyxNQUFNO1NBQ047UUFDRCxLQUFLLCtCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdCLE1BQU0sT0FBTyxHQUFHLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25HLElBQUEsaUJBQU0sRUFBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDN0IsTUFBTTtTQUNOO1FBQ0QsS0FBSywrQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqQyxNQUFNLE9BQU8sR0FBRyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuRyxJQUFBLHFCQUFVLEVBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ2pDLE1BQU07U0FDTjtRQUNELEtBQUssK0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0IsTUFBTSxPQUFPLEdBQUcsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZGLElBQUEsbUJBQVEsRUFBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDL0IsTUFBTTtTQUNOO1FBQ0QsS0FBSywrQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixNQUFNLE9BQU8sR0FBRyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuRyxJQUFBLGdCQUFLLEVBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzVCLE1BQU07U0FDTjtRQUNELEtBQUssK0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEMsTUFBTSxPQUFPLEdBQUcsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkcsSUFBQSxvQkFBUyxFQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNoQyxNQUFNO1NBQ047S0FDRDtBQUNGLENBQUMifQ==
@@ -63,6 +63,7 @@ export declare class BindingRegistry {
63
63
  * @returns An array of [[StepBinding]] that map to the given step pattern and set of tag names.
64
64
  */
65
65
  getStepBindings(stepPattern: StepPattern, tags: TagName[]): StepBinding[];
66
+ getStepBindingByCucumberKey(cucumberKey: string): StepBinding | undefined;
66
67
  /**
67
68
  * Updates the SupportCodeLibrary from Cucumber with
68
69
  * callsite information from tsflow bindings
@@ -152,6 +152,21 @@ class BindingRegistry {
152
152
  }
153
153
  return this.mapTagNamesToStepBindings(['*'], tagMap);
154
154
  }
155
+ getStepBindingByCucumberKey(cucumberKey) {
156
+ let result = undefined;
157
+ for (const [_, binding] of this._targetBindings) {
158
+ for (const stepBinding of binding.stepBindings) {
159
+ if (stepBinding.cucumberKey === cucumberKey) {
160
+ result = stepBinding;
161
+ break;
162
+ }
163
+ }
164
+ if (result) {
165
+ break;
166
+ }
167
+ }
168
+ return result;
169
+ }
155
170
  /**
156
171
  * Updates the SupportCodeLibrary from Cucumber with
157
172
  * callsite information from tsflow bindings
@@ -213,4 +228,4 @@ class BindingRegistry {
213
228
  }
214
229
  }
215
230
  exports.BindingRegistry = BindingRegistry;
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZy1yZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jdWN1bWJlci9iaW5kaW5nLXJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDREQUEyQjtBQUMzQix3REFBc0U7QUFrQnRFOztHQUVHO0FBQ1UsUUFBQSxvQkFBb0IsR0FBRyxNQUFNLENBQUM7QUFFM0M7O0dBRUc7QUFDVSxRQUFBLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFFL0I7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFDbkIsU0FBUyxHQUFHLElBQUksR0FBRyxFQUE0QyxDQUFDO0lBQ2hFLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztJQUV4RDs7OztPQUlHO0lBQ0ksTUFBTSxLQUFLLFFBQVE7UUFDekIsTUFBTSx5QkFBeUIsR0FBRyxtQ0FBbUMsQ0FBQztRQUV0RSxNQUFNLFFBQVEsR0FBSSxNQUFjLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBYyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztTQUNuRTtRQUVELE9BQU8sUUFBUSxJQUFLLE1BQWMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksNkJBQTZCLENBQUMsZUFBb0IsRUFBRSxZQUE0QjtRQUN0RixJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2xCLE9BQU87U0FDUDtRQUVELElBQUksaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3ZCLGlCQUFpQixHQUFHO2dCQUNuQixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsWUFBWSxFQUFFLEVBQUU7YUFDaEIsQ0FBQztZQUVGLElBQUksQ0FBQyxlQUFlLENBQUMsR0FB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
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZy1yZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jdWN1bWJlci9iaW5kaW5nLXJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLDREQUEyQjtBQUMzQix3REFBc0U7QUFrQnRFOztHQUVHO0FBQ1UsUUFBQSxvQkFBb0IsR0FBRyxNQUFNLENBQUM7QUFFM0M7O0dBRUc7QUFDVSxRQUFBLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFFL0I7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFDbkIsU0FBUyxHQUFHLElBQUksR0FBRyxFQUE0QyxDQUFDO0lBQ2hFLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztJQUV4RDs7OztPQUlHO0lBQ0ksTUFBTSxLQUFLLFFBQVE7UUFDekIsTUFBTSx5QkFBeUIsR0FBRyxtQ0FBbUMsQ0FBQztRQUV0RSxNQUFNLFFBQVEsR0FBSSxNQUFjLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBYyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztTQUNuRTtRQUVELE9BQU8sUUFBUSxJQUFLLE1BQWMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksNkJBQTZCLENBQUMsZUFBb0IsRUFBRSxZQUE0QjtRQUN0RixJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2xCLE9BQU87U0FDUDtRQUVELElBQUksaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3ZCLGlCQUFpQixHQUFHO2dCQUNuQixZQUFZLEVBQUUsRUFBRTtnQkFDaEIsWUFBWSxFQUFFLEVBQUU7YUFDaEIsQ0FBQztZQUVGLElBQUksQ0FBQyxlQUFlLENBQUMsR0FB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
@@ -1,5 +1,6 @@
1
1
  import { ScenarioContext, ScenarioInfo } from '../types/scenario-context';
2
2
  import { ContextType } from '../types/types';
3
+ import { World } from '@cucumber/cucumber';
3
4
  /**
4
5
  * Represents a [[ScenarioContext]] implementation that manages a collection of context objects that
5
6
  * are created and used by binding classes during a running Cucumber scenario.
@@ -13,9 +14,38 @@ export declare class ManagedScenarioContext implements ScenarioContext {
13
14
  *
14
15
  */
15
16
  get scenarioInfo(): ScenarioInfo;
16
- getOrActivateBindingClass(targetPrototype: any, contextTypes: ContextType[]): any;
17
- dispose(): void;
17
+ getOrActivateBindingClass(targetPrototype: any, contextTypes: ContextType[], worldObj: World): any;
18
+ /**
19
+ * If context objects are passed into our step, this function will
20
+ * call initialize on the context objects only once.
21
+ * Using Promise.resolve so that initialize can be synchronous or async.
22
+ */
23
+ initialize(): Promise<void>;
24
+ /**
25
+ * All objects support dispose, which is executed when a
26
+ * test run is ended. Using Promise.resolve to support
27
+ * synchronous or async functions.
28
+ */
29
+ dispose(): Promise<void>;
18
30
  private activateBindingClass;
31
+ /**
32
+ * Get or activate any object
33
+ *
34
+ * @param targetPrototype prototype for the object
35
+ * @param activatorFunc callback function used to create an instance of the object
36
+ * @param optional optional parameter passed into constructors
37
+ * @returns
38
+ */
19
39
  private getOrActivateObject;
40
+ /**
41
+ * Get or activate Context objects. Marks an object as a context
42
+ * object in ActiveInfo to let the system know it supports an initialize function.
43
+ *
44
+ * @param targetPrototype prototype for the object
45
+ * @param activatorFunc callback function used to create an instance of the object
46
+ * @param optional optional parameter passed into constructors
47
+ * @returns
48
+ */
49
+ private getOrActivateContext;
20
50
  }
21
51
  export * from '../types/scenario-context';
@@ -20,6 +20,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  exports.ManagedScenarioContext = void 0;
21
21
  const underscore_1 = __importDefault(require("underscore"));
22
22
  const scenario_context_1 = require("../types/scenario-context");
23
+ class ActiveInfo {
24
+ constructor(obj, isContext = false) {
25
+ this.activeObject = obj;
26
+ this.isContext = isContext;
27
+ }
28
+ activeObject;
29
+ isContext;
30
+ initialized = false;
31
+ }
23
32
  /**
24
33
  * Represents a [[ScenarioContext]] implementation that manages a collection of context objects that
25
34
  * are created and used by binding classes during a running Cucumber scenario.
@@ -37,19 +46,37 @@ class ManagedScenarioContext {
37
46
  get scenarioInfo() {
38
47
  return this._scenarioInfo;
39
48
  }
40
- getOrActivateBindingClass(targetPrototype, contextTypes) {
49
+ getOrActivateBindingClass(targetPrototype, contextTypes, worldObj) {
41
50
  return this.getOrActivateObject(targetPrototype, () => {
42
- return this.activateBindingClass(targetPrototype, contextTypes);
51
+ return this.activateBindingClass(targetPrototype, contextTypes, worldObj);
43
52
  });
44
53
  }
45
- dispose() {
46
- this._activeObjects.forEach((value) => {
47
- if (typeof value.dispose === 'function') {
48
- value.dispose();
54
+ /**
55
+ * If context objects are passed into our step, this function will
56
+ * call initialize on the context objects only once.
57
+ * Using Promise.resolve so that initialize can be synchronous or async.
58
+ */
59
+ async initialize() {
60
+ for (const [_key, value] of this._activeObjects) {
61
+ if (value.isContext && !value.initialized && typeof value.activeObject.initialize === 'function') {
62
+ await Promise.resolve(value.activeObject.initialize());
63
+ value.initialized = true;
49
64
  }
50
- });
65
+ }
66
+ }
67
+ /**
68
+ * All objects support dispose, which is executed when a
69
+ * test run is ended. Using Promise.resolve to support
70
+ * synchronous or async functions.
71
+ */
72
+ async dispose() {
73
+ for (const [_key, value] of this._activeObjects) {
74
+ if (typeof value.activeObject.dispose === 'function') {
75
+ await Promise.resolve(value.activeObject.dispose());
76
+ }
77
+ }
51
78
  }
52
- activateBindingClass(targetPrototype, contextTypes) {
79
+ activateBindingClass(targetPrototype, contextTypes, worldObj) {
53
80
  const invokeBindingConstructor = (args) => {
54
81
  switch (contextTypes.length) {
55
82
  case 0:
@@ -76,21 +103,47 @@ class ManagedScenarioContext {
76
103
  return new targetPrototype.constructor(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
77
104
  }
78
105
  };
79
- const contextObjects = underscore_1.default.map(contextTypes, contextType => this.getOrActivateObject(contextType.prototype, () => {
80
- return new contextType();
81
- }));
106
+ const contextObjects = underscore_1.default.map(contextTypes, contextType => this.getOrActivateContext(contextType.prototype, (worldObj) => {
107
+ return new contextType(worldObj);
108
+ }, worldObj));
82
109
  return invokeBindingConstructor(contextObjects);
83
110
  }
84
- getOrActivateObject(targetPrototype, activatorFunc) {
85
- let activeObject = this._activeObjects.get(targetPrototype);
111
+ /**
112
+ * Get or activate any object
113
+ *
114
+ * @param targetPrototype prototype for the object
115
+ * @param activatorFunc callback function used to create an instance of the object
116
+ * @param optional optional parameter passed into constructors
117
+ * @returns
118
+ */
119
+ getOrActivateObject(targetPrototype, activatorFunc, optional) {
120
+ let activeObject = this._activeObjects.get(targetPrototype)?.activeObject;
121
+ if (activeObject) {
122
+ return activeObject;
123
+ }
124
+ activeObject = activatorFunc(optional);
125
+ this._activeObjects.set(targetPrototype, new ActiveInfo(activeObject));
126
+ return activeObject;
127
+ }
128
+ /**
129
+ * Get or activate Context objects. Marks an object as a context
130
+ * object in ActiveInfo to let the system know it supports an initialize function.
131
+ *
132
+ * @param targetPrototype prototype for the object
133
+ * @param activatorFunc callback function used to create an instance of the object
134
+ * @param optional optional parameter passed into constructors
135
+ * @returns
136
+ */
137
+ getOrActivateContext(targetPrototype, activatorFunc, optional) {
138
+ let activeObject = this._activeObjects.get(targetPrototype)?.activeObject;
86
139
  if (activeObject) {
87
140
  return activeObject;
88
141
  }
89
- activeObject = activatorFunc();
90
- this._activeObjects.set(targetPrototype, activeObject);
142
+ activeObject = activatorFunc(optional);
143
+ this._activeObjects.set(targetPrototype, new ActiveInfo(activeObject, true));
91
144
  return activeObject;
92
145
  }
93
146
  }
94
147
  exports.ManagedScenarioContext = ManagedScenarioContext;
95
148
  __exportStar(require("../types/scenario-context"), exports);
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZC1zY2VuYXJpby1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2N1Y3VtYmVyL21hbmFnZWQtc2NlbmFyaW8tY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDREQUEyQjtBQUUzQixnRUFBMEU7QUFHMUU7OztHQUdHO0FBQ0gsTUFBYSxzQkFBc0I7SUFDMUIsYUFBYSxDQUFlO0lBQzVCLGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBWSxDQUFDO0lBRTdDLFlBQVksYUFBcUIsRUFBRSxJQUFjO1FBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSwrQkFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMzQixDQUFDO0lBRU0seUJBQXlCLENBQUMsZUFBb0IsRUFBRSxZQUEyQjtRQUNqRixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1lBQ3JELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSxPQUFPO1FBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUMxQyxJQUFJLE9BQU8sS0FBSyxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7Z0JBQ3hDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNoQjtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQixDQUFDLGVBQW9CLEVBQUUsWUFBMkI7UUFDN0UsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLElBQVcsRUFBTyxFQUFFO1lBQ3JELFFBQVEsWUFBWSxD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
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZC1zY2VuYXJpby1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2N1Y3VtYmVyL21hbmFnZWQtc2NlbmFyaW8tY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDREQUEyQjtBQUUzQixnRUFBMEU7QUFJMUUsTUFBTSxVQUFVO0lBQ2YsWUFBWSxHQUFRLEVBQUUsWUFBcUIsS0FBSztRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM1QixDQUFDO0lBQ0QsWUFBWSxDQUFNO0lBQ2xCLFNBQVMsQ0FBVTtJQUNuQixXQUFXLEdBQVksS0FBSyxDQUFDO0NBQzdCO0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSxzQkFBc0I7SUFDMUIsYUFBYSxDQUFlO0lBQzVCLGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUVwRCxZQUFZLGFBQXFCLEVBQUUsSUFBYztRQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksK0JBQVksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsWUFBWTtRQUN0QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDM0IsQ0FBQztJQUVNLHlCQUF5QixDQUFDLGVBQW9CLEVBQUUsWUFBMkIsRUFBRSxRQUFlO1FBQ2xHLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7WUFDckQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDdEIsS0FBSyxNQUFNLENBQUMsSUFBSSxF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
@@ -28,6 +28,8 @@ export default class MessageCollector {
28
28
  private testCaseAttemptDataMap;
29
29
  readonly undefinedParameterTypes: messages.UndefinedParameterType[];
30
30
  private testCaseRunningMap;
31
+ private collectorEvents;
32
+ onTestCaseEnd(Handler: (testCaseFinished: messages.TestCaseFinished) => void): void;
31
33
  addPickleAndTestCase(pickle: messages.Pickle, testCase: messages.TestCase): void;
32
34
  hasFailures(): boolean;
33
35
  getGherkinDocument(uri: string): messages.GherkinDocument;
@@ -64,7 +66,7 @@ export default class MessageCollector {
64
66
  * this message to dispose and clear the ScenarioContext
65
67
  * @param testCaseFinished
66
68
  */
67
- private endTestCase;
69
+ endTestCase(testCaseStartedId: string): Promise<void>;
68
70
  /**
69
71
  * Uses the testCaleId passed in to find the associated Pickle (scenario)
70
72
  * @param testCaseId
@@ -22,6 +22,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
29
  const messages = __importStar(require("@cucumber/messages"));
27
30
  const value_checker_1 = require("@cucumber/cucumber/lib/value_checker");
@@ -29,6 +32,7 @@ const managed_scenario_context_1 = require("./managed-scenario-context");
29
32
  const utils_1 = require("./utils");
30
33
  const helpers_1 = require("../utils/helpers");
31
34
  const messages_1 = require("@cucumber/messages");
35
+ const events_1 = __importDefault(require("events"));
32
36
  /**
33
37
  * Custom implementation of the EventDataCollector from cucumber.js
34
38
  *
@@ -46,6 +50,10 @@ class MessageCollector {
46
50
  testCaseAttemptDataMap = {};
47
51
  undefinedParameterTypes = [];
48
52
  testCaseRunningMap = {};
53
+ collectorEvents = new events_1.default();
54
+ onTestCaseEnd(Handler) {
55
+ this.collectorEvents.on('testCaseEnd', Handler);
56
+ }
49
57
  // Used during parallel execution to add the current pickle and testCase
50
58
  // to a new Worker instance of the MessageCollector
51
59
  addPickleAndTestCase(pickle, testCase) {
@@ -114,7 +122,6 @@ class MessageCollector {
114
122
  }
115
123
  else if (envelope.testCaseFinished) {
116
124
  this.storeTestCaseResult(envelope.testCaseFinished);
117
- this.endTestCase(envelope.testCaseFinished);
118
125
  }
119
126
  }
120
127
  initTestCaseAttempt(testCaseStarted) {
@@ -215,12 +222,12 @@ class MessageCollector {
215
222
  * this message to dispose and clear the ScenarioContext
216
223
  * @param testCaseFinished
217
224
  */
218
- endTestCase(testCaseFinished) {
219
- const testCase = this.testCaseRunningMap[testCaseFinished.testCaseStartedId];
225
+ async endTestCase(testCaseStartedId) {
226
+ const testCase = this.testCaseRunningMap[testCaseStartedId];
220
227
  if (testCase) {
221
228
  const scenario = this.getScenarioForTest(testCase.testCaseId);
222
229
  if (scenario && scenario.scenarioContext) {
223
- scenario.scenarioContext.dispose();
230
+ await scenario.scenarioContext.dispose();
224
231
  scenario.scenarioContext = undefined;
225
232
  }
226
233
  }
@@ -248,4 +255,4 @@ class MessageCollector {
248
255
  }
249
256
  }
250
257
  exports.default = MessageCollector;
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1jb2xsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3VjdW1iZXIvbWVzc2FnZS1jb2xsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUErQztBQUMvQyx3RUFBd0U7QUFFeEUseUVBQW9FO0FBQ3BFLG1DQUEyRDtBQUMzRCw4Q0FBa0Q7QUFDbEQsaURBQTBEO0FBMEIxRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFxQixnQkFBZ0I7SUFDNUIsa0JBQWtCLEdBQTZDLEVBQUUsQ0FBQztJQUNsRSxTQUFTLEdBQW9DLEVBQUUsQ0FBQztJQUNoRCxXQUFXLEdBQXNDLEVBQUUsQ0FBQztJQUNwRCxzQkFBc0IsR0FBeUMsRUFBRSxDQUFDO0lBQ2pFLHVCQUF1QixHQUFzQyxFQUFFLENBQUM7SUFDakUsa0JBQWtCLEdBQTZDLEVBQUUsQ0FBQztJQUUxRSx3RUFBd0U7SUFDeEUsbURBQW1EO0lBQ25ELG9CQUFvQixDQUFDLE1BQXVCLEVBQUUsUUFBMkI7UUFDeEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVztRQUNWLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQ2xELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUM7WUFDckUsS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUU7Z0JBQzlCLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSywrQkFBb0IsQ0FBQyxNQUFNLEVBQUU7b0JBQzVELE9BQU8sSUFBSSxDQUFDO2lCQUNaO2FB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
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1jb2xsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3VjdW1iZXIvbWVzc2FnZS1jb2xsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUErQztBQUMvQyx3RUFBd0U7QUFFeEUseUVBQW9FO0FBQ3BFLG1DQUEyRDtBQUMzRCw4Q0FBa0Q7QUFDbEQsaURBQTBEO0FBQzFELG9EQUFrQztBQTBCbEM7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBcUIsZ0JBQWdCO0lBQzVCLGtCQUFrQixHQUE2QyxFQUFFLENBQUM7SUFDbEUsU0FBUyxHQUFvQyxFQUFFLENBQUM7SUFDaEQsV0FBVyxHQUFzQyxFQUFFLENBQUM7SUFDcEQsc0JBQXNCLEdBQXlDLEVBQUUsQ0FBQztJQUNqRSx1QkFBdUIsR0FBc0MsRUFBRSxDQUFDO0lBQ2pFLGtCQUFrQixHQUE2QyxFQUFFLENBQUM7SUFFbEUsZUFBZSxHQUFHLElBQUksZ0JBQVksRUFBRSxDQUFDO0lBRTdDLGFBQWEsQ0FBQyxPQUE4RDtRQUMzRSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELHdFQUF3RTtJQUN4RSxtREFBbUQ7SUFDbkQsb0JBQW9CLENBQUMsTUFBdUIsRUFBRSxRQUEyQjtRQUN4RSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXO1FBQ1YsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDbEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFD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
@@ -9,7 +9,7 @@ const url_1 = require("url");
9
9
  const index_1 = __importDefault(require("@cucumber/cucumber/lib/support_code_library_builder/index"));
10
10
  const run_test_run_hooks_1 = require("@cucumber/cucumber/lib/runtime/run_test_run_hooks");
11
11
  const stopwatch_1 = require("@cucumber/cucumber/lib/runtime/stopwatch");
12
- const test_case_runner_1 = __importDefault(require("@cucumber/cucumber/lib/runtime/test_case_runner"));
12
+ const test_case_runner_1 = __importDefault(require("../test-case-runner"));
13
13
  const message_collector_1 = __importDefault(require("../message-collector"));
14
14
  // eslint-disable-next-line @typescript-eslint/no-var-requires
15
15
  const { importer } = require('@cucumber/cucumber/lib/importer');
@@ -101,4 +101,4 @@ class Worker {
101
101
  }
102
102
  }
103
103
  exports.default = Worker;
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1Y3VtYmVyL3BhcmFsbGVsL3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGlEQUFpRDtBQUNqRCxtQ0FBc0M7QUFDdEMsNkJBQW9DO0FBQ3BDLHNHQUFrRztBQUVsRywwRkFBMEc7QUFDMUcsd0VBQWtFO0FBQ2xFLHVHQUE2RTtBQU83RSw2RUFBb0Q7QUFFcEQsOERBQThEO0FBQzlELE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQUNoRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsc0JBQVcsQ0FBQztBQUs3Qjs7O0dBR0c7QUFDSCxNQUFxQixNQUFNO0lBQ1QsR0FBRyxDQUFTO0lBQ1osSUFBSSxDQUFnQjtJQUVwQixFQUFFLENBQVM7SUFDWCxnQkFBZ0IsQ0FBZTtJQUN4QyxpQkFBaUIsR0FBWSxLQUFLLENBQUM7SUFDMUIsS0FBSyxDQUFvQjtJQUN6QixXQUFXLENBQWlCO0lBQ3JDLGtCQUFrQixDQUF1QjtJQUN6QyxlQUFlLENBQU07SUFDckIsZUFBZSxDQUFvQjtJQUUzQyxZQUFZLEVBQ1gsR0FBRyxFQUNILElBQUksRUFDSixFQUFFLEVBQ0YsV0FBVyxFQU1YO1FBQ0EsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUkscUJBQVksRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBMkIs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
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2N1Y3VtYmVyL3BhcmFsbGVsL3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGlEQUFpRDtBQUNqRCxtQ0FBc0M7QUFDdEMsNkJBQW9DO0FBQ3BDLHNHQUFrRztBQUVsRywwRkFBMEc7QUFDMUcsd0VBQWtFO0FBQ2xFLDJFQUFpRDtBQU9qRCw2RUFBb0Q7QUFFcEQsOERBQThEO0FBQzlELE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQUNoRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsc0JBQVcsQ0FBQztBQUs3Qjs7O0dBR0c7QUFDSCxNQUFxQixNQUFNO0lBQ1QsR0FBRyxDQUFTO0lBQ1osSUFBSSxDQUFnQjtJQUVwQixFQUFFLENBQVM7SUFDWCxnQkFBZ0IsQ0FBZTtJQUN4QyxpQkFBaUIsR0FBWSxLQUFLLENBQUM7SUFDMUIsS0FBSyxDQUFvQjtJQUN6QixXQUFXLENBQWlCO0lBQ3JDLGtCQUFrQixDQUF1QjtJQUN6QyxlQUFlLENBQU07SUFDckIsZUFBZSxDQUFvQjtJQUUzQyxZQUFZLEVBQ1gsR0FBRyxFQUNILElBQUksRUFDSixFQUFFLEVBQ0YsV0FBVyxFQU1YO1FBQ0EsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUkscUJBQVksRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBMkIs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
@@ -0,0 +1,48 @@
1
+ import { INewTestCaseRunnerOptions } from '@cucumber/cucumber/lib/runtime/test_case_runner';
2
+ import * as messages from '@cucumber/messages';
3
+ import { ITestCaseHookParameter } from '@cucumber/cucumber/lib/support_code_library_builder/types';
4
+ import TestCaseHookDefinition from '@cucumber/cucumber/lib/models/test_case_hook_definition';
5
+ import TestStepHookDefinition from '@cucumber/cucumber/lib/models/test_step_hook_definition';
6
+ import { IDefinition } from '@cucumber/cucumber/lib/models/definition';
7
+ import { StepBinding } from '../types/step-binding';
8
+ import { ManagedScenarioContext } from './managed-scenario-context';
9
+ export default class TestCaseRunner {
10
+ private readonly attachmentManager;
11
+ private currentTestCaseStartedId?;
12
+ private currentTestStepId?;
13
+ private readonly eventBroadcaster;
14
+ private readonly stopwatch;
15
+ private readonly gherkinDocument;
16
+ private readonly newId;
17
+ private readonly pickle;
18
+ private readonly testCase;
19
+ private readonly maxAttempts;
20
+ private readonly skip;
21
+ private readonly filterStackTraces;
22
+ private readonly supportCodeLibrary;
23
+ private testStepResults?;
24
+ private world;
25
+ private readonly worldParameters;
26
+ private bindingRegistry;
27
+ constructor({ eventBroadcaster, stopwatch, gherkinDocument, newId, pickle, testCase, retries, skip, filterStackTraces, supportCodeLibrary, worldParameters }: INewTestCaseRunnerOptions);
28
+ resetTestProgressData(): void;
29
+ getBeforeStepHookDefinitions(): TestStepHookDefinition[];
30
+ getAfterStepHookDefinitions(): TestStepHookDefinition[];
31
+ getWorstStepResult(): messages.TestStepResult;
32
+ invokeStep(stepParam: messages.PickleStep | null, stepDefinition: IDefinition, hookParameter?: any): Promise<messages.TestStepResult>;
33
+ isSkippingSteps(): boolean;
34
+ shouldSkipHook(isBeforeHook: boolean): boolean;
35
+ aroundTestStep(testStepId: string, runStepFn: () => Promise<messages.TestStepResult>): Promise<void>;
36
+ run(): Promise<messages.TestStepResultStatus>;
37
+ runAttempt(attempt: number, moreAttemptsRemaining: boolean): Promise<boolean>;
38
+ runHook(hookDefinition: TestCaseHookDefinition, hookParameter: ITestCaseHookParameter, isBeforeHook: boolean): Promise<messages.TestStepResult>;
39
+ runStepHooks(stepHooks: TestStepHookDefinition[], pickleStep: messages.PickleStep, stepResult?: messages.TestStepResult): Promise<messages.TestStepResult[]>;
40
+ runStep(pickleStep: messages.PickleStep, testStep: messages.TestStep): Promise<messages.TestStepResult>;
41
+ /**
42
+ * Helper used to initialize any context types that are passed into
43
+ * a binding class before any hooks or steps are executed.
44
+ * @param stepBinding
45
+ * @param scenarioContext
46
+ */
47
+ initializeContext(stepBinding: StepBinding, scenarioContext: ManagedScenarioContext): Promise<void>;
48
+ }
@@ -0,0 +1,318 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const helpers_1 = require("@cucumber/cucumber/lib/runtime/helpers");
30
+ const index_1 = __importDefault(require("@cucumber/cucumber/lib/runtime/attachment_manager/index"));
31
+ const step_runner_1 = __importDefault(require("@cucumber/cucumber/lib/runtime/step_runner"));
32
+ const messages = __importStar(require("@cucumber/messages"));
33
+ const messages_1 = require("@cucumber/messages");
34
+ const value_checker_1 = require("@cucumber/cucumber/lib/value_checker");
35
+ const binding_registry_1 = require("./binding-registry");
36
+ const console_1 = require("console");
37
+ class TestCaseRunner {
38
+ attachmentManager;
39
+ currentTestCaseStartedId;
40
+ currentTestStepId;
41
+ eventBroadcaster;
42
+ stopwatch;
43
+ gherkinDocument;
44
+ newId;
45
+ pickle;
46
+ testCase;
47
+ maxAttempts;
48
+ skip;
49
+ filterStackTraces;
50
+ supportCodeLibrary;
51
+ testStepResults;
52
+ world;
53
+ worldParameters;
54
+ bindingRegistry;
55
+ constructor({ eventBroadcaster, stopwatch, gherkinDocument, newId, pickle, testCase, retries = 0, skip, filterStackTraces, supportCodeLibrary, worldParameters }) {
56
+ this.attachmentManager = new index_1.default(({ data, media, fileName }) => {
57
+ if ((0, value_checker_1.doesNotHaveValue)(this.currentTestStepId)) {
58
+ throw new Error('Cannot attach when a step/hook is not running. Ensure your step/hook waits for the attach to finish.');
59
+ }
60
+ const attachment = {
61
+ attachment: {
62
+ body: data,
63
+ contentEncoding: media.encoding,
64
+ mediaType: media.contentType,
65
+ fileName,
66
+ testCaseStartedId: this.currentTestCaseStartedId,
67
+ testStepId: this.currentTestStepId
68
+ }
69
+ };
70
+ this.eventBroadcaster.emit('envelope', attachment);
71
+ });
72
+ this.eventBroadcaster = eventBroadcaster;
73
+ this.stopwatch = stopwatch;
74
+ this.gherkinDocument = gherkinDocument;
75
+ this.maxAttempts = 1 + (skip ? 0 : retries);
76
+ this.newId = newId;
77
+ this.pickle = pickle;
78
+ this.testCase = testCase;
79
+ this.skip = skip;
80
+ this.filterStackTraces = filterStackTraces;
81
+ this.supportCodeLibrary = supportCodeLibrary;
82
+ this.worldParameters = worldParameters;
83
+ this.resetTestProgressData();
84
+ this.bindingRegistry = binding_registry_1.BindingRegistry.instance;
85
+ }
86
+ resetTestProgressData() {
87
+ this.world = new this.supportCodeLibrary.World({
88
+ attach: this.attachmentManager.create.bind(this.attachmentManager),
89
+ log: this.attachmentManager.log.bind(this.attachmentManager),
90
+ parameters: this.worldParameters
91
+ });
92
+ this.testStepResults = [];
93
+ }
94
+ getBeforeStepHookDefinitions() {
95
+ return this.supportCodeLibrary.beforeTestStepHookDefinitions.filter(hookDefinition => hookDefinition.appliesToTestCase(this.pickle));
96
+ }
97
+ getAfterStepHookDefinitions() {
98
+ return this.supportCodeLibrary.afterTestStepHookDefinitions
99
+ .slice(0)
100
+ .reverse()
101
+ .filter(hookDefinition => hookDefinition.appliesToTestCase(this.pickle));
102
+ }
103
+ getWorstStepResult() {
104
+ if (!this.testStepResults || this.testStepResults.length === 0) {
105
+ return {
106
+ status: this.skip ? messages.TestStepResultStatus.SKIPPED : messages.TestStepResultStatus.PASSED,
107
+ duration: messages.TimeConversion.millisecondsToDuration(0)
108
+ };
109
+ }
110
+ return (0, messages_1.getWorstTestStepResult)(this.testStepResults);
111
+ }
112
+ async invokeStep(stepParam, stepDefinition, hookParameter) {
113
+ const step = stepParam;
114
+ return await step_runner_1.default.run({
115
+ defaultTimeout: this.supportCodeLibrary.defaultTimeout,
116
+ filterStackTraces: this.filterStackTraces,
117
+ hookParameter,
118
+ step,
119
+ stepDefinition,
120
+ world: this.world
121
+ });
122
+ }
123
+ isSkippingSteps() {
124
+ return this.getWorstStepResult().status !== messages.TestStepResultStatus.PASSED;
125
+ }
126
+ shouldSkipHook(isBeforeHook) {
127
+ return this.skip || (this.isSkippingSteps() && isBeforeHook);
128
+ }
129
+ async aroundTestStep(testStepId, runStepFn) {
130
+ const testStepStarted = {
131
+ testStepStarted: {
132
+ testCaseStartedId: this.currentTestCaseStartedId,
133
+ testStepId,
134
+ timestamp: this.stopwatch.timestamp()
135
+ }
136
+ };
137
+ this.eventBroadcaster.emit('envelope', testStepStarted);
138
+ this.currentTestStepId = testStepId;
139
+ const testStepResult = await runStepFn();
140
+ this.currentTestStepId = undefined;
141
+ this.testStepResults?.push(testStepResult);
142
+ const testStepFinished = {
143
+ testStepFinished: {
144
+ testCaseStartedId: this.currentTestCaseStartedId,
145
+ testStepId,
146
+ testStepResult,
147
+ timestamp: this.stopwatch.timestamp()
148
+ }
149
+ };
150
+ this.eventBroadcaster.emit('envelope', testStepFinished);
151
+ }
152
+ async run() {
153
+ for (let attempt = 0; attempt < this.maxAttempts; attempt++) {
154
+ const moreAttemptsRemaining = attempt + 1 < this.maxAttempts;
155
+ const willBeRetried = await this.runAttempt(attempt, moreAttemptsRemaining);
156
+ if (!willBeRetried) {
157
+ break;
158
+ }
159
+ this.resetTestProgressData();
160
+ }
161
+ return this.getWorstStepResult().status;
162
+ }
163
+ async runAttempt(attempt, moreAttemptsRemaining) {
164
+ this.currentTestCaseStartedId = this.newId();
165
+ const testCaseStarted = {
166
+ testCaseStarted: {
167
+ attempt,
168
+ testCaseId: this.testCase.id,
169
+ id: this.currentTestCaseStartedId,
170
+ timestamp: this.stopwatch.timestamp()
171
+ }
172
+ };
173
+ this.eventBroadcaster.emit('envelope', testCaseStarted);
174
+ // used to determine whether a hook is a Before or After
175
+ let didWeRunStepsYet = false;
176
+ for (const testStep of this.testCase.testSteps) {
177
+ await this.aroundTestStep(testStep.id, async () => {
178
+ if ((0, value_checker_1.doesHaveValue)(testStep.hookId)) {
179
+ const hookParameter = {
180
+ gherkinDocument: this.gherkinDocument,
181
+ pickle: this.pickle,
182
+ testCaseStartedId: this.currentTestCaseStartedId
183
+ };
184
+ if (didWeRunStepsYet) {
185
+ hookParameter.result = this.getWorstStepResult();
186
+ hookParameter.willBeRetried =
187
+ this.getWorstStepResult().status === messages.TestStepResultStatus.FAILED && moreAttemptsRemaining;
188
+ }
189
+ return await this.runHook(findHookDefinition(testStep.hookId, this.supportCodeLibrary), hookParameter, !didWeRunStepsYet);
190
+ }
191
+ else {
192
+ const pickleStep = this.pickle.steps.find(pickleStep => pickleStep.id === testStep.pickleStepId);
193
+ const testStepResult = await this.runStep(pickleStep, testStep);
194
+ didWeRunStepsYet = true;
195
+ return testStepResult;
196
+ }
197
+ });
198
+ }
199
+ // End test case will call dispose on all context types
200
+ // passed into a binding and then end the context.
201
+ await global.messageCollector.endTestCase(this.currentTestCaseStartedId);
202
+ const willBeRetried = this.getWorstStepResult().status === messages.TestStepResultStatus.FAILED && moreAttemptsRemaining;
203
+ const testCaseFinished = {
204
+ testCaseFinished: {
205
+ testCaseStartedId: this.currentTestCaseStartedId,
206
+ timestamp: this.stopwatch.timestamp(),
207
+ willBeRetried
208
+ }
209
+ };
210
+ this.eventBroadcaster.emit('envelope', testCaseFinished);
211
+ return willBeRetried;
212
+ }
213
+ async runHook(hookDefinition, hookParameter, isBeforeHook) {
214
+ if (this.shouldSkipHook(isBeforeHook)) {
215
+ return {
216
+ status: messages.TestStepResultStatus.SKIPPED,
217
+ duration: messages.TimeConversion.millisecondsToDuration(0)
218
+ };
219
+ }
220
+ // Get the step binding and scenario context so that we can
221
+ // initialize any context objects before hooks are executed
222
+ const stepBinding = this.bindingRegistry.getStepBindingByCucumberKey(hookDefinition.options.cucumberKey);
223
+ if (!stepBinding)
224
+ throw (0, console_1.error)('Unable to find StepBinding!');
225
+ const scenarioContext = global.messageCollector.getHookScenarioContext(hookParameter);
226
+ if (!scenarioContext)
227
+ throw (0, console_1.error)('Unable to find the ManagedScenarioContext!');
228
+ await this.initializeContext(stepBinding, scenarioContext);
229
+ return await this.invokeStep(null, hookDefinition, hookParameter);
230
+ }
231
+ async runStepHooks(stepHooks, pickleStep, stepResult) {
232
+ const stepHooksResult = [];
233
+ const hookParameter = {
234
+ gherkinDocument: this.gherkinDocument,
235
+ pickle: this.pickle,
236
+ pickleStep,
237
+ testCaseStartedId: this.currentTestCaseStartedId,
238
+ testStepId: this.currentTestStepId,
239
+ result: stepResult
240
+ };
241
+ for (const stepHookDefinition of stepHooks) {
242
+ stepHooksResult.push(await this.invokeStep(null, stepHookDefinition, hookParameter));
243
+ }
244
+ return stepHooksResult;
245
+ }
246
+ async runStep(pickleStep, testStep) {
247
+ const stepDefinitions = testStep.stepDefinitionIds?.map(stepDefinitionId => {
248
+ return findStepDefinition(stepDefinitionId, this.supportCodeLibrary);
249
+ });
250
+ if (!stepDefinitions || stepDefinitions.length === 0) {
251
+ return {
252
+ status: messages.TestStepResultStatus.UNDEFINED,
253
+ duration: messages.TimeConversion.millisecondsToDuration(0)
254
+ };
255
+ }
256
+ else if (stepDefinitions.length > 1) {
257
+ return {
258
+ message: (0, helpers_1.getAmbiguousStepException)(stepDefinitions),
259
+ status: messages.TestStepResultStatus.AMBIGUOUS,
260
+ duration: messages.TimeConversion.millisecondsToDuration(0)
261
+ };
262
+ }
263
+ else if (this.isSkippingSteps()) {
264
+ return {
265
+ status: messages.TestStepResultStatus.SKIPPED,
266
+ duration: messages.TimeConversion.millisecondsToDuration(0)
267
+ };
268
+ }
269
+ // Get the step binding and scenario context so that we can
270
+ // initialize any context objects before hooks are executed
271
+ const stepBinding = this.bindingRegistry.getStepBindingByCucumberKey(stepDefinitions[0].options.cucumberKey);
272
+ if (!stepBinding)
273
+ throw (0, console_1.error)('Unable to find StepBinding!');
274
+ const scenarioContext = global.messageCollector.getStepScenarioContext(stepBinding);
275
+ if (!scenarioContext)
276
+ throw (0, console_1.error)('Unable to find the ManagedScenarioContext!');
277
+ await this.initializeContext(stepBinding, scenarioContext);
278
+ // next execute any before step hooks followed by the step if there are no
279
+ // failures in before step hooks.
280
+ let stepResult;
281
+ let stepResults = await this.runStepHooks(this.getBeforeStepHookDefinitions(), pickleStep);
282
+ if ((0, messages_1.getWorstTestStepResult)(stepResults).status !== messages.TestStepResultStatus.FAILED) {
283
+ stepResult = await this.invokeStep(pickleStep, stepDefinitions[0]);
284
+ stepResults.push(stepResult);
285
+ }
286
+ // run the after step hooks
287
+ const afterStepHookResults = await this.runStepHooks(this.getAfterStepHookDefinitions(), pickleStep, stepResult);
288
+ stepResults = stepResults.concat(afterStepHookResults);
289
+ const finalStepResult = (0, messages_1.getWorstTestStepResult)(stepResults);
290
+ let finalDuration = messages.TimeConversion.millisecondsToDuration(0);
291
+ for (const result of stepResults) {
292
+ finalDuration = messages.TimeConversion.addDurations(finalDuration, result.duration);
293
+ }
294
+ finalStepResult.duration = finalDuration;
295
+ return finalStepResult;
296
+ }
297
+ /**
298
+ * Helper used to initialize any context types that are passed into
299
+ * a binding class before any hooks or steps are executed.
300
+ * @param stepBinding
301
+ * @param scenarioContext
302
+ */
303
+ async initializeContext(stepBinding, scenarioContext) {
304
+ const contextTypes = this.bindingRegistry.getContextTypesForTarget(stepBinding.targetPrototype);
305
+ if (contextTypes.length > 0) {
306
+ scenarioContext.getOrActivateBindingClass(stepBinding.targetPrototype, contextTypes, this.world);
307
+ await scenarioContext.initialize();
308
+ }
309
+ }
310
+ }
311
+ exports.default = TestCaseRunner;
312
+ function findHookDefinition(id, supportCodeLibrary) {
313
+ return [...supportCodeLibrary.beforeTestCaseHookDefinitions, ...supportCodeLibrary.afterTestCaseHookDefinitions].find(definition => definition.id === id);
314
+ }
315
+ function findStepDefinition(id, supportCodeLibrary) {
316
+ return supportCodeLibrary.stepDefinitions.find(definition => definition.id === id);
317
+ }
318
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1jYXNlLXJ1bm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jdWN1bWJlci90ZXN0LWNhc2UtcnVubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvRUFBbUY7QUFFbkYsb0dBQXdGO0FBQ3hGLDZGQUFvRTtBQUNwRSw2REFBK0M7QUFDL0MsaURBQXlFO0FBVXpFLHdFQUF1RjtBQUd2Rix5REFBcUQ7QUFHckQscUNBQWdDO0FBRWhDLE1BQXFCLGNBQWM7SUFDakIsaUJBQWlCLENBQW9CO0lBQzlDLHdCQUF3QixDQUFVO0lBQ2xDLGlCQUFpQixDQUFVO0lBQ2xCLGdCQUFnQixDQUFlO0lBQy9CLFNBQVMsQ0FBYTtJQUN0QixlQUFlLENBQTJCO0lBQzFDLEtBQUssQ0FBb0I7SUFDekIsTUFBTSxDQUFrQjtJQUN4QixRQUFRLENBQW9CO0lBQzVCLFdBQVcsQ0FBUztJQUNwQixJQUFJLENBQVU7SUFDZCxpQkFBaUIsQ0FBVTtJQUMzQixrQkFBa0IsQ0FBc0I7SUFDakQsZUFBZSxDQUE2QjtJQUM1QyxLQUFLLENBQU07SUFDRixlQUFlLENBQU07SUFDOUIsZUFBZSxDQUFrQjtJQUV6QyxZQUFZLEVBQ1gsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxHQUFHLENBQUMsRUFDWCxJQUFJLEVBQ0osaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixlQUFlLEVBQ1k7UUFDM0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksZUFBaUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO1lBQzVFLElBQUksSUFBQSxnQ0FBZ0IsRUFBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxJQUFJLEtBQUssQ0FDZCxzR0FBc0cs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
@@ -1,3 +1,4 @@
1
+ import { World } from '@cucumber/cucumber';
1
2
  /**
2
3
  * A string representation of a [[RegExp]] that defines a Cucumber step pattern.
3
4
  */
@@ -14,7 +15,7 @@ export interface ContextType {
14
15
  /**
15
16
  * A default constructor.
16
17
  */
17
- new (): any;
18
+ new (worldObj: World): any;
18
19
  }
19
20
  export type TypeDecorator = <T>(target: {
20
21
  new (...args: any[]): T;
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "6.3.0";
1
+ export declare const version = "6.5.0";
package/lib/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
4
  // Generated by genversion.
5
- exports.version = '6.3.0';
5
+ exports.version = '6.5.0';
6
6
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJCQUEyQjtBQUNkLFFBQUEsT0FBTyxHQUFHLE9BQU8sQ0FBQSJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lynxwall/cucumber-tsflow",
3
- "description": "Provides 'specflow' like bindings for CucumberJS 9.1.0+ in TypeScript 4.0+.",
4
- "version": "6.3.0",
3
+ "description": "Provides 'specflow' like bindings for CucumberJS 9.6.0+ in TypeScript 5.0+.",
4
+ "version": "6.5.0",
5
5
  "author": "Lonnie Wall <lynxdev@lynxwall.com>",
6
6
  "license": "MIT",
7
7
  "main": "./lib/index",