@lynxwall/cucumber-tsflow 6.1.1 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +62 -21
  2. package/lib/behave.d.ts +1 -1
  3. package/lib/behave.js +27 -27
  4. package/lib/cli/argv-parser.d.ts +24 -24
  5. package/lib/cli/argv-parser.js +103 -103
  6. package/lib/cli/index.d.ts +21 -22
  7. package/lib/cli/index.js +95 -101
  8. package/lib/cli/load-configuration.d.ts +20 -20
  9. package/lib/cli/load-configuration.js +101 -90
  10. package/lib/cli/run.d.ts +1 -1
  11. package/lib/cli/run.js +49 -47
  12. package/lib/cucumber/binding-decorator.d.ts +10 -10
  13. package/lib/cucumber/binding-decorator.js +180 -180
  14. package/lib/cucumber/binding-registry.d.ts +82 -82
  15. package/lib/cucumber/binding-registry.js +215 -215
  16. package/lib/cucumber/hook-decorators.d.ts +46 -46
  17. package/lib/cucumber/hook-decorators.js +102 -102
  18. package/lib/cucumber/managed-scenario-context.d.ts +21 -21
  19. package/lib/cucumber/managed-scenario-context.js +95 -95
  20. package/lib/cucumber/message-collector.d.ts +81 -81
  21. package/lib/cucumber/message-collector.js +250 -250
  22. package/lib/cucumber/parallel/coordinator.d.ts +79 -79
  23. package/lib/cucumber/parallel/coordinator.js +246 -246
  24. package/lib/cucumber/parallel/run-worker.d.ts +1 -1
  25. package/lib/cucumber/parallel/run-worker.js +31 -31
  26. package/lib/cucumber/parallel/worker.d.ts +30 -30
  27. package/lib/cucumber/parallel/worker.js +103 -103
  28. package/lib/cucumber/run-cucumber.d.ts +14 -14
  29. package/lib/cucumber/run-cucumber.js +118 -118
  30. package/lib/cucumber/runtime.d.ts +25 -25
  31. package/lib/cucumber/runtime.js +39 -39
  32. package/lib/cucumber/step-definition-decorators.d.ts +24 -24
  33. package/lib/cucumber/step-definition-decorators.js +91 -91
  34. package/lib/cucumber/utils.d.ts +16 -16
  35. package/lib/cucumber/utils.js +77 -77
  36. package/lib/esnode.js +18 -18
  37. package/lib/esvue.d.ts +1 -1
  38. package/lib/esvue.js +40 -40
  39. package/lib/formatters/behave-json-formatter.d.ts +49 -49
  40. package/lib/formatters/behave-json-formatter.js +74 -74
  41. package/lib/formatters/tsflow-snippet-syntax.d.ts +9 -9
  42. package/lib/formatters/tsflow-snippet-syntax.js +89 -89
  43. package/lib/gherkin/configuration.d.ts +30 -30
  44. package/lib/gherkin/configuration.js +26 -26
  45. package/lib/gherkin/gherkin-feature.d.ts +28 -28
  46. package/lib/gherkin/gherkin-feature.js +352 -352
  47. package/lib/gherkin/gherkin-manager.d.ts +29 -29
  48. package/lib/gherkin/gherkin-manager.js +143 -143
  49. package/lib/gherkin/models.d.ts +46 -46
  50. package/lib/gherkin/models.js +2 -2
  51. package/lib/index.d.ts +4 -4
  52. package/lib/index.js +22 -22
  53. package/lib/snippet.d.ts +1 -1
  54. package/lib/snippet.js +27 -27
  55. package/lib/transpilers/esbuild-transpiler.d.ts +4 -4
  56. package/lib/transpilers/esbuild-transpiler.js +18 -18
  57. package/lib/transpilers/esbuild.d.ts +12 -12
  58. package/lib/transpilers/esbuild.js +54 -54
  59. package/lib/transpilers/vue-sfc/compiler.d.ts +7 -7
  60. package/lib/transpilers/vue-sfc/compiler.js +21 -21
  61. package/lib/transpilers/vue-sfc/index.d.ts +23 -23
  62. package/lib/transpilers/vue-sfc/index.js +46 -46
  63. package/lib/transpilers/vue-sfc/main.d.ts +8 -8
  64. package/lib/transpilers/vue-sfc/main.js +247 -247
  65. package/lib/transpilers/vue-sfc/script.d.ts +5 -5
  66. package/lib/transpilers/vue-sfc/script.js +41 -41
  67. package/lib/transpilers/vue-sfc/template.d.ts +8 -8
  68. package/lib/transpilers/vue-sfc/template.js +101 -101
  69. package/lib/transpilers/vue-sfc/types.d.ts +55 -55
  70. package/lib/transpilers/vue-sfc/types.js +2 -2
  71. package/lib/transpilers/vue-sfc/utils/descriptorCache.d.ts +13 -13
  72. package/lib/transpilers/vue-sfc/utils/descriptorCache.js +67 -67
  73. package/lib/transpilers/vue-sfc/utils/error.d.ts +3 -3
  74. package/lib/transpilers/vue-sfc/utils/error.js +22 -22
  75. package/lib/transpilers/vue-sfc/utils/query.d.ts +13 -13
  76. package/lib/transpilers/vue-sfc/utils/query.js +35 -35
  77. package/lib/tsnode.js +17 -17
  78. package/lib/tsvue.d.ts +1 -1
  79. package/lib/tsvue.js +39 -39
  80. package/lib/types/scenario-context.d.ts +16 -16
  81. package/lib/types/scenario-context.js +17 -17
  82. package/lib/types/scenario-info.d.ts +16 -16
  83. package/lib/types/scenario-info.js +22 -22
  84. package/lib/types/step-binding-flags.d.ts +53 -53
  85. package/lib/types/step-binding-flags.js +59 -59
  86. package/lib/types/step-binding.d.ts +50 -50
  87. package/lib/types/step-binding.js +17 -17
  88. package/lib/types/types.d.ts +21 -21
  89. package/lib/types/types.js +2 -2
  90. package/lib/utils/helpers.d.ts +6 -6
  91. package/lib/utils/helpers.js +17 -17
  92. package/lib/utils/logger.d.ts +3 -3
  93. package/lib/utils/logger.js +29 -29
  94. package/lib/utils/our-callsite.d.ts +27 -27
  95. package/lib/utils/our-callsite.js +72 -72
  96. package/lib/version.d.ts +1 -1
  97. package/lib/version.js +5 -5
  98. package/package.json +11 -11
