pickle-jar 1.1.0 → 1.3.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
@@ -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,33 +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
- describe(`Feature: ${ctx.contentText().text.trim()}`, () => {
22
- this.visitChildren(ctx);
18
+ const { tags, isOnly, isSkip } = this.extractTags(ctx.tags());
19
+ if (!this.tagFilter(tags)) {
20
+ return;
21
+ }
22
+ const describeFunc = isOnly ? describe.only : isSkip ? describe.skip : describe;
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
+ }
23
31
  });
24
32
  }
25
33
  visitScenario(ctx, worldObject) {
26
- var _a, _b, _c, _d;
27
- 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());
28
35
  if (!this.tagFilter(tags)) {
29
36
  return;
30
37
  }
31
- const isOnly = !!((_c = ctx.tags()) === null || _c === void 0 ? void 0 : _c.ONLY_TAG().length);
32
- const isSkip = !!((_d = ctx.tags()) === null || _d === void 0 ? void 0 : _d.SKIP_TAG().length);
33
38
  const describeFunc = isOnly ? describe.only : isSkip ? describe.skip : describe;
34
- describeFunc(`Scenario: ${ctx.contentText().text.trim()}`, () => {
39
+ describeFunc(`Scenario: ${ctx.multilineText().text.trim()}`, () => {
35
40
  const worldObj = {};
36
41
  beforeEach(() => {
37
42
  if (!worldObject) {
@@ -43,35 +48,33 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
43
48
  this.runNextStep(steps, undefined, worldObject !== null && worldObject !== void 0 ? worldObject : worldObj);
44
49
  });
45
50
  }
46
- visitBackground(ctx) {
47
- var _a, _b, _c, _d;
48
- 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());
49
53
  if (!this.tagFilter(tags)) {
50
54
  return;
51
55
  }
52
- const isOnly = !!((_c = ctx.tags()) === null || _c === void 0 ? void 0 : _c.ONLY_TAG().length);
53
- const isSkip = !!((_d = ctx.tags()) === null || _d === void 0 ? void 0 : _d.SKIP_TAG().length);
54
56
  const describeFunc = isOnly ? describe.only : isSkip ? describe.skip : describe;
55
- describeFunc(`Background: ${ctx.contentText().text.trim()}`, () => {
57
+ describeFunc(`Background: ${backgroundCtx.multilineText().text.trim()}`, () => {
56
58
  const worldObj = {};
57
59
  beforeEach(() => {
58
60
  worldObj.world = this.worldFactory();
59
61
  });
60
- const scenarios = [...ctx.scenario(), ...ctx.scenarioOutline()];
61
- for (const scenario of scenarios) {
62
- const steps = [ctx.givenStep(), ...ctx.andGivenStep(), scenario];
63
- this.runNextStep(steps, undefined, worldObj);
64
- }
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
+ // }
65
71
  });
66
72
  }
67
73
  visitScenarioOutline(ctx, worldObject) {
68
- var _a, _b, _c, _d;
69
- 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());
70
75
  if (!this.tagFilter(tags)) {
71
76
  return;
72
77
  }
73
- const isOnly = !!((_c = ctx.tags()) === null || _c === void 0 ? void 0 : _c.ONLY_TAG().length);
74
- const isSkip = !!((_d = ctx.tags()) === null || _d === void 0 ? void 0 : _d.SKIP_TAG().length);
75
78
  const describeFunc = isOnly ? describe.only : isSkip ? describe.skip : describe;
76
79
  const cellNames = ctx.examplesBlock().tableHeader().tableRow().cell().map(cell => cell.text.trim());
77
80
  const values = ctx.examplesBlock().tableRow().map(row => row.cell().map(cell => cell.text.trim()));
@@ -82,7 +85,7 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
82
85
  }
83
86
  return item;
84
87
  });
85
- const scenarioName = ctx.contentText().text.trim();
88
+ const scenarioName = ctx.multilineText().text.trim();
86
89
  describeFunc(`Scenario outline: ${scenarioName}`, () => {
87
90
  const worldObj = {};
88
91
  beforeEach(() => {
@@ -100,24 +103,35 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
100
103
  defaultResult() {
101
104
  return;
102
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
+ }
103
122
  replaceKeywords(input, replacements) {
104
- return input.replace(/<([^>]+)>/g, (match, keyword) => {
123
+ return input
124
+ .replace(/<([^>]+)>/g, (match, keyword) => {
105
125
  const replacement = replacements === null || replacements === void 0 ? void 0 : replacements[keyword];
106
126
  return replacement !== undefined ? replacement.replace(/\$/g, "\\$") : match;
107
127
  });
108
128
  }
109
129
  runNextStep(steps, valueMap, worldObject) {
110
- var _a, _b, _c, _d, _e;
130
+ var _a;
111
131
  const step = steps.shift();
112
132
  if (!step) {
113
133
  return;
114
134
  }
115
- const tags = (_b = (_a = step.tags()) === null || _a === void 0 ? void 0 : _a.TAG().map(tag => tag.text)) !== null && _b !== void 0 ? _b : [];
116
- if (!this.tagFilter(tags)) {
117
- return;
118
- }
119
- const isOnly = !!((_c = step.tags()) === null || _c === void 0 ? void 0 : _c.ONLY_TAG().length);
120
- const isSkip = !!((_d = step.tags()) === null || _d === void 0 ? void 0 : _d.SKIP_TAG().length);
121
135
  if (step instanceof GherkinParser_1.ScenarioContext) {
122
136
  this.visitScenario(step, worldObject);
123
137
  return;
@@ -126,43 +140,55 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
126
140
  this.visitScenarioOutline(step, worldObject);
127
141
  return;
128
142
  }
143
+ let tags;
129
144
  let prefix;
130
145
  let prepare = true;
131
146
  if (step instanceof GherkinParser_1.GivenStepContext || step instanceof GherkinParser_1.AndGivenStepContext) {
132
147
  prefix = 'Given';
148
+ tags = this.extractTags(step.tags());
133
149
  }
134
150
  else if (step instanceof GherkinParser_1.WhenStepContext || step instanceof GherkinParser_1.AndWhenStepContext) {
135
151
  prefix = 'When';
152
+ tags = this.extractTags(step.tags());
136
153
  }
137
154
  else if (step instanceof GherkinParser_1.ThenStepContext || step instanceof GherkinParser_1.AndStepContext) {
138
155
  prefix = "Then";
139
156
  prepare = false;
157
+ tags = this.extractTestTags(step.thenTags());
140
158
  }
141
159
  else {
142
160
  prefix = 'But';
143
161
  prepare = false;
162
+ tags = this.extractTestTags(step.thenTags());
163
+ }
164
+ if (!this.tagFilter(tags.tags)) {
165
+ return;
144
166
  }
145
- const name = `${prefix} ${this.replaceKeywords(step.contentText().text.trim(), valueMap)}`;
146
- const stepDefinition = this.getMatchingStepDefinition(name);
147
- const { step: stepCall, match } = stepDefinition;
148
- const docStringContents = (_e = step.docString()) === null || _e === void 0 ? void 0 : _e.DOC_STRING().text;
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;
149
170
  const args = this.extractTestArgs(match, name, docStringContents, valueMap);
150
171
  if (prepare) {
151
- this.definePrepareStep(name, stepCall, args, steps, valueMap, worldObject, isSkip, isOnly);
172
+ this.definePrepareStep(name, stepCall, args, steps, valueMap, worldObject, tags);
152
173
  }
153
174
  else {
154
- this.defineTestStep(name, stepCall, args, steps, valueMap, worldObject, isSkip, isOnly);
175
+ this.defineTestStep(name, stepCall, args, steps, valueMap, worldObject, tags);
155
176
  }
156
177
  }
157
- defineTestStep(name, stepCall, args, steps, valueMap, worldObject, isSkip, isOnly) {
158
- const itFunc = isOnly ? it.only : isSkip ? it.skip : it;
159
- itFunc(name, () => {
160
- stepCall(worldObject.world, ...args);
161
- });
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
+ }
162
188
  this.runNextStep(steps, valueMap, worldObject);
163
189
  }
164
- definePrepareStep(name, stepCall, args, steps, valueMap, worldObject, isSkip, isOnly) {
165
- 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;
166
192
  describeFunc(name, () => {
167
193
  beforeEach(() => {
168
194
  stepCall(worldObject.world, ...args);
@@ -187,17 +213,18 @@ class FeatureFileVisitor extends tree_1.AbstractParseTreeVisitor {
187
213
  }
188
214
  return args;
189
215
  }
190
- getMatchingStepDefinition(name) {
216
+ getMatchingStepDefinition(name, provideNopBoilerplate) {
217
+ var _a;
191
218
  const matchingStepDefinitions = this.stepDefinitions.filter(def => {
192
219
  return def.match.test(name);
193
220
  });
194
- if (!matchingStepDefinitions.length) {
221
+ if (!matchingStepDefinitions.length && !provideNopBoilerplate) {
195
222
  throw new Error(`Missing step definition '${name}'`);
196
223
  }
197
224
  else if (matchingStepDefinitions.length > 1) {
198
225
  throw new Error(`Multiple step definition match '${name}':\n${matchingStepDefinitions.map(rule => rule.match.toString()).join("\n")}`);
199
226
  }
200
- return matchingStepDefinitions[0];
227
+ return (_a = matchingStepDefinitions[0]) !== null && _a !== void 0 ? _a : { match: /^.*$/, step: undefined };
201
228
  }
202
229
  }
203
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[];