@lynxwall/cucumber-tsflow 5.0.8 → 5.1.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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # cucumber-tsflow
4
4
 
5
- Provides 'specflow' like bindings for CucumberJS 8.0.0+ in TypeScript 1.7+.
5
+ Provides 'specflow' like bindings for CucumberJS 8.5.0+ in TypeScript 1.7+.
6
6
 
7
7
  Supports Vue3 files in cucumber tests.
8
8
 
@@ -18,6 +18,7 @@ In addition, the following features have been added:
18
18
  - WrapperOptions in step definitions
19
19
  - BeforeStep and AfterStep Hooks
20
20
  - Boolean custom definition added to cucumber expressions
21
+ - Support for Parallel execution of tests
21
22
  - A behave-json-formatter that fixes json so it can be used with Behave Pro
22
23
  - tsflow-snippet-syntax used to format snippet examples
23
24
  - snippets use the [Cucumber Expressions](https://github.com/cucumber/cucumber-expressions#readme) Syntax for parameters
@@ -113,19 +114,22 @@ As mentioned previously, with recent updates cucumber-tsflow must be used to exe
113
114
  The following example demonstrates executing cucumber-tsflow from the command line to execute tests:
114
115
 
115
116
  ```bash
116
- C:\GitHub\cucumber-js-tsflow (vue-plugin -> origin)
117
- λ npx cucumber-tsflow
117
+ C:\GitHub\cucumber-js-tsflow (dev -> origin)
118
+ λ yarn test
118
119
  Loading configuration and step definitions...
119
- .....@basic after hook is called.
120
+
121
+ beforeAll was called
120
122
  ......@basic after hook is called.
121
- ........@tags1 after hook is called.
122
- .....@tagging afterTag method is called
123
- .......<Suspense> is an experimental feature and its API will likely change.
124
- ..
125
-
126
- 7 scenarios (7 passed)
127
- 20 steps (20 passed)
128
- 0m00.075s (executing steps: 0m00.037s)
123
+ .......@basic after hook is called.
124
+ .......@basic after hook is called.
125
+ ...........@tags1 after hook is called.
126
+ ......@tagging afterTag method is called
127
+ .........<Suspense> is an experimental feature and its API will likely change.
128
+ ..afterAll was called
129
+
130
+ 8 scenarios (8 passed)
131
+ 24 steps (24 passed)
132
+ 0m00.076s (executing steps: 0m00.040s)
129
133
  ```
130
134
 
131
135
  To recap, cucumber-tsflow extends cucumber-js, which means that all options and features provided by cucumber-js are supported with cucumber-tsflow. In other words, when executing tests using cucumber-tsflow the underlying cucumber API is actually used to run the tests.
@@ -194,10 +198,10 @@ If using VSCode to edit your project the following launch configurations can be
194
198
  ```json
195
199
  {
196
200
  "name": "Debug All",
197
- "type": "pwa-node",
201
+ "type": "node",
198
202
  "request": "launch",
199
203
  "program": "${workspaceRoot}/node_modules/@lynxwall/cucumber-tsflow/bin/cucumber-tsflow",
200
- "stopOnEntry": false,
204
+ "stopOnEntry": true,
201
205
  "args": ["-p", "default"],
202
206
  "cwd": "${workspaceRoot}",
203
207
  "runtimeExecutable": null,
@@ -205,10 +209,8 @@ If using VSCode to edit your project the following launch configurations can be
205
209
  "env": {
206
210
  "NODE_ENV": "development"
207
211
  },
208
- "externalConsole": false,
209
212
  "console": "integratedTerminal",
210
- "sourceMaps": true,
211
- "outDir": null
213
+ "sourceMaps": true
212
214
  }
213
215
  ```
214
216
 
@@ -217,10 +219,10 @@ If using VSCode to edit your project the following launch configurations can be
217
219
  ```json
218
220
  {
219
221
  "name": "Debug Feature",
220
- "type": "pwa-node",
222
+ "type": "node",
221
223
  "request": "launch",
222
224
  "program": "${workspaceRoot}/node_modules/@lynxwall/cucumber-tsflow/bin/cucumber-tsflow",
223
- "stopOnEntry": false,
225
+ "stopOnEntry": true,
224
226
  "args": ["--debug-file", "${file}", "-p", "default"],
225
227
  "cwd": "${workspaceRoot}",
226
228
  "runtimeExecutable": null,
@@ -228,10 +230,8 @@ If using VSCode to edit your project the following launch configurations can be
228
230
  "env": {
229
231
  "NODE_ENV": "development"
230
232
  },
231
- "externalConsole": false,
232
233
  "console": "integratedTerminal",
233
- "sourceMaps": true,
234
- "outDir": null
234
+ "sourceMaps": true
235
235
  }
236
236
  ```
237
237
 
@@ -450,31 +450,73 @@ The following example shows how to configure the behave formatter in cucumber.js
450
450
 
451
451
  ### Context Injection
452
452
 
453
- Like 'specflow', cucumber-tsflow supports a simple dependency injection framework that will instantitate and inject
454
- class instances into 'binding' classes for each execuing scenario.
453
+ Like 'specflow', cucumber-tsflow supports a simple dependency injection framework that will instantitate and inject class instances into 'binding' classes for each execuing scenario.
455
454
 
456
455
  To use context injection:
457
456
 
458
457
  - Create simple classes representing the shared data (they *must* have default constructors)
459
- - Define a constructor on the 'binding' classes that will require the shared data that accepts the context objects
460
- as parameters
461
- - Update the `@binding()` decorator to indicate the types of context objects that are required by the 'binding'
462
- class
458
+ - Define a constructor on the 'binding' classes that will require the shared data that accepts the context objects as parameters
459
+ - Update the `@binding()` decorator to indicate the types of context objects that are required by the 'binding' class
463
460
 
464
461
  ```javascript
465
- import { binding, before, after } from "@lynxwall/cucumber-tsflow";
466
- import { Workspace } from "./Workspace";
462
+ import { binding, given, when } from '@lynxwall/cucumber-tsflow';
463
+ import { Workspace } from './workspace';
464
+ import { expect } from 'chai';
467
465
 
468
466
  @binding([Workspace])
469
- export default class MySteps {
470
- constructor(protected workspace: Workspace)
471
- { }
467
+ export default class InjectionTestSteps1 {
468
+ constructor(private workspace: Workspace) {}
472
469
 
473
- @before("requireTempDir")
474
- public async beforeAllScenariosRequiringTempDirectory(): Promise<void> {
475
- let tempDirInfo = await this.createTemporaryDirectory();
470
+ @given('The Workspace is available and valid')
471
+ theWorkspaceIsAvailableAndValid() {
472
+ expect(this.workspace).not.to.be.undefined;
473
+ expect(this.workspace.world).not.to.be.undefined;
474
+ }
476
475
 
477
- this.workspace.updateFolder(tempDirInfo);
478
- }
476
+ @when('I change the workspace in one step definition class')
477
+ whenIChangeTheWorkspaceInOneStep() {
478
+ this.workspace.someValue = 'value changed';
479
+ }
480
+ }
481
+ ```
482
+
483
+ ### Access to Cucumber.js World object
484
+
485
+ 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.
486
+
487
+ The first step is to define a world property on the class that you're injecting:
488
+
489
+ ```javascript
490
+ import { World } from '@cucumber/cucumber';
491
+
492
+ export class Workspace {
493
+ public world!: World;
494
+ public someValue = '';
495
+ }
496
+ ```
497
+
498
+ 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.
499
+
500
+ For this example I've added a file named world-context.ts with the following content:
501
+
502
+ ```javascript
503
+ import { binding, before } from '@lynxwall/cucumber-tsflow';
504
+ import { Workspace } from './workspace';
505
+ import { World } from '@cucumber/cucumber';
506
+
507
+ @binding([Workspace])
508
+ export default class WorldContext {
509
+ _worldObj?: World;
510
+
511
+ constructor(private workspace: Workspace) {}
512
+
513
+ @before()
514
+ beforeScenario() {
515
+ this.workspace.world = this._worldObj as World;
516
+ }
479
517
  }
480
518
  ```
519
+
520
+ As described in the section on Hooks, the ***beforeScenario*** function will be executed before each scenario. We're accessing a member property that was bound to the class instance during creation of each step class, and initializing the world property.
521
+
522
+ **NOTE:** Examples of this and other tests can be found in the GitHub repository.
package/lib/cli/index.js CHANGED
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const messages_1 = require("@cucumber/messages");
7
7
  const index_1 = require("@cucumber/cucumber/lib/configuration/index");
8
- const index_2 = require("@cucumber/cucumber/lib/api/index");
8
+ const run_cucumber_1 = require("../cucumber/run-cucumber");
9
9
  const load_configuration_1 = require("./load-configuration");
10
10
  const i18n_1 = require("@cucumber/cucumber/lib/cli/i18n");
11
11
  const install_validator_1 = require("@cucumber/cucumber/lib/cli/install_validator");
@@ -14,7 +14,8 @@ const environment_1 = require("@cucumber/cucumber/lib/api/environment");
14
14
  const support_1 = require("@cucumber/cucumber/lib/api/support");
15
15
  const binding_registry_1 = require("../cucumber/binding-registry");
16
16
  const argv_parser_1 = __importDefault(require("./argv-parser"));
17
- const message_collector_1 = __importDefault(require("../cucumber/message-collector"));
17
+ const debug_1 = __importDefault(require("debug"));
18
+ const console_logger_1 = require("@cucumber/cucumber/lib/api/console_logger");
18
19
  const console_1 = require("console");
19
20
  class Cli {
20
21
  constructor({ argv, cwd, stdout, stderr, env }) {
@@ -25,7 +26,7 @@ class Cli {
25
26
  this.env = env;
26
27
  }
27
28
  async run() {
28
- await (0, install_validator_1.validateInstall)(this.cwd);
29
+ await (0, install_validator_1.validateInstall)();
29
30
  const { options, configuration: argvConfiguration } = argv_parser_1.default.parse(this.argv);
30
31
  if (options.i18nLanguages) {
31
32
  this.stdout.write((0, i18n_1.getLanguages)());
@@ -43,14 +44,16 @@ class Cli {
43
44
  success: true
44
45
  };
45
46
  }
47
+ const enableDebug = debug_1.default.enabled('cucumber');
46
48
  const environment = {
47
49
  cwd: this.cwd,
48
50
  stdout: this.stdout,
49
51
  stderr: this.stderr,
50
- env: this.env
52
+ env: this.env,
53
+ debug: enableDebug
51
54
  };
52
- const logger = new console_1.Console(environment.stdout, environment.stderr);
53
- logger.info('Loading configuration and step definitions...');
55
+ const consoleLogger = new console_1.Console(environment.stdout, environment.stderr);
56
+ consoleLogger.info('Loading configuration and step definitions...\n');
54
57
  const { useConfiguration: configuration, runConfiguration } = await (0, load_configuration_1.loadConfiguration)({
55
58
  file: options.config,
56
59
  profiles: options.profile,
@@ -61,7 +64,8 @@ class Cli {
61
64
  const newId = messages_1.IdGenerator.uuid();
62
65
  const runOptions = runConfiguration;
63
66
  const supportCoordinates = 'World' in runOptions.support ? runOptions.support.originalCoordinates : runOptions.support;
64
- const { requirePaths, importPaths } = await (0, paths_1.resolvePaths)(cwd, runOptions.sources, supportCoordinates);
67
+ const logger = new console_logger_1.ConsoleLogger(environment.stderr, enableDebug);
68
+ const { requirePaths, importPaths } = await (0, paths_1.resolvePaths)(logger, cwd, runOptions.sources, supportCoordinates);
65
69
  // Load the step and hook definitions
66
70
  const supportCodeLibrary = 'World' in runOptions.support
67
71
  ? runOptions.support
@@ -73,10 +77,12 @@ class Cli {
73
77
  requireModules: supportCoordinates.requireModules
74
78
  });
75
79
  // Set support to the updated step and hook definitions
76
- // in the supportCodeLibrary
80
+ // in the supportCodeLibrary. We also need to initialize originalCoordinates
81
+ // to support parallel execution.
77
82
  runOptions.support = binding_registry_1.BindingRegistry.instance.updateSupportCodeLibrary(supportCodeLibrary);
83
+ runOptions.support = { ...runOptions.support, ...{ originalCoordinates: supportCoordinates } };
78
84
  // now we can run cucumber
79
- const { success } = await (0, index_2.runCucumber)(runOptions, environment, message_collector_1.default.parseEnvelope.bind(message_collector_1.default));
85
+ const { success } = await (0, run_cucumber_1.runCucumber)(runOptions, environment);
80
86
  return {
81
87
  shouldAdvertisePublish: !runConfiguration.formats.publish &&
82
88
  !configuration.publishQuiet &&
@@ -87,4 +93,4 @@ class Cli {
87
93
  }
88
94
  }
89
95
  exports.default = Cli;
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQWlEO0FBQ2pELHNFQUE0RTtBQUU1RSw0REFBNEU7QUFDNUUsNkRBQXlEO0FBQ3pELDBEQUE0RTtBQUM1RSxvRkFBK0U7QUFDL0UsNERBQWdFO0FBQ2hFLHdFQUEwRTtBQUMxRSxnRUFBMkU7QUFDM0UsbUVBQStEO0FBQy9ELGdFQUF1QztBQUN2QyxzRkFBNkQ7QUFDN0QscUNBQWtDO0FBUWxDLE1BQXFCLEdBQUc7SUFPdkIsWUFBWSxFQUNYLElBQUksRUFDSixHQUFHLEVBQ0gsTUFBTSxFQUNOLE1BQU0sRUFDTixHQUFHLEVBT0g7UUFDQSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRztRQUNSLE1BQU0sSUFBQSxtQ0FBZSxFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLHFCQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRixJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUU7WUFDekIsSUFBSSxDQUFDLE1BQWMsQ0FBQyxLQUFLLENBQUMsSUFBQSxtQkFBWSxHQUFFLENBQUMsQ0FBQztZQUMzQyxPQUFPO2dCQUNOLHNCQUFzQixFQUFFLEtBQUs7Z0JBQzdCLHFCQUFxQixFQUFFLElBQUk7Z0JBQzNCLE9BQU8sRUFBRSxJQUFJO2FBQ2IsQ0FBQztTQUNGO1FBQ0QsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxNQUFjLENBQUMsS0FBSyxDQUFDLElBQUEsa0JBQVcsRUFBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUM5RCxPQUFPO2dCQUNOLHNCQUFzQixFQUFFLEtBQUs7Z0JBQzdCLHFCQUFxQixFQUFFLElBQUk7Z0JBQzNCLE9BQU8sRUFBRSxJQUFJO2FBQ2IsQ0FBQztTQUNGO1FBQ0QsTUFBTSxXQUFXLEdBQUc7WUFDbkIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDYixDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBTyxDQUFDLFdBQVcsQ0FBQyxNQUFhLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUU3RCxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsTUFBTSxJQUFBLHNDQUFpQixFQUNwRjtZQUNDLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTTtZQUNwQixRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDekIsUUFBUSxFQUFFLGlCQUFpQjtTQUMzQixFQUNELFdBQVcsQ0FDWCxDQUFDO1FBRUYsa0JBQWtCO1FBQ2xCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFBLDhCQUFnQixFQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sS0FBSyxHQUFHLHNCQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakMsTUFBTSxVQUFVLEdBQUcsZ0JBQStCLENBQUM7UUFDbkQsTUFBTSxrQkFBa0IsR0FDdkIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDN0YsTUFBTSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLElBQUEsb0JBQVksRUFBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBRXRHLHFDQUFxQztRQUNyQyxNQUFNLGtCQUFrQixHQUN2QixPQUFPLElBQUksVUFBVSxDQUFDLE9BQU87WUFDNUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPO1lBQ3BCLENBQUMsQ0FBQyxNQUFNLElBQUEsK0JBQXFCLEVBQUM7Z0JBQzVCLEdBQUc7Z0JBQ0gsS0FBSztnQkFDTCxZQUFZO2dCQUNaLFdBQVc7Z0JBQ1gsY0FBYyxFQUFFLGtCQUFrQixDQUFDLGNBQWM7YUFDaEQsQ0FBQyxDQUFDO1FBRVAsdURBQXVEO1FBQ3ZELDRCQUE0QjtRQUM1QixVQUFVLENBQUMsT0FBTyxHQUFHLGtDQUFlLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFM0YsMEJBQTBCO1FBQzFCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLElBQUEsbUJBQVcsRUFDcEMsVUFBVSxFQUNWLFdBQVcsRUFDWCwyQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLDJCQUFnQixDQUFDLENBQ3JELENBQUM7UUFDRixPQUFPO1lBQ04sc0JBQXNCLEVBQ3JCLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU87Z0JBQ2pDLENBQUMsYUFBYSxDQUFDLFlBQVk7Z0JBQzNCLENBQUMsSUFBQSxzQkFBYyxFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUM7WUFDakQscUJBQXFCLEVBQUUsYUFBYSxDQUFDLFNBQVM7WUFDOUMsT0FBTztTQUNQLENBQUM7SUFDSCxDQUFDO0NBQ0Q7QUF2R0Qsc0JBdUdDIn0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaURBQWlEO0FBQ2pELHNFQUE0RTtBQUc1RSwyREFBdUQ7QUFDdkQsNkRBQXlEO0FBQ3pELDBEQUE0RTtBQUM1RSxvRkFBK0U7QUFDL0UsNERBQWdFO0FBQ2hFLHdFQUEwRTtBQUMxRSxnRUFBMkU7QUFDM0UsbUVBQStEO0FBQy9ELGdFQUF1QztBQUN2QyxrREFBMEI7QUFFMUIsOEVBQTBFO0FBQzFFLHFDQUFrQztBQVFsQyxNQUFxQixHQUFHO0lBT3ZCLFlBQVksRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILE1BQU0sRUFDTixNQUFNLEVBQ04sR0FBRyxFQU9IO1FBQ0EsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUc7UUFDUixNQUFNLElBQUEsbUNBQWUsR0FBRSxDQUFDO1FBRXhCLE1BQU0sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLEdBQUcscUJBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xGLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBYyxDQUFDLEtBQUssQ0FBQyxJQUFBLG1CQUFZLEdBQUUsQ0FBQyxDQUFDO1lBQzNDLE9BQU87Z0JBQ04sc0JBQXNCLEVBQUUsS0FBSztnQkFDN0IscUJBQXFCLEVBQUUsSUFBSTtnQkFDM0IsT0FBTyxFQUFFLElBQUk7YUFDYixDQUFDO1NB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
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.loadConfiguration = void 0;
7
- const console_1 = require("console");
8
7
  const locate_file_1 = require("@cucumber/cucumber/lib/configuration/locate_file");
9
8
  const index_1 = require("@cucumber/cucumber/lib/configuration/index");
10
9
  const validate_configuration_1 = require("@cucumber/cucumber/lib/configuration/validate_configuration");
@@ -13,6 +12,7 @@ const environment_1 = require("@cucumber/cucumber/lib/api/environment");
13
12
  const chalk_1 = __importDefault(require("chalk"));
14
13
  const helpers_1 = require("../utils/helpers");
15
14
  const gherkin_manager_1 = __importDefault(require("../gherkin/gherkin-manager"));
15
+ const console_logger_1 = require("@cucumber/cucumber/lib/api/console_logger");
16
16
  /**
17
17
  * Load user-authored configuration to be used in a test run.
18
18
  *
@@ -21,10 +21,16 @@ const gherkin_manager_1 = __importDefault(require("../gherkin/gherkin-manager"))
21
21
  * @param environment - Project environment.
22
22
  */
23
23
  const loadConfiguration = async (options = {}, environment = {}) => {
24
- const { cwd, env } = (0, environment_1.mergeEnvironment)(environment);
24
+ const { cwd, stderr, env, debug } = (0, environment_1.mergeEnvironment)(environment);
25
+ const logger = new console_logger_1.ConsoleLogger(stderr, debug);
25
26
  const configFile = options.file ?? (0, locate_file_1.locateFile)(cwd);
26
- const profileConfiguration = configFile ? await (0, index_1.fromFile)(cwd, configFile, options.profiles) : {};
27
- const logger = new console_1.Console(environment.stdout, environment.stderr);
27
+ if (configFile) {
28
+ logger.debug(`Configuration will be loaded from "${configFile}"`);
29
+ }
30
+ else {
31
+ logger.debug('No configuration file found');
32
+ }
33
+ const profileConfiguration = configFile ? await (0, index_1.fromFile)(logger, cwd, configFile, options.profiles) : {};
28
34
  // if a feature was passed in on command line it's added
29
35
  // to the provided configuration as paths. We need to clear
30
36
  // any paths from configuration so that only the feature passed
@@ -84,4 +90,4 @@ const loadConfiguration = async (options = {}, environment = {}) => {
84
90
  };
85
91
  };
86
92
  exports.loadConfiguration = loadConfiguration;
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1jb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9sb2FkLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscUNBQWtDO0FBRWxDLGtGQUE4RTtBQUM5RSxzRUFLb0Q7QUFDcEQsd0dBQW9HO0FBQ3BHLDRGQUF3RjtBQUN4Rix3RUFBMEU7QUFFMUUsa0RBQTBCO0FBQzFCLDhDQUFrRDtBQUNsRCxpRkFBd0Q7QUFheEQ7Ozs7OztHQU1HO0FBQ0ksTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQ3JDLFVBQXFDLEVBQUUsRUFDdkMsY0FBK0IsRUFBRSxFQUNPLEVBQUU7SUFDMUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFBLDhCQUFnQixFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBQSx3QkFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUEsZ0JBQVEsRUFBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2pHLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQU8sQ0FBQyxXQUFXLENBQUMsTUFBYSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUxRSx3REFBd0Q7SUFDeEQsMkRBQTJEO0lBQzNELCtEQUErRDtJQUMvRCxrQkFBa0I7SUFDbEIsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2xFLG9CQUFvQixDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7S0FDaEM7SUFFRCxNQUFNLFFBQVEs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
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1jb25maWd1cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaS9sb2FkLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0Esa0ZBQThFO0FBQzlFLHNFQUtvRDtBQUNwRCx3R0FBb0c7QUFDcEcsNEZBQXdGO0FBQ3hGLHdFQUEwRTtBQUUxRSxrREFBMEI7QUFDMUIsOENBQWtEO0FBQ2xELGlGQUF3RDtBQUV4RCw4RUFBMEU7QUFZMUU7Ozs7OztHQU1HO0FBQ0ksTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQ3JDLFVBQXFDLEVBQUUsRUFDdkMsY0FBK0IsRUFBRSxFQUNPLEVBQUU7SUFDMUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUEsOEJBQWdCLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEUsTUFBTSxNQUFNLEdBQVksSUFBSSw4QkFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUV6RCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUEsd0JBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxJQUFJLFVBQVUsRUFBRTtRQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLFVBQVUsR0FBRyxDQUFDLENBQUM7S0FDbEU7U0FBTTtRQUNOLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztLQUM1QztJQUNELE1BQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUEsZ0JBQVEsRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUV6Ryx3REFBd0Q7SUFDeEQsMkRBQTJEO0lBQzNELCtEQUErRDtJQUMvRCxrQkFBa0I7SUFDbEIsSUFB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
@@ -8,7 +8,6 @@ exports.binding = void 0;
8
8
  const cucumber_1 = require("@cucumber/cucumber");
9
9
  const binding_registry_1 = require("./binding-registry");
10
10
  const step_binding_1 = require("../types/step-binding");
11
- const message_collector_1 = __importDefault(require("./message-collector"));
12
11
  const cucumber_2 = require("@cucumber/cucumber");
13
12
  const underscore_1 = __importDefault(require("underscore"));
14
13
  /**
@@ -76,7 +75,7 @@ const defineParameters = underscore_1.default.once(() => {
76
75
  function bindStepDefinition(stepBinding) {
77
76
  const bindingFunc = function () {
78
77
  const bindingRegistry = binding_registry_1.BindingRegistry.instance;
79
- const scenarioContext = message_collector_1.default.getStepScenarioContext(stepBinding);
78
+ const scenarioContext = global.messageCollector.getStepScenarioContext(stepBinding);
80
79
  if (scenarioContext) {
81
80
  const matchingStepBindings = bindingRegistry.getStepBindings(stepBinding.stepPattern.toString(), scenarioContext.scenarioInfo.tags);
82
81
  if (matchingStepBindings.length > 1) {
@@ -97,7 +96,7 @@ function bindStepDefinition(stepBinding) {
97
96
  return bindingObject[matchingStepBindings[0].targetPropertyKey].apply(bindingObject, arguments);
98
97
  }
99
98
  else {
100
- throw new Error('Unable to find the Scenario Context for Hook!');
99
+ throw new Error('Unable to find the Scenario Context for a Step!');
101
100
  }
102
101
  };
103
102
  Object.defineProperty(bindingFunc, 'length', {
@@ -131,7 +130,7 @@ function bindHook(stepBinding) {
131
130
  return stepBinding.targetPrototype[stepBinding.targetPropertyKey].apply();
132
131
  }
133
132
  : function (arg) {
134
- const scenarioContext = message_collector_1.default.getHookScenarioContext(arg);
133
+ const scenarioContext = global.messageCollector.getHookScenarioContext(arg);
135
134
  if (scenarioContext) {
136
135
  const contextTypes = binding_registry_1.BindingRegistry.instance.getContextTypesForTarget(stepBinding.targetPrototype);
137
136
  const bindingObject = scenarioContext.getOrActivateBindingClass(stepBinding.targetPrototype, contextTypes);
@@ -179,4 +178,4 @@ function bindHook(stepBinding) {
179
178
  }
180
179
  }
181
180
  }
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZy1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3VjdW1iZXIvYmluZGluZy1kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsdUNBQXVDO0FBQ3ZDLGlEQVc0QjtBQUU1Qix5REFBa0U7QUFDbEUsd0RBQXNFO0FBRXRFLDRFQUFtRDtBQUNuRCxpREFBeUQ7QUFDekQsNERBQTJCO0FBSzNCOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLHdCQUF3QixHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0FBRTFFOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixPQUFPLENBQUMsb0JBQW9DO0lBQzNELE9BQU8sQ0FBSSxNQUFtQyxFQUFFLEVBQUU7UUFDakQsZ0JBQWdCLEVBQUUsQ0FBQztRQUNuQixNQUFNLGVBQWUsR0FBRyxrQ0FBZSxDQUFDLFFBQVEsQ0FBQztRQUNqRCxlQUFlLENBQUMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sV0FBVyxHQUFrQixFQUFFLENBQUM7UUFDdEMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFaEYsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNqQyxJQUFJLFdBQVcsQ0FBQyxXQUFXLEdBQUcsK0JBQWdCLENBQUMsZUFBZSxFQUFFO2dCQUMvRCxJQUFJLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ3hGLElBQUksZ0JBQWdCLEtBQUssU0FBUyxFQUFF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
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluZGluZy1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3VjdW1iZXIvYmluZGluZy1kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsdUNBQXVDO0FBQ3ZDLGlEQVc0QjtBQUU1Qix5REFBa0U7QUFDbEUsd0RBQXNFO0FBRXRFLGlEQUF5RDtBQUN6RCw0REFBMkI7QUFLM0I7Ozs7Ozs7R0FPRztBQUNILE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7QUFFMUU7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxvQkFBb0M7SUFDM0QsT0FBTyxDQUFJLE1BQW1DLEVBQUUsRUFBRTtRQUNqRCxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25CLE1BQU0sZUFBZSxHQUFHLGtDQUFlLENBQUMsUUFBUSxDQUFDO1FBQ2pELGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDdEYsTUFBTSxXQUFXLEdBQWtCLEVBQUUsQ0FBQztRQUN0QyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEUsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUVoRixXQUFXLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2pDLElBQUksV0FBVyxDQUFDLFdBQVcsR0FBRywrQkFBZ0IsQ0FBQyxlQUFlLEVBQUU7Z0JBQy9ELElBQUksZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDeEYsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7b0JBQ25DLGdCQUFn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
@@ -1,10 +1,43 @@
1
1
  import * as messages from '@cucumber/messages';
2
2
  import { StepBinding } from '../types/step-binding';
3
3
  import { ManagedScenarioContext } from './managed-scenario-context';
4
- declare class MessageCollector {
4
+ export interface ITestCaseAttempt {
5
+ attempt: number;
6
+ willBeRetried: boolean;
7
+ gherkinDocument: messages.GherkinDocument;
8
+ pickle: messages.Pickle;
9
+ stepAttachments: Record<string, messages.Attachment[]>;
10
+ stepResults: Record<string, messages.TestStepResult>;
11
+ testCase: messages.TestCase;
12
+ worstTestStepResult: messages.TestStepResult;
13
+ }
14
+ /**
15
+ * Custom implementation of the EventDataCollector from cucumber.js
16
+ *
17
+ * This implements all of the functions from the original EventDataCollector along
18
+ * with new functions to support binding to tsFlow tests.
19
+ *
20
+ * By extending the original version we're also reducing the amount of data stored
21
+ * during test runs because the original MessageCollector was capturing the same
22
+ * pickle and testCase data that the EventDataCollector does.
23
+ */
24
+ export default class MessageCollector {
25
+ private gherkinDocumentMap;
5
26
  private pickleMap;
6
27
  private testCaseMap;
28
+ private testCaseAttemptDataMap;
29
+ readonly undefinedParameterTypes: messages.UndefinedParameterType[];
7
30
  private testCaseRunningMap;
31
+ addPickleAndTestCase(pickle: messages.Pickle, testCase: messages.TestCase): void;
32
+ getGherkinDocument(uri: string): messages.GherkinDocument;
33
+ getPickle(pickleId: string): messages.Pickle;
34
+ getTestCaseAttempts(): ITestCaseAttempt[];
35
+ getTestCaseAttempt(testCaseStartedId: string): ITestCaseAttempt;
36
+ parseEnvelope(envelope: messages.Envelope): void;
37
+ private initTestCaseAttempt;
38
+ storeAttachment(attachment: messages.Attachment): void;
39
+ storeTestStepResult({ testCaseStartedId, testStepId, testStepResult }: messages.TestStepFinished): void;
40
+ storeTestCaseResult({ testCaseStartedId, willBeRetried }: messages.TestCaseFinished): void;
8
41
  /**
9
42
  * Gets the Pickle from hook parameters passed in from Cucumber
10
43
  * to find a matching Pickle (scenario) and return the scenario Context
@@ -19,12 +52,6 @@ declare class MessageCollector {
19
52
  * @returns
20
53
  */
21
54
  getStepScenarioContext(stepBinding: StepBinding): ManagedScenarioContext | undefined;
22
- /**
23
- * Passed into runCucumber as a callback for all messages.
24
- * Capture the ones we care about
25
- * @param envelope
26
- */
27
- parseEnvelope(envelope: messages.Envelope): void;
28
55
  /**
29
56
  * Called when a test case (scenario) starts. Intercepting
30
57
  * this message to initialize a new ScenarioContext
@@ -51,5 +78,3 @@ declare class MessageCollector {
51
78
  */
52
79
  private stepHasTags;
53
80
  }
54
- declare const messageCollector: MessageCollector;
55
- export default messageCollector;