@@ -1,29 +1,29 @@
1
- import { ParsedFeature } from './models';
2
- declare class StepInfo {
3
- constructor(name: string);
4
- name: string;
5
- text: string;
6
- tags: string;
7
- }
8
- export default class GherkinManager {
9
- private features;
10
- private gherkinFeature;
11
- loadFeatures: (paths: string[]) => Promise<void>;
12
- /**
13
- * Attempts to find a feature based on the steps found in
14
- * a steps test file
15
- * @param filePath
16
- * @returns
17
- */
18
- findFeaturesByStepFile: (filePath: string) => Array<ParsedFeature>;
19
- generateKey: (name: string, tags: string[]) => string;
20
- /**
21
- * extracts 'given', 'when', 'then' step text and tags from
22
- * the file passed in.
23
- * @param filePath
24
- * @returns
25
- */
26
- parseSteps: (filePath: string) => StepInfo[];
27
- isHook: (stepName: string) => boolean;
28
- }
29
- export {};
1
+ import { ParsedFeature } from './models';
2
+ declare class StepInfo {
3
+ constructor(name: string);
4
+ name: string;
5
+ text: string;
6
+ tags: string;
7
+ }
8
+ export default class GherkinManager {
9
+ private features;
10
+ private gherkinFeature;
11
+ loadFeatures: (paths: string[]) => Promise<void>;
12
+ /**
13
+ * Attempts to find a feature based on the steps found in
14
+ * a steps test file
15
+ * @param filePath
16
+ * @returns
17
+ */
18
+ findFeaturesByStepFile: (filePath: string) => Array<ParsedFeature>;
19
+ generateKey: (name: string, tags: string[]) => string;
20
+ /**
21
+ * extracts 'given', 'when', 'then' step text and tags from
22
+ * the file passed in.
23
+ * @param filePath
24
+ * @returns
25
+ */
26
+ parseSteps: (filePath: string) => StepInfo[];
27
+ isHook: (stepName: string) => boolean;
28
+ }
29
+ export {};
@@ -1,143 +1,143 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const fs_1 = require("fs");
7
- const gherkin_feature_1 = __importDefault(require("./gherkin-feature"));
8
- const helpers_1 = require("../utils/helpers");
9
- const utils_1 = require("../cucumber/utils");
10
- class StepInfo {
11
- constructor(name) {
12
- this.name = name;
13
- }
14
- name;
15
- text = '';
16
- tags = '';
17
- }
18
- class GherkinManager {
19
- features = [];
20
- gherkinFeature = new gherkin_feature_1.default();
21
- loadFeatures = async (paths) => {
22
- for (let idx = 0; idx < paths.length; idx++) {
23
- const features = await this.gherkinFeature.loadFeatures(paths[idx]);
24
- this.features = [...this.features, ...features];
25
- }
26
- };
27
- /**
28
- * Attempts to find a feature based on the steps found in
29
- * a steps test file
30
- * @param filePath
31
- * @returns
32
- */
33
- findFeaturesByStepFile = (filePath) => {
34
- const featuresResult = new Array();
35
- const fileSteps = this.parseSteps(filePath);
36
- for (let idx = 0; idx < this.features.length; idx++) {
37
- const feature = this.features[idx];
38
- for (let sIdx = 0; sIdx < feature.scenarios.length; sIdx++) {
39
- const scenario = feature.scenarios[sIdx];
40
- for (let stIdx = 0; stIdx < scenario.steps.length; stIdx++) {
41
- const step = scenario.steps[stIdx];
42
- if (['given', 'when', 'then'].find(x => x === step.keyword)) {
43
- const fileStep = fileSteps.find(s => (0, utils_1.hasMatchingStep)(s.text, step.stepText));
44
- if (fileStep) {
45
- // if we have tags on the step binding check to see if it matches one in the
46
- // current scenario, which also includes tags associated with the feature
47
- if ((0, helpers_1.hasStringValue)(fileStep.tags)) {
48
- if (scenario.tags.length > 0 && (0, utils_1.hasMatchingTags)(fileStep.tags, scenario.tags)) {
49
- featuresResult.push(feature);
50
- }
51
- }
52
- else {
53
- featuresResult.push(feature);
54
- }
55
- }
56
- }
57
- if (featuresResult.includes(feature))
58
- break;
59
- }
60
- if (featuresResult.includes(feature))
61
- break;
62
- }
63
- for (let oIdx = 0; oIdx < feature.scenarioOutlines.length; oIdx++) {
64
- const scenarioOutline = feature.scenarioOutlines[oIdx];
65
- if (scenarioOutline.exampleScenarios && (scenarioOutline.exampleScenarios?.length ?? 0 > 0)) {
66
- const outlineSteps = scenarioOutline.exampleScenarios[0].steps;
67
- for (let osIdx = 0; osIdx < outlineSteps.length; osIdx++) {
68
- const step = outlineSteps[osIdx];
69
- if (['given', 'when', 'then'].find(x => x === step.keyword)) {
70
- const fileStep = fileSteps.find(s => (0, utils_1.hasMatchingStep)(s.text, step.stepText));
71
- if (fileStep) {
72
- // if we have tags on the step binding check to see if it matches one in the
73
- // current scenario, which also includes tags associated with the feature
74
- if ((0, helpers_1.hasStringValue)(fileStep.tags)) {
75
- if (scenarioOutline.tags.length > 0 && (0, utils_1.hasMatchingTags)(fileStep.tags, scenarioOutline.tags)) {
76
- featuresResult.push(feature);
77
- }
78
- }
79
- else {
80
- featuresResult.push(feature);
81
- }
82
- }
83
- }
84
- if (featuresResult.includes(feature))
85
- break;
86
- }
87
- if (featuresResult.includes(feature))
88
- break;
89
- }
90
- }
91
- }
92
- return featuresResult;
93
- };
94
- generateKey = (name, tags) => {
95
- return `${name}:${tags.map(tag => tag.toLowerCase()).join(',')}`;
96
- };
97
- /**
98
- * extracts 'given', 'when', 'then' step text and tags from
99
- * the file passed in.
100
- * @param filePath
101
- * @returns
102
- */
103
- parseSteps = (filePath) => {
104
- const stepNames = ['before', 'beforestep', 'given', 'when', 'then', 'afterstep', 'after'];
105
- const steps = new Array();
106
- const stepText = (0, fs_1.readFileSync)(filePath, 'utf8');
107
- // get all of the decorator strings
108
- const stepDecorators = stepText.match(/@\w*\(([^()]+)\)/g);
109
- stepDecorators?.forEach(decorator => {
110
- const stepName = stepNames.find(x => decorator.toLowerCase().indexOf(x) >= 0);
111
- if (stepName) {
112
- const stepInfo = new StepInfo(stepName);
113
- // extract strings from inside decorator parens,
114
- // can be wrapped in single or double quotes
115
- const stepParams = decorator.match(/["']\s*([^"']+?)\s*["']/g);
116
- if (stepParams && stepParams.length > 0) {
117
- // first param in hooks is the tags parameter
118
- if (this.isHook(stepName)) {
119
- stepInfo.tags = stepParams[0].substring(1, stepParams[0].length - 1);
120
- }
121
- else {
122
- // steps support four parameters with last three optional
123
- // first is the pattern and second is a tag, which are the
124
- // two peices of information we need to make a match
125
- stepInfo.text = stepParams[0].substring(1, stepParams[0].length - 1);
126
- if (stepParams.length > 1 && (0, helpers_1.hasStringValue)(stepParams[1])) {
127
- stepInfo.tags = stepParams[1].substring(1, stepParams[1].length - 1);
128
- }
129
- }
130
- }
131
- steps.push(stepInfo);
132
- }
133
- });
134
- return steps;
135
- };
136
- isHook = (stepName) => {
137
- const hookNames = ['beforeall', 'before', 'beforestep', 'afterstep', 'after', 'afterall'];
138
- const match = hookNames.find(x => stepName.toLowerCase().indexOf(x) >= 0);
139
- return match != undefined;
140
- };
141
- }
142
- exports.default = GherkinManager;
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2hlcmtpbi1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2doZXJraW4vZ2hlcmtpbi1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkJBQWtDO0FBQ2xDLHdFQUErQztBQUUvQyw4Q0FBa0Q7QUFDbEQsNkNBQXFFO0FBRXJFLE1BQU0sUUFBUTtJQUNiLFlBQVksSUFBWTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBSSxDQUFTO0lBQ2IsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixJQUFJLEdBQVcsRUFBRSxDQUFDO0NBQ2xCO0FBRUQsTUFBcUIsY0FBYztJQUMxQixRQUFRLEdBQXlCLEVBQUUsQ0FBQztJQUNwQyxjQUFjLEdBQUcsSUFBSSx5QkFBYyxFQUFFLENBQUM7SUFFdkMsWUFBWSxHQUFHLEtBQUssRUFBRSxLQUFlLEVBQWlCLEVBQUU7UUFDOUQsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDNUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7U0FDaEQ7SUFDRixDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNJLHNCQUFzQixHQUFHLENBQUMsUUFBZ0IsRUFBd0IsRUFBRTtRQUMxRSxNQUFNLGNBQWMsR0FBRyxJQUFJLEtBQUssRUFBaUIsQ0FBQztRQUVsRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDM0QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUMzRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNuQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUM1RCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBQSx1QkFBZSxFQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7d0JBQzdFLElBQUksUUFBUSxFQUFFOzRCQUNiLDRFQUE0RTs0QkFDNUUseUVBQXlFOzRCQUN6RSxJQUFJLElBQUEsd0JBQWMsRUFBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0NBQ2xDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUEsdUJBQWUsRUFBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQ0FDOUUsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQ0FDN0I7NkJBQ0Q7aUNBQU07Z0NBQ04sY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzs2QkFDN0I7eUJBQ0Q7cUJBQ0Q7b0JBQ0QsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQzt3QkFBRSxNQUFNO2lCQUM1QztnQkFDRCxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO29CQUFFLE1BQU07YUFDNUM7WUFDRCxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDbEUsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLGVBQWUsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUM1RixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO29CQUMvRCxLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTt3QkFDekQsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNqQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFOzRCQUM1RCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBQSx1QkFBZSxFQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7NEJBQzdFLElBQUksUUFBUSxFQUFFO2dDQUNiLDRFQUE0RTtnQ0FDNUUseUVBQXlFO2dDQUN6RSxJQUFJLElBQUEsd0JBQWMsRUFBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7b0NBQ2xDLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUEsdUJBQWUsRUFBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRTt3Q0FDNUYsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQ0FDN0I7aUNBQ0Q7cUNBQU07b0NBQ04sY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQ0FDN0I7NkJBQ0Q7eUJBQ0Q7d0JBQ0QsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQzs0QkFBRSxNQUFNO3FCQUM1QztvQkFDRCxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO3dCQUFFLE1BQU07aUJBQzVDO2FBQ0Q7U0FDRDtRQUNELE9BQU8sY0FBYyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztJQUVGLFdBQVcsR0FBRyxDQUFDLElBQVksRUFBRSxJQUFjLEVBQVUsRUFBRTtRQUN0RCxPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNsRSxDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNILFVBQVUsR0FBRyxDQUFDLFFBQWdCLEVBQWMsRUFBRTtRQUM3QyxNQUFNLFNBQVMsR0FBRyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFGLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFZLENBQUM7UUFDcEMsTUFBTSxRQUFRLEdBQVcsSUFBQSxpQkFBWSxFQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4RCxtQ0FBbUM7UUFDbkMsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzNELGNBQWMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDbkMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDOUUsSUFBSSxRQUFRLEVBQUU7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3hDLGdEQUFnRDtnQkFDaEQsNENBQTRDO2dCQUM1QyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7Z0JBQy9ELElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUN4Qyw2Q0FBNkM7b0JBQzdDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDMUIsUUFBUSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO3FCQUNyRTt5QkFBTTt3QkFDTix5REFBeUQ7d0JBQ3pELDBEQUEwRDt3QkFDMUQsb0RBQW9EO3dCQUNwRCxRQUFRLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0JBQ3JFLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBQSx3QkFBYyxFQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFOzRCQUMzRCxRQUFRLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7eUJBQ3JFO3FCQUNEO2lCQUNEO2dCQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDckI7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUYsTUFBTSxHQUFHLENBQUMsUUFBZ0IsRUFBVyxFQUFFO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMxRixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxRSxPQUFPLEtBQUssSUFBSSxTQUFTLENBQUM7SUFDM0IsQ0FBQyxDQUFDO0NBQ0Y7QUEzSEQsaUNBMkhDIn0=
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = require("fs");
7
+ const gherkin_feature_1 = __importDefault(require("./gherkin-feature"));
8
+ const helpers_1 = require("../utils/helpers");
9
+ const utils_1 = require("../cucumber/utils");
10
+ class StepInfo {
11
+ constructor(name) {
12
+ this.name = name;
13
+ }
14
+ name;
15
+ text = '';
16
+ tags = '';
17
+ }
18
+ class GherkinManager {
19
+ features = [];
20
+ gherkinFeature = new gherkin_feature_1.default();
21
+ loadFeatures = async (paths) => {
22
+ for (let idx = 0; idx < paths.length; idx++) {
23
+ const features = await this.gherkinFeature.loadFeatures(paths[idx]);
24
+ this.features = [...this.features, ...features];
25
+ }
26
+ };
27
+ /**
28
+ * Attempts to find a feature based on the steps found in
29
+ * a steps test file
30
+ * @param filePath
31
+ * @returns
32
+ */
33
+ findFeaturesByStepFile = (filePath) => {
34
+ const featuresResult = new Array();
35
+ const fileSteps = this.parseSteps(filePath);
36
+ for (let idx = 0; idx < this.features.length; idx++) {
37
+ const feature = this.features[idx];
38
+ for (let sIdx = 0; sIdx < feature.scenarios.length; sIdx++) {
39
+ const scenario = feature.scenarios[sIdx];
40
+ for (let stIdx = 0; stIdx < scenario.steps.length; stIdx++) {
41
+ const step = scenario.steps[stIdx];
42
+ if (['given', 'when', 'then', 'and'].find(x => x === step.keyword)) {
43
+ const fileStep = fileSteps.find(s => (0, utils_1.hasMatchingStep)(s.text, step.stepText));
44
+ if (fileStep) {
45
+ // if we have tags on the step binding check to see if it matches one in the
46
+ // current scenario, which also includes tags associated with the feature
47
+ if ((0, helpers_1.hasStringValue)(fileStep.tags)) {
48
+ if (scenario.tags.length > 0 && (0, utils_1.hasMatchingTags)(fileStep.tags, scenario.tags)) {
49
+ featuresResult.push(feature);
50
+ }
51
+ }
52
+ else {
53
+ featuresResult.push(feature);
54
+ }
55
+ }
56
+ }
57
+ if (featuresResult.includes(feature))
58
+ break;
59
+ }
60
+ if (featuresResult.includes(feature))
61
+ break;
62
+ }
63
+ for (let oIdx = 0; oIdx < feature.scenarioOutlines.length; oIdx++) {
64
+ const scenarioOutline = feature.scenarioOutlines[oIdx];
65
+ if (scenarioOutline.exampleScenarios && (scenarioOutline.exampleScenarios?.length ?? 0 > 0)) {
66
+ const outlineSteps = scenarioOutline.exampleScenarios[0].steps;
67
+ for (let osIdx = 0; osIdx < outlineSteps.length; osIdx++) {
68
+ const step = outlineSteps[osIdx];
69
+ if (['given', 'when', 'then', 'and'].find(x => x === step.keyword)) {
70
+ const fileStep = fileSteps.find(s => (0, utils_1.hasMatchingStep)(s.text, step.stepText));
71
+ if (fileStep) {
72
+ // if we have tags on the step binding check to see if it matches one in the
73
+ // current scenario, which also includes tags associated with the feature
74
+ if ((0, helpers_1.hasStringValue)(fileStep.tags)) {
75
+ if (scenarioOutline.tags.length > 0 && (0, utils_1.hasMatchingTags)(fileStep.tags, scenarioOutline.tags)) {
76
+ featuresResult.push(feature);
77
+ }
78
+ }
79
+ else {
80
+ featuresResult.push(feature);
81
+ }
82
+ }
83
+ }
84
+ if (featuresResult.includes(feature))
85
+ break;
86
+ }
87
+ if (featuresResult.includes(feature))
88
+ break;
89
+ }
90
+ }
91
+ }
92
+ return featuresResult;
93
+ };
94
+ generateKey = (name, tags) => {
95
+ return `${name}:${tags.map(tag => tag.toLowerCase()).join(',')}`;
96
+ };
97
+ /**
98
+ * extracts 'given', 'when', 'then' step text and tags from
99
+ * the file passed in.
100
+ * @param filePath
101
+ * @returns
102
+ */
103
+ parseSteps = (filePath) => {
104
+ const stepNames = ['before', 'beforestep', 'given', 'when', 'then', 'afterstep', 'after'];
105
+ const steps = new Array();
106
+ const stepText = (0, fs_1.readFileSync)(filePath, 'utf8');
107
+ // get all of the decorator strings
108
+ const stepDecorators = stepText.match(/@\w*\(([^()]+)\)/g);
109
+ stepDecorators?.forEach(decorator => {
110
+ const stepName = stepNames.find(x => decorator.toLowerCase().indexOf(x) >= 0);
111
+ if (stepName) {
112
+ const stepInfo = new StepInfo(stepName);
113
+ // extract strings from inside decorator parens,
114
+ // can be wrapped in single or double quotes
115
+ const stepParams = decorator.match(/["']\s*([^"']+?)\s*["']/g);
116
+ if (stepParams && stepParams.length > 0) {
117
+ // first param in hooks is the tags parameter
118
+ if (this.isHook(stepName)) {
119
+ stepInfo.tags = stepParams[0].substring(1, stepParams[0].length - 1);
120
+ }
121
+ else {
122
+ // steps support four parameters with last three optional
123
+ // first is the pattern and second is a tag, which are the
124
+ // two peices of information we need to make a match
125
+ stepInfo.text = stepParams[0].substring(1, stepParams[0].length - 1);
126
+ if (stepParams.length > 1 && (0, helpers_1.hasStringValue)(stepParams[1])) {
127
+ stepInfo.tags = stepParams[1].substring(1, stepParams[1].length - 1);
128
+ }
129
+ }
130
+ }
131
+ steps.push(stepInfo);
132
+ }
133
+ });
134
+ return steps;
135
+ };
136
+ isHook = (stepName) => {
137
+ const hookNames = ['beforeall', 'before', 'beforestep', 'afterstep', 'after', 'afterall'];
138
+ const match = hookNames.find(x => stepName.toLowerCase().indexOf(x) >= 0);
139
+ return match != undefined;
140
+ };
141
+ }
142
+ exports.default = GherkinManager;
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2hlcmtpbi1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2doZXJraW4vZ2hlcmtpbi1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkJBQWtDO0FBQ2xDLHdFQUErQztBQUUvQyw4Q0FBa0Q7QUFDbEQsNkNBQXFFO0FBRXJFLE1BQU0sUUFBUTtJQUNiLFlBQVksSUFBWTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBSSxDQUFTO0lBQ2IsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixJQUFJLEdBQVcsRUFBRSxDQUFDO0NBQ2xCO0FBRUQsTUFBcUIsY0FBYztJQUMxQixRQUFRLEdBQXlCLEVBQUUsQ0FBQztJQUNwQyxjQUFjLEdBQUcsSUFBSSx5QkFBYyxFQUFFLENBQUM7SUFFdkMsWUFBWSxHQUFHLEtBQUssRUFBRSxLQUFlLEVBQWlCLEVBQUU7UUFDOUQsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDNUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7U0FDaEQ7SUFDRixDQUFDLENBQUM7SUFFRjs7Ozs7T0FLRztJQUNJLHNCQUFzQixHQUFHLENBQUMsUUFBZ0IsRUFBd0IsRUFBRTtRQUMxRSxNQUFNLGNBQWMsR0FBRyxJQUFJLEtBQUssRUFBaUIsQ0FBQztRQUVsRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDM0QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUMzRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNuQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTt3QkFDbkUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUEsdUJBQWUsRUFBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO3dCQUM3RSxJQUFJLFFBQVEsRUFBRTs0QkFDYiw0RUFBNEU7NEJBQzVFLHlFQUF5RTs0QkFDekUsSUFBSSxJQUFBLHdCQUFjLEVBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO2dDQUNsQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFBLHVCQUFlLEVBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7b0NBQzlFLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7aUNBQzdCOzZCQUNEO2lDQUFNO2dDQUNOLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7NkJBQzdCO3lCQUNEO3FCQUNEO29CQUNELElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7d0JBQUUsTUFBTTtpQkFDNUM7Z0JBQ0QsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztvQkFBRSxNQUFNO2FBQzVDO1lBQ0QsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ2xFLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxlQUFlLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDNUYsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztvQkFDL0QsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7d0JBQ3pELE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDakMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7NEJBQ25FLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFBLHVCQUFlLEVBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzs0QkFDN0UsSUFBSSxRQUFRLEVBQUU7Z0NBQ2IsNEVBQTRFO2dDQUM1RSx5RUFBeUU7Z0NBQ3pFLElBQUksSUFBQSx3QkFBYyxFQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQ0FDbEMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBQSx1QkFBZSxFQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFO3dDQUM1RixjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FDQUM3QjtpQ0FDRDtxQ0FBTTtvQ0FDTixjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lDQUM3Qjs2QkFDRDt5QkFDRDt3QkFDRCxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDOzRCQUFFLE1BQU07cUJBQzVDO29CQUNELElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7d0JBQUUsTUFBTTtpQkFDNUM7YUFDRDtTQUNEO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDdkIsQ0FBQyxDQUFDO0lBRUYsV0FBVyxHQUFHLENBQUMsSUFBWSxFQUFFLElBQWMsRUFBVSxFQUFFO1FBQ3RELE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ2xFLENBQUMsQ0FBQztJQUVGOzs7OztPQUtHO0lBQ0gsVUFBVSxHQUFHLENBQUMsUUFBZ0IsRUFBYyxFQUFFO1FBQzdDLE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUYsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQVksQ0FBQztRQUNwQyxNQUFNLFFBQVEsR0FBVyxJQUFBLGlCQUFZLEVBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELG1DQUFtQztRQUNuQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0QsY0FBYyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNuQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM5RSxJQUFJLFFBQVEsRUFBRTtnQkFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDeEMsZ0RBQWdEO2dCQUNoRCw0Q0FBNEM7Z0JBQzVDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3hDLDZDQUE2QztvQkFDN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUMxQixRQUFRLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7cUJBQ3JFO3lCQUFNO3dCQUNOLHlEQUF5RDt3QkFDekQsMERBQTBEO3dCQUMxRCxvREFBb0Q7d0JBQ3BELFFBQVEsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQzt3QkFDckUsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFBLHdCQUFjLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzNELFFBQVEsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQzt5QkFDckU7cUJBQ0Q7aUJBQ0Q7Z0JBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNyQjtRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxLQUFLLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRixNQUFNLEdBQUcsQ0FBQyxRQUFnQixFQUFXLEVBQUU7UUFDdEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFGLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sS0FBSyxJQUFJLFNBQVMsQ0FBQztJQUMzQixDQUFDLENBQUM7Q0FDRjtBQTNIRCxpQ0EySEMifQ==
@@ -1,46 +1,46 @@
1
- import { ManagedScenarioContext } from '../cucumber/managed-scenario-context';
2
- import { Options } from './configuration';
3
- export type StepFromStepDefinitions = {
4
- stepMatcher: string | RegExp;
5
- stepFunction(stepArguments?: any): void | PromiseLike<any>;
6
- };
7
- export type ScenarioFromStepDefinitions = {
8
- title: string;
9
- steps: StepFromStepDefinitions[];
10
- };
11
- export type FeatureFromStepDefinitions = {
12
- title: string;
13
- scenarios: ScenarioFromStepDefinitions[];
14
- };
15
- export type ParsedStep = {
16
- keyword: string;
17
- stepText: string;
18
- stepArgument: string | {};
19
- lineNumber: number;
20
- };
21
- export type ParsedScenario = {
22
- title: string;
23
- steps: ParsedStep[];
24
- tags: string[];
25
- exampleRow: any | undefined;
26
- lineNumber: number;
27
- skippedViaTagFilter: boolean;
28
- scenarioContext: ManagedScenarioContext | undefined;
29
- };
30
- export type ParsedScenarioOutline = {
31
- title: string;
32
- tags: string[];
33
- exampleScenarios: ParsedScenario[];
34
- steps: ParsedStep[];
35
- lineNumber: number;
36
- skippedViaTagFilter: boolean;
37
- scenarioContext: ManagedScenarioContext | undefined;
38
- };
39
- export type ParsedFeature = {
40
- title: string;
41
- featureFile: string;
42
- scenarios: ParsedScenario[];
43
- scenarioOutlines: ParsedScenarioOutline[];
44
- options: Options;
45
- tags: string[];
46
- };
1
+ import { ManagedScenarioContext } from '../cucumber/managed-scenario-context';
2
+ import { Options } from './configuration';
3
+ export type StepFromStepDefinitions = {
4
+ stepMatcher: string | RegExp;
5
+ stepFunction(stepArguments?: any): void | PromiseLike<any>;
6
+ };
7
+ export type ScenarioFromStepDefinitions = {
8
+ title: string;
9
+ steps: StepFromStepDefinitions[];
10
+ };
11
+ export type FeatureFromStepDefinitions = {
12
+ title: string;
13
+ scenarios: ScenarioFromStepDefinitions[];
14
+ };
15
+ export type ParsedStep = {
16
+ keyword: string;
17
+ stepText: string;
18
+ stepArgument: string | {};
19
+ lineNumber: number;
20
+ };
21
+ export type ParsedScenario = {
22
+ title: string;
23
+ steps: ParsedStep[];
24
+ tags: string[];
25
+ exampleRow: any | undefined;
26
+ lineNumber: number;
27
+ skippedViaTagFilter: boolean;
28
+ scenarioContext: ManagedScenarioContext | undefined;
29
+ };
30
+ export type ParsedScenarioOutline = {
31
+ title: string;
32
+ tags: string[];
33
+ exampleScenarios: ParsedScenario[];
34
+ steps: ParsedStep[];
35
+ lineNumber: number;
36
+ skippedViaTagFilter: boolean;
37
+ scenarioContext: ManagedScenarioContext | undefined;
38
+ };
39
+ export type ParsedFeature = {
40
+ title: string;
41
+ featureFile: string;
42
+ scenarios: ParsedScenario[];
43
+ scenarioOutlines: ParsedScenarioOutline[];
44
+ options: Options;
45
+ tags: string[];
46
+ };
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2doZXJraW4vbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
package/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './cucumber/binding-decorator';
2
- export * from './cucumber/hook-decorators';
3
- export * from './cucumber/step-definition-decorators';
4
- export { ScenarioContext, ScenarioInfo } from './types/scenario-context';
1
+ export * from './cucumber/binding-decorator';
2
+ export * from './cucumber/hook-decorators';
3
+ export * from './cucumber/step-definition-decorators';
4
+ export { ScenarioContext, ScenarioInfo } from './types/scenario-context';
package/lib/index.js CHANGED
@@ -1,23 +1,23 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.ScenarioInfo = void 0;
18
- __exportStar(require("./cucumber/binding-decorator"), exports);
19
- __exportStar(require("./cucumber/hook-decorators"), exports);
20
- __exportStar(require("./cucumber/step-definition-decorators"), exports);
21
- var scenario_context_1 = require("./types/scenario-context");
22
- Object.defineProperty(exports, "ScenarioInfo", { enumerable: true, get: function () { return scenario_context_1.ScenarioInfo; } });
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ScenarioInfo = void 0;
18
+ __exportStar(require("./cucumber/binding-decorator"), exports);
19
+ __exportStar(require("./cucumber/hook-decorators"), exports);
20
+ __exportStar(require("./cucumber/step-definition-decorators"), exports);
21
+ var scenario_context_1 = require("./types/scenario-context");
22
+ Object.defineProperty(exports, "ScenarioInfo", { enumerable: true, get: function () { return scenario_context_1.ScenarioInfo; } });
23
23
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrREFBNkM7QUFDN0MsNkRBQTJDO0FBQzNDLHdFQUFzRDtBQUN0RCw2REFBeUU7QUFBL0MsZ0hBQUEsWUFBWSxPQUFBIn0=
package/lib/snippet.d.ts CHANGED
@@ -1 +1 @@
1
- export {};
1
+ export {};
package/lib/snippet.js CHANGED
@@ -1,28 +1,28 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const tsflow = __importStar(require("./formatters/tsflow-snippet-syntax"));
27
- module.exports = tsflow;
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const tsflow = __importStar(require("./formatters/tsflow-snippet-syntax"));
27
+ module.exports = tsflow;
28
28
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25pcHBldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zbmlwcGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyRUFBNkQ7QUFFN0QsTUFBTSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMifQ==
@@ -1,4 +1,4 @@
1
- import { TranspileOptions, Transpiler, TranspileOutput } from 'ts-node/dist/transpilers/types';
2
- export declare class EsbuildTranspiler implements Transpiler {
3
- transpile: (input: string, options: TranspileOptions) => TranspileOutput;
4
- }
1
+ import { TranspileOptions, Transpiler, TranspileOutput } from 'ts-node/dist/transpilers/types';
2
+ export declare class EsbuildTranspiler implements Transpiler {
3
+ transpile: (input: string, options: TranspileOptions) => TranspileOutput;
4
+ }
@@ -1,19 +1,19 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EsbuildTranspiler = void 0;
4
- const esbuild_1 = require("./esbuild");
5
- const create = (_createOptions) => {
6
- return new EsbuildTranspiler();
7
- };
8
- class EsbuildTranspiler {
9
- transpile = (input, options) => {
10
- const result = (0, esbuild_1.transpileCode)(input, options.fileName);
11
- return {
12
- outputText: result.output,
13
- sourceMapText: result.sourceMap
14
- };
15
- };
16
- }
17
- exports.EsbuildTranspiler = EsbuildTranspiler;
18
- exports.create = create;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EsbuildTranspiler = void 0;
4
+ const esbuild_1 = require("./esbuild");
5
+ const create = (_createOptions) => {
6
+ return new EsbuildTranspiler();
7
+ };
8
+ class EsbuildTranspiler {
9
+ transpile = (input, options) => {
10
+ const result = (0, esbuild_1.transpileCode)(input, options.fileName);
11
+ return {
12
+ outputText: result.output,
13
+ sourceMapText: result.sourceMap
14
+ };
15
+ };
16
+ }
17
+ exports.EsbuildTranspiler = EsbuildTranspiler;
18
+ exports.create = create;
19
19
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNidWlsZC10cmFuc3BpbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyYW5zcGlsZXJzL2VzYnVpbGQtdHJhbnNwaWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx1Q0FBMEM7QUFFMUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxjQUF1QyxFQUFjLEVBQUU7SUFDdEUsT0FBTyxJQUFJLGlCQUFpQixFQUFFLENBQUM7QUFDaEMsQ0FBQyxDQUFDO0FBRUYsTUFBYSxpQkFBaUI7SUFDN0IsU0FBUyxHQUFHLENBQUMsS0FBYSxFQUFFLE9BQXlCLEVBQW1CLEVBQUU7UUFDekUsTUFBTSxNQUFNLEdBQUcsSUFBQSx1QkFBYSxFQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEQsT0FBTztZQUNOLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTTtZQUN6QixhQUFhLEVBQUUsTUFBTSxDQUFDLFNBQVM7U0FDWixDQUFDO0lBQ3RCLENBQUMsQ0FBQztDQUNGO0FBVEQsOENBU0M7QUFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyJ9