pickle-jar 1.2.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -145,10 +145,12 @@ const tagFilter = (tags: string[])=> {
145
145
  return tags.indexOf("@ui") === -1;
146
146
  }
147
147
  ```
148
- There are two builtin tags: `@skip` and `@only` which are handled differently than normal tags:
148
+ There are several builtin tags which are handled differently than custom tags:
149
149
 
150
150
  * `@skip` - when used, the step and sub-steps are completely skipped (they are handled as Jest `describe.only` or `it.only` calls)
151
151
  * `@only` - when used, only the steps and sub-steps are executed (they are handled as Jest `describe.only` or `it.only` calls)
152
+ * `@todo` - when used, the step is marked as a TODO and no step code is executed (they are handled as Jest `it.todo` calls)
153
+ * `@fail` - when used, the step is expected to fail (thye are handled as Jest `it.failed` calls)
152
154
 
153
155
  ## Jest configuration
154
156
  Create a `jest.config.js` file in the project root (or update the existing one) to match the `runner.ts` file:
@@ -6,17 +6,18 @@ interface WorldObject<TWorld> {
6
6
  world: TWorld;
7
7
  }
8
8
  export declare class FeatureFileVisitor<TWorld> extends AbstractParseTreeVisitor<void> implements GherkinParserVisitor<void> {
9
- private readonly file;
10
9
  private readonly worldFactory;
11
10
  private readonly stepDefinitions;
12
11
  private tagFilter;
13
- constructor(file: string, worldFactory: () => TWorld, stepDefinitions: StepDefinition<TWorld>[], tagFilter: (tags: string[]) => boolean);
12
+ constructor(worldFactory: () => TWorld, stepDefinitions: StepDefinition<TWorld>[], tagFilter: (tags: string[]) => boolean);
14
13
  visitFeatureFile(ctx: FeatureFileContext): void;
15
14
  visitFeature(ctx: FeatureContext): void;
16
15
  visitScenario(ctx: ScenarioContext, worldObject?: WorldObject<TWorld>): void;
17
- visitBackground(ctx: BackgroundContext): void;
16
+ setupBackground(backgroundCtx: BackgroundContext, ctx: FeatureContext): void;
18
17
  visitScenarioOutline(ctx: ScenarioOutlineContext, worldObject?: WorldObject<TWorld>): void;
19
18
  protected defaultResult(): void;
19
+ private extractTags;
20
+ private extractTestTags;
20
21
  private replaceKeywords;
21
22
  private runNextStep;
22
23
  private defineTestStep;
@@ -5,41 +5,38 @@ const tree_1 = require("antlr4ts/tree");
5
5
  const os_1 = require("os");
6
6
  const GherkinParser_1 = require("./grammar/GherkinParser");
7
7
  class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
8
- constructor(file, worldFactory, stepDefinitions, tagFilter) {
8
+ constructor(worldFactory, stepDefinitions, tagFilter) {
9
9
  super();
10
- this.file = file;
11
10
  this.worldFactory = worldFactory;
12
11
  this.stepDefinitions = stepDefinitions;
13
12
  this.tagFilter = tagFilter;
14
13
  }
15
14
  visitFeatureFile(ctx) {
16
- describe(this.file, () => {
17
- this.visitChildren(ctx);
18
- });
15
+ this.visitChildren(ctx);
19
16
  }
20
17
  visitFeature(ctx) {
21
- var _a, _b, _c, _d;
22
- const tags = (_b = (_a = ctx.tags()) === null || _a === void 0 ? void 0 : _a.TAG().map(tag => tag.text)) !== null && _b !== void 0 ? _b : [];
18
+ const { tags, isOnly, isSkip } = this.extractTags(ctx.tags());
23
19
  if (!this.tagFilter(tags)) {
24
20
  return;
25
21
  }
26
- const isOnly = !!((_c = ctx.tags()) === null || _c === void 0 ? void 0 : _c.ONLY_TAG().length);
27
- const isSkip = !!((_d = ctx.tags()) === null || _d === void 0 ? void 0 : _d.SKIP_TAG().length);
28
22
  const describeFunc = isOnly ? describe.only : isSkip ? describe.skip : describe;
29
- describeFunc(`Feature: ${ctx.contentText().text.trim()}`, () => {
30
- this.visitChildren(ctx);
23
+ describeFunc(`Feature: ${ctx.multilineText().text.trim()}`, () => {
24
+ const backgroundCtx = ctx.background();
25
+ if (backgroundCtx) {
26
+ this.setupBackground(backgroundCtx, ctx);
27
+ }
28
+ else {
29
+ this.visitChildren(ctx);
30
+ }
31
31
  });
32
32
  }
33
33
  visitScenario(ctx, worldObject) {
34
- var _a, _b, _c, _d;
35
- const tags = (_b = (_a = ctx.tags()) === null || _a === void 0 ? void 0 : _a.TAG().map(tag => tag.text)) !== null && _b !== void 0 ? _b : [];
34
+ const { tags, isOnly, isSkip } = this.extractTags(ctx.tags());
36
35
  if (!this.tagFilter(tags)) {
37
36
  return;
38
37
  }
39
- const isOnly = !!((_c = ctx.tags()) === null || _c === void 0 ? void 0 : _c.ONLY_TAG().length);
40
- const isSkip = !!((_d = ctx.tags()) === null || _d === void 0 ? void 0 : _d.SKIP_TAG().length);
41
38
  const describeFunc = isOnly ? describe.only : isSkip ? describe.skip : describe;
42
- describeFunc(`Scenario: ${ctx.contentText().text.trim()}`, () => {
39
+ describeFunc(`Scenario: ${ctx.multilineText().text.trim()}`, () => {
43
40
  const worldObj = {};
44
41
  beforeEach(() => {
45
42
  if (!worldObject) {
@@ -51,35 +48,33 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
51
48
  this.runNextStep(steps, undefined, worldObject !== null && worldObject !== void 0 ? worldObject : worldObj);
52
49
  });
53
50
  }
54
- visitBackground(ctx) {
55
- var _a, _b, _c, _d;
56
- const tags = (_b = (_a = ctx.tags()) === null || _a === void 0 ? void 0 : _a.TAG().map(tag => tag.text)) !== null && _b !== void 0 ? _b : [];
51
+ setupBackground(backgroundCtx, ctx) {
52
+ const { tags, isOnly, isSkip } = this.extractTags(backgroundCtx.tags());
57
53
  if (!this.tagFilter(tags)) {
58
54
  return;
59
55
  }
60
- const isOnly = !!((_c = ctx.tags()) === null || _c === void 0 ? void 0 : _c.ONLY_TAG().length);
61
- const isSkip = !!((_d = ctx.tags()) === null || _d === void 0 ? void 0 : _d.SKIP_TAG().length);
62
56
  const describeFunc = isOnly ? describe.only : isSkip ? describe.skip : describe;
63
- describeFunc(`Background: ${ctx.contentText().text.trim()}`, () => {
57
+ describeFunc(`Background: ${backgroundCtx.multilineText().text.trim()}`, () => {
64
58
  const worldObj = {};
65
59
  beforeEach(() => {
66
60
  worldObj.world = this.worldFactory();
67
61
  });
68
- const scenarios = [...ctx.scenario(), ...ctx.scenarioOutline()];
69
- for (const scenario of scenarios) {
70
- const steps = [ctx.givenStep(), ...ctx.andGivenStep(), scenario];
71
- this.runNextStep(steps, undefined, worldObj);
72
- }
62
+ const steps = [backgroundCtx.givenStep(), ...backgroundCtx.andGivenStep(), ...ctx.scenario(), ...ctx.scenarioOutline()];
63
+ this.runNextStep(steps, undefined, worldObj);
64
+ //
65
+ // const scenarios = [...backgroundCtx.scenario(), ...backgroundCtx.scenarioOutline()];
66
+ // for (const scenario of scenarios) {
67
+ // const steps = [backgroundCtx.givenStep(), ...backgroundCtx.andGivenStep(), scenario];
68
+ //
69
+ // this.runNextStep(steps, undefined, worldObj);
70
+ // }
73
71
  });
74
72
  }
75
73
  visitScenarioOutline(ctx, worldObject) {
76
- var _a, _b, _c, _d;
77
- const tags = (_b = (_a = ctx.tags()) === null || _a === void 0 ? void 0 : _a.TAG().map(tag => tag.text)) !== null && _b !== void 0 ? _b : [];
74
+ const { tags, isOnly, isSkip } = this.extractTags(ctx.tags());
78
75
  if (!this.tagFilter(tags)) {
79
76
  return;
80
77
  }
81
- const isOnly = !!((_c = ctx.tags()) === null || _c === void 0 ? void 0 : _c.ONLY_TAG().length);
82
- const isSkip = !!((_d = ctx.tags()) === null || _d === void 0 ? void 0 : _d.SKIP_TAG().length);
83
78
  const describeFunc = isOnly ? describe.only : isSkip ? describe.skip : describe;
84
79
  const cellNames = ctx.examplesBlock().tableHeader().tableRow().cell().map(cell => cell.text.trim());
85
80
  const values = ctx.examplesBlock().tableRow().map(row => row.cell().map(cell => cell.text.trim()));
@@ -90,7 +85,7 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
90
85
  }
91
86
  return item;
92
87
  });
93
- const scenarioName = ctx.contentText().text.trim();
88
+ const scenarioName = ctx.multilineText().text.trim();
94
89
  describeFunc(`Scenario outline: ${scenarioName}`, () => {
95
90
  const worldObj = {};
96
91
  beforeEach(() => {
@@ -108,24 +103,35 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
108
103
  defaultResult() {
109
104
  return;
110
105
  }
106
+ extractTags(tagsContext) {
107
+ var _a;
108
+ const tags = (_a = tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.TAG().map(tag => tag.text)) !== null && _a !== void 0 ? _a : [];
109
+ const isOnly = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.ONLY_TAG().length);
110
+ const isSkip = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.SKIP_TAG().length);
111
+ return { tags, isOnly, isSkip };
112
+ }
113
+ extractTestTags(tagsContext) {
114
+ var _a;
115
+ const tags = (_a = tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.TAG().map(tag => tag.text)) !== null && _a !== void 0 ? _a : [];
116
+ const isOnly = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.ONLY_TAG().length);
117
+ const isSkip = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.SKIP_TAG().length);
118
+ const isTodo = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.TODO_TAG().length);
119
+ const isFail = !!(tagsContext === null || tagsContext === void 0 ? void 0 : tagsContext.FAIL_TAG().length);
120
+ return { tags, isOnly, isSkip, isTodo, isFail };
121
+ }
111
122
  replaceKeywords(input, replacements) {
112
- return input.replace(/<([^>]+)>/g, (match, keyword) => {
123
+ return input
124
+ .replace(/<([^>]+)>/g, (match, keyword) => {
113
125
  const replacement = replacements === null || replacements === void 0 ? void 0 : replacements[keyword];
114
126
  return replacement !== undefined ? replacement.replace(/\$/g, "\\$") : match;
115
127
  });
116
128
  }
117
129
  runNextStep(steps, valueMap, worldObject) {
118
- var _a, _b, _c, _d, _e;
130
+ var _a;
119
131
  const step = steps.shift();
120
132
  if (!step) {
121
133
  return;
122
134
  }
123
- const tags = (_b = (_a = step.tags()) === null || _a === void 0 ? void 0 : _a.TAG().map(tag => tag.text)) !== null && _b !== void 0 ? _b : [];
124
- if (!this.tagFilter(tags)) {
125
- return;
126
- }
127
- const isOnly = !!((_c = step.tags()) === null || _c === void 0 ? void 0 : _c.ONLY_TAG().length);
128
- const isSkip = !!((_d = step.tags()) === null || _d === void 0 ? void 0 : _d.SKIP_TAG().length);
129
135
  if (step instanceof GherkinParser_1.ScenarioContext) {
130
136
  this.visitScenario(step, worldObject);
131
137
  return;
@@ -134,43 +140,55 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
134
140
  this.visitScenarioOutline(step, worldObject);
135
141
  return;
136
142
  }
143
+ let tags;
137
144
  let prefix;
138
145
  let prepare = true;
139
146
  if (step instanceof GherkinParser_1.GivenStepContext || step instanceof GherkinParser_1.AndGivenStepContext) {
140
147
  prefix = 'Given';
148
+ tags = this.extractTags(step.tags());
141
149
  }
142
150
  else if (step instanceof GherkinParser_1.WhenStepContext || step instanceof GherkinParser_1.AndWhenStepContext) {
143
151
  prefix = 'When';
152
+ tags = this.extractTags(step.tags());
144
153
  }
145
154
  else if (step instanceof GherkinParser_1.ThenStepContext || step instanceof GherkinParser_1.AndStepContext) {
146
155
  prefix = "Then";
147
156
  prepare = false;
157
+ tags = this.extractTestTags(step.thenTags());
148
158
  }
149
159
  else {
150
160
  prefix = 'But';
151
161
  prepare = false;
162
+ tags = this.extractTestTags(step.thenTags());
152
163
  }
153
- const name = `${prefix} ${this.replaceKeywords(step.contentText().text.trim(), valueMap)}`;
154
- const stepDefinition = this.getMatchingStepDefinition(name);
155
- const { step: stepCall, match } = stepDefinition;
156
- const docStringContents = (_e = step.docString()) === null || _e === void 0 ? void 0 : _e.DOC_STRING().text;
164
+ if (!this.tagFilter(tags.tags)) {
165
+ return;
166
+ }
167
+ const name = `${prefix} ${this.replaceKeywords(step.multilineText().text.trim(), valueMap)}`;
168
+ const { match, step: stepCall } = this.getMatchingStepDefinition(name, !!tags.isTodo);
169
+ const docStringContents = (_a = step.docString()) === null || _a === void 0 ? void 0 : _a.DOC_STRING().text;
157
170
  const args = this.extractTestArgs(match, name, docStringContents, valueMap);
158
171
  if (prepare) {
159
- this.definePrepareStep(name, stepCall, args, steps, valueMap, worldObject, isSkip, isOnly);
172
+ this.definePrepareStep(name, stepCall, args, steps, valueMap, worldObject, tags);
160
173
  }
161
174
  else {
162
- this.defineTestStep(name, stepCall, args, steps, valueMap, worldObject, isSkip, isOnly);
175
+ this.defineTestStep(name, stepCall, args, steps, valueMap, worldObject, tags);
163
176
  }
164
177
  }
165
- defineTestStep(name, stepCall, args, steps, valueMap, worldObject, isSkip, isOnly) {
166
- const itFunc = isOnly ? it.only : isSkip ? it.skip : it;
167
- itFunc(name, () => {
168
- stepCall(worldObject.world, ...args);
169
- });
178
+ defineTestStep(name, stepCall, args, steps, valueMap, worldObject, tags) {
179
+ const itFunc = tags.isOnly ? it.only : tags.isSkip ? it.skip : tags.isTodo ? it.todo : tags.isFail ? it.failing : it;
180
+ if (tags.isTodo) {
181
+ itFunc(name);
182
+ }
183
+ else {
184
+ itFunc(name, () => {
185
+ stepCall(worldObject.world, ...args);
186
+ });
187
+ }
170
188
  this.runNextStep(steps, valueMap, worldObject);
171
189
  }
172
- definePrepareStep(name, stepCall, args, steps, valueMap, worldObject, isSkip, isOnly) {
173
- const describeFunc = isOnly ? describe.only : isSkip ? describe.skip : describe;
190
+ definePrepareStep(name, stepCall, args, steps, valueMap, worldObject, tags) {
191
+ const describeFunc = tags.isOnly ? describe.only : tags.isSkip ? describe.skip : describe;
174
192
  describeFunc(name, () => {
175
193
  beforeEach(() => {
176
194
  stepCall(worldObject.world, ...args);
@@ -195,17 +213,18 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
195
213
  }
196
214
  return args;
197
215
  }
198
- getMatchingStepDefinition(name) {
216
+ getMatchingStepDefinition(name, provideNopBoilerplate) {
217
+ var _a;
199
218
  const matchingStepDefinitions = this.stepDefinitions.filter(def => {
200
219
  return def.match.test(name);
201
220
  });
202
- if (!matchingStepDefinitions.length) {
221
+ if (!matchingStepDefinitions.length && !provideNopBoilerplate) {
203
222
  throw new Error(`Missing step definition '${name}'`);
204
223
  }
205
224
  else if (matchingStepDefinitions.length > 1) {
206
225
  throw new Error(`Multiple step definition match '${name}':\n${matchingStepDefinitions.map(rule => rule.match.toString()).join("\n")}`);
207
226
  }
208
- return matchingStepDefinitions[0];
227
+ return (_a = matchingStepDefinitions[0]) !== null && _a !== void 0 ? _a : { match: /^.*$/, step: undefined };
209
228
  }
210
229
  }
211
230
  exports.FeatureFileVisitor = FeatureFileVisitor;
@@ -1 +1 @@
1
- {"version":3,"file":"feature-file-visitor.js","sourceRoot":"","sources":["../../src/feature-file-visitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-file-visitor.js","sourceRoot":"","sources":["../../src/feature-file-visitor.ts"],"names":[],"mappings":"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"}
@@ -18,12 +18,14 @@ export declare class GherkinLexer extends Lexer {
18
18
  static readonly PIPE = 13;
19
19
  static readonly ONLY_TAG = 14;
20
20
  static readonly SKIP_TAG = 15;
21
- static readonly TAG = 16;
22
- static readonly COMMENT = 17;
23
- static readonly TEXT_CHARACTER = 18;
24
- static readonly WS = 19;
25
- static readonly WSS = 20;
26
- static readonly DOC_STRING = 21;
21
+ static readonly TODO_TAG = 16;
22
+ static readonly FAIL_TAG = 17;
23
+ static readonly TAG = 18;
24
+ static readonly COMMENT = 19;
25
+ static readonly TEXT_CHARACTER = 20;
26
+ static readonly NEWLINE = 21;
27
+ static readonly WSS = 22;
28
+ static readonly DOC_STRING = 23;
27
29
  static readonly TEXT_CHARACTER_MODE = 1;
28
30
  static readonly channelNames: string[];
29
31
  static readonly modeNames: string[];