quickpickle 1.2.2 → 1.2.4
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/dist/index.cjs +94 -38
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +17 -5
- package/dist/index.esm.js +96 -41
- package/dist/index.esm.js.map +1 -1
- package/dist/render.d.ts +40 -0
- package/dist/world.d.ts +2 -0
- package/package.json +4 -1
- package/README.md +0 -216
package/dist/index.cjs
CHANGED
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var cucumberExpressions = require('@cucumber/cucumber-expressions');
|
|
6
6
|
var lodashEs = require('lodash-es');
|
|
7
7
|
var parse = require('@cucumber/tag-expressions');
|
|
8
|
-
var cucumber = require('@cucumber/cucumber');
|
|
9
8
|
var Gherkin = require('@cucumber/gherkin');
|
|
10
9
|
var Messages = require('@cucumber/messages');
|
|
10
|
+
var cucumber = require('@cucumber/cucumber');
|
|
11
11
|
|
|
12
12
|
function _interopNamespaceDefault(e) {
|
|
13
13
|
var n = Object.create(null);
|
|
@@ -247,15 +247,16 @@ ${sp}});
|
|
|
247
247
|
function renderScenario(child, config, tags, sp = ' ') {
|
|
248
248
|
let initFn = sp.length > 2 ? 'initRuleScenario' : 'initScenario';
|
|
249
249
|
tags = [...tags, ...child.scenario.tags.map(t => t.name)];
|
|
250
|
-
let todo = (
|
|
251
|
-
let skip = (
|
|
252
|
-
let fails = (
|
|
253
|
-
let
|
|
254
|
-
let
|
|
250
|
+
let todo = tagsMatch(config.todoTags, tags) ? '.todo' : '';
|
|
251
|
+
let skip = tagsMatch(config.skipTags, tags) ? '.skip' : '';
|
|
252
|
+
let fails = tagsMatch(config.failTags, tags) ? '.fails' : '';
|
|
253
|
+
let sequential = tagsMatch(config.sequentialTags, tags) ? '.sequential' : '';
|
|
254
|
+
let concurrent = (!sequential && tagsMatch(config.concurrentTags, tags)) ? '.concurrent' : '';
|
|
255
255
|
let attrs = todo + skip + fails + concurrent + sequential;
|
|
256
256
|
// Deal with exploding tags
|
|
257
257
|
let taglists = explodeTags(config.explodeTags, tags);
|
|
258
|
-
|
|
258
|
+
let isExploded = taglists.length > 1 ? true : false;
|
|
259
|
+
return taglists.map((tags, explodedIdx) => {
|
|
259
260
|
// For Scenario Outlines with examples
|
|
260
261
|
if (child.scenario.examples?.[0]?.tableHeader && child.scenario.examples?.[0]?.tableBody) {
|
|
261
262
|
let paramNames = child.scenario?.examples?.[0].tableHeader?.cells?.map(c => c.value) || [];
|
|
@@ -278,7 +279,7 @@ ${sp} let state = await ${initFn}(context, \`${name}\`, ['${tags.join("', '")
|
|
|
278
279
|
${child.scenario?.steps.map((step, i) => {
|
|
279
280
|
let text = step.text.replace(/`/g, '\\`');
|
|
280
281
|
text = replaceParamNames(text, true);
|
|
281
|
-
return `${sp} await qp(\`${text}\`, state, ${step.location.line});`;
|
|
282
|
+
return `${sp} await qp(\`${text}\`, state, ${step.location.line}${isExploded ? '.' + explodedIdx : ''});`;
|
|
282
283
|
}).join('\n')}
|
|
283
284
|
${sp} await afterScenario(state);
|
|
284
285
|
${sp} }
|
|
@@ -288,28 +289,103 @@ ${sp});
|
|
|
288
289
|
return `
|
|
289
290
|
${sp}test${attrs}('${q(child.scenario.keyword)}: ${q(child.scenario.name)}', async (context) => {
|
|
290
291
|
${sp} let state = await ${initFn}(context, '${q(child.scenario.name)}', ['${tags.join("', '") || ''}']);
|
|
291
|
-
${renderSteps(child.scenario.steps, config, sp + ' ')}
|
|
292
|
+
${renderSteps(child.scenario.steps, config, sp + ' ', isExploded ? `.${explodedIdx}` : '')}
|
|
292
293
|
${sp} await afterScenario(state);
|
|
293
294
|
${sp}});
|
|
294
295
|
`;
|
|
295
296
|
}).join('\n\n');
|
|
296
297
|
}
|
|
297
|
-
function renderSteps(steps, config, sp = ' ') {
|
|
298
|
+
function renderSteps(steps, config, sp = ' ', explodedText = '') {
|
|
298
299
|
return steps.map(step => {
|
|
299
300
|
if (step.dataTable) {
|
|
300
301
|
let data = JSON.stringify(step.dataTable.rows.map(r => {
|
|
301
302
|
return r.cells.map(c => c.value);
|
|
302
303
|
}));
|
|
303
|
-
return `${sp}await qp('${q(step.text)}', state, ${step.location.line}, ${data});`;
|
|
304
|
+
return `${sp}await qp('${q(step.text)}', state, ${step.location.line}${explodedText}, ${data});`;
|
|
304
305
|
}
|
|
305
306
|
else if (step.docString) {
|
|
306
307
|
let data = JSON.stringify(lodashEs.pick(step.docString, ['content', 'mediaType']));
|
|
307
|
-
return `${sp}await qp('${q(step.text)}', state, ${step.location.line}, ${data});`;
|
|
308
|
+
return `${sp}await qp('${q(step.text)}', state, ${step.location.line}${explodedText}, ${data});`;
|
|
308
309
|
}
|
|
309
|
-
return `${sp}await qp('${q(step.text)}', state, ${step.location.line});`;
|
|
310
|
+
return `${sp}await qp('${q(step.text)}', state, ${step.location.line}${explodedText});`;
|
|
310
311
|
}).join('\n');
|
|
311
312
|
}
|
|
313
|
+
/**
|
|
314
|
+
* Escapes quotation marks in a string for the purposes of this rendering function.
|
|
315
|
+
* @param t string
|
|
316
|
+
* @returns string
|
|
317
|
+
*/
|
|
312
318
|
const q = (t) => (t.replace(/'/g, "\\'"));
|
|
319
|
+
/**
|
|
320
|
+
* Creates a 2d array of all possible combinations of the items in the input array
|
|
321
|
+
* @param arr Array
|
|
322
|
+
* @returns A 2d array of all possible combinations of the items in the input array
|
|
323
|
+
*/
|
|
324
|
+
function explodeArray(arr) {
|
|
325
|
+
if (arr.length === 0)
|
|
326
|
+
return [[]];
|
|
327
|
+
const [first, ...rest] = arr;
|
|
328
|
+
const subCombinations = explodeArray(rest);
|
|
329
|
+
return first.flatMap(item => subCombinations.map(subCombo => [item, ...subCombo]));
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* This function "explodes" any tags in the "explodeTags" setting and returns all possible
|
|
333
|
+
* combinations of all the tags. The theory is that it allows you to write one Scenario that
|
|
334
|
+
* runs multiple times in different ways; e.g. with and without JS or in different browsers.
|
|
335
|
+
*
|
|
336
|
+
* To take this case as an example, if the explodeTags are:
|
|
337
|
+
* ```
|
|
338
|
+
* [
|
|
339
|
+
* ['nojs', 'js'],
|
|
340
|
+
* ['firefox', 'chromium', 'webkit'],
|
|
341
|
+
* ]
|
|
342
|
+
* ```
|
|
343
|
+
*
|
|
344
|
+
* And the testTags are:
|
|
345
|
+
* ```
|
|
346
|
+
* ['nojs', 'js', 'snapshot']
|
|
347
|
+
* ```
|
|
348
|
+
*
|
|
349
|
+
* Then the function will return:
|
|
350
|
+
* ```
|
|
351
|
+
* [
|
|
352
|
+
* ['nojs', 'snapshot'],
|
|
353
|
+
* ['js', 'snapshot'],
|
|
354
|
+
* ]
|
|
355
|
+
* ```
|
|
356
|
+
*
|
|
357
|
+
* In that case, the test will be run twice.
|
|
358
|
+
*
|
|
359
|
+
* @param explodeTags the 2d array of tags that should be exploded
|
|
360
|
+
* @param testTags the tags to test against
|
|
361
|
+
* @returns a 2d array of all possible combinations of tags
|
|
362
|
+
*/
|
|
363
|
+
function explodeTags(explodeTags, testTags) {
|
|
364
|
+
if (!explodeTags.length)
|
|
365
|
+
return [testTags];
|
|
366
|
+
let tagsToTest = [...testTags];
|
|
367
|
+
// gather a 2d array of items that are shared between tags and each array in explodeTags
|
|
368
|
+
// and then remove those items from the tags array
|
|
369
|
+
const sharedTags = explodeTags.map(tagList => {
|
|
370
|
+
let items = tagList.filter(tag => tagsToTest.includes(tag));
|
|
371
|
+
if (items.length)
|
|
372
|
+
items.forEach(item => tagsToTest.splice(tagsToTest.indexOf(item), 1));
|
|
373
|
+
return items;
|
|
374
|
+
});
|
|
375
|
+
// then, build a 2d array of all possible combinations of the shared tags
|
|
376
|
+
let combined = explodeArray(sharedTags);
|
|
377
|
+
// finally, return the list
|
|
378
|
+
return combined.length ? combined.map(arr => [...tagsToTest, ...arr]) : [testTags];
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
*
|
|
382
|
+
* @param confTags string[]
|
|
383
|
+
* @param testTags string[]
|
|
384
|
+
* @returns boolean
|
|
385
|
+
*/
|
|
386
|
+
function tagsMatch(confTags, testTags) {
|
|
387
|
+
return lodashEs.intersection(confTags.map(t => t.toLowerCase()), testTags.map(t => t.toLowerCase()))?.length ? true : false;
|
|
388
|
+
}
|
|
313
389
|
|
|
314
390
|
class DocString extends String {
|
|
315
391
|
constructor(content, mediaType = '') {
|
|
@@ -340,6 +416,9 @@ class QuickPickleWorld {
|
|
|
340
416
|
this.info = { ...info };
|
|
341
417
|
}
|
|
342
418
|
async init() { }
|
|
419
|
+
tagsMatch(tags) {
|
|
420
|
+
return tagsMatch(tags, this.info.tags);
|
|
421
|
+
}
|
|
343
422
|
}
|
|
344
423
|
let worldConstructor = QuickPickleWorld;
|
|
345
424
|
function getWorldConstructor() {
|
|
@@ -416,37 +495,13 @@ function normalizeTags(tags) {
|
|
|
416
495
|
function is3d(arr) {
|
|
417
496
|
return Array.isArray(arr) && arr.every(item => Array.isArray(item));
|
|
418
497
|
}
|
|
419
|
-
function explodeArray(arr) {
|
|
420
|
-
if (arr.length === 0)
|
|
421
|
-
return [[]];
|
|
422
|
-
const [first, ...rest] = arr;
|
|
423
|
-
const subCombinations = explodeArray(rest);
|
|
424
|
-
return first.flatMap(item => subCombinations.map(subCombo => [item, ...subCombo]));
|
|
425
|
-
}
|
|
426
|
-
function explodeTags(explodeTags, testTags) {
|
|
427
|
-
if (!explodeTags.length)
|
|
428
|
-
return [testTags];
|
|
429
|
-
let tagsToTest = [...testTags];
|
|
430
|
-
// gather a 3d array of items that are shared between tags and each array in explodeTags
|
|
431
|
-
// and then remove those items from the tags array
|
|
432
|
-
const sharedTags = explodeTags.map(tagList => {
|
|
433
|
-
let items = tagList.filter(tag => tagsToTest.includes(tag));
|
|
434
|
-
if (items.length)
|
|
435
|
-
items.forEach(item => tagsToTest.splice(tagsToTest.indexOf(item), 1));
|
|
436
|
-
return items;
|
|
437
|
-
});
|
|
438
|
-
// then, build a 3d array of all possible combinations of the remaining tags
|
|
439
|
-
let combined = explodeArray(sharedTags);
|
|
440
|
-
// finally, return the list
|
|
441
|
-
return combined.length ? combined.map(arr => [...tagsToTest, ...arr]) : [testTags];
|
|
442
|
-
}
|
|
443
498
|
const quickpickle = (conf = {}) => {
|
|
444
499
|
let config;
|
|
445
500
|
let passedConfig = { ...conf };
|
|
446
501
|
return {
|
|
447
502
|
name: 'quickpickle-transform',
|
|
448
503
|
configResolved(resolvedConfig) {
|
|
449
|
-
config =
|
|
504
|
+
config = lodashEs.defaultsDeep(lodashEs.get(resolvedConfig, 'test.quickpickle') || {}, lodashEs.get(resolvedConfig, 'quickpickle') || {}, passedConfig, defaultConfig);
|
|
450
505
|
config.todoTags = normalizeTags(config.todoTags);
|
|
451
506
|
config.skipTags = normalizeTags(config.skipTags);
|
|
452
507
|
config.failTags = normalizeTags(config.failTags);
|
|
@@ -494,4 +549,5 @@ exports.normalizeTags = normalizeTags;
|
|
|
494
549
|
exports.qp = qp;
|
|
495
550
|
exports.quickpickle = quickpickle;
|
|
496
551
|
exports.setWorldConstructor = setWorldConstructor;
|
|
552
|
+
exports.tagsMatch = tagsMatch;
|
|
497
553
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/steps.ts","../src/tags.ts","../src/hooks.ts","../src/render.ts","../src/models/DocString.ts","../src/world.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["ExpressionFactory","ParameterTypeRegistry","isFunction","isString","isObject","concat","Messages","Gherkin","intersection","fromPairs","pick","DataTable","get"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/steps.ts","../src/tags.ts","../src/hooks.ts","../src/render.ts","../src/models/DocString.ts","../src/world.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["ExpressionFactory","ParameterTypeRegistry","isFunction","isString","isObject","concat","Messages","Gherkin","fromPairs","pick","intersection","DataTable","defaultsDeep","get"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,28 +1,40 @@
|
|
|
1
1
|
import { Plugin } from 'vite';
|
|
2
2
|
import { BeforeAll, applyBeforeAllHooks, Before, applyBeforeHooks, AfterAll, applyAfterAllHooks, After, applyAfterHooks, BeforeStep, applyBeforeStepHooks, AfterStep, applyAfterStepHooks } from './hooks';
|
|
3
|
+
import { explodeTags, tagsMatch } from './render';
|
|
3
4
|
import { DataTable } from '@cucumber/cucumber';
|
|
4
5
|
import { DocString } from './models/DocString';
|
|
5
6
|
export { setWorldConstructor, getWorldConstructor, QuickPickleWorld, QuickPickleWorldInterface } from './world';
|
|
6
7
|
export { DocString, DataTable };
|
|
8
|
+
export { explodeTags, tagsMatch };
|
|
7
9
|
export { BeforeAll, Before, AfterAll, After, BeforeStep, AfterStep };
|
|
8
10
|
export { applyBeforeAllHooks, applyBeforeHooks, applyAfterAllHooks, applyAfterHooks, applyBeforeStepHooks, applyAfterStepHooks, };
|
|
9
11
|
export declare const Given: (expression: string | RegExp, f: (state: any, ...args: any[]) => any) => void;
|
|
10
12
|
export declare const When: (expression: string | RegExp, f: (state: any, ...args: any[]) => any) => void;
|
|
11
13
|
export declare const Then: (expression: string | RegExp, f: (state: any, ...args: any[]) => any) => void;
|
|
12
14
|
export declare const qp: (step: string, state: any, line: number, data?: any) => Promise<any>;
|
|
13
|
-
export type
|
|
15
|
+
export type QuickPickleConfigSetting<T = {
|
|
14
16
|
[key: string]: any;
|
|
15
|
-
}> = {
|
|
17
|
+
}> = Partial<{
|
|
16
18
|
todoTags: string | string[];
|
|
17
19
|
skipTags: string | string[];
|
|
18
20
|
failTags: string | string[];
|
|
19
21
|
concurrentTags: string | string[];
|
|
20
22
|
sequentialTags: string | string[];
|
|
21
23
|
explodeTags: string | string[] | string[][];
|
|
22
|
-
worldConfig: T
|
|
24
|
+
worldConfig: Partial<T>;
|
|
25
|
+
}>;
|
|
26
|
+
export type QuickPickleConfig<T = {
|
|
27
|
+
[key: string]: any;
|
|
28
|
+
}> = {
|
|
29
|
+
todoTags: string[];
|
|
30
|
+
skipTags: string[];
|
|
31
|
+
failTags: string[];
|
|
32
|
+
concurrentTags: string[];
|
|
33
|
+
sequentialTags: string[];
|
|
34
|
+
explodeTags: string[][];
|
|
35
|
+
worldConfig: Partial<T>;
|
|
23
36
|
};
|
|
24
37
|
export declare const defaultConfig: QuickPickleConfig;
|
|
25
38
|
export declare function normalizeTags(tags?: string | string[] | undefined): string[];
|
|
26
|
-
export declare
|
|
27
|
-
export declare const quickpickle: (conf?: Partial<QuickPickleConfig>) => Plugin;
|
|
39
|
+
export declare const quickpickle: (conf?: Partial<QuickPickleConfigSetting>) => Plugin;
|
|
28
40
|
export default quickpickle;
|
package/dist/index.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ExpressionFactory, ParameterTypeRegistry } from '@cucumber/cucumber-expressions';
|
|
2
|
-
import { isFunction, isString, isObject, concat, intersection, fromPairs, pick, get } from 'lodash-es';
|
|
2
|
+
import { isFunction, isString, isObject, concat, intersection, fromPairs, pick, defaultsDeep, get } from 'lodash-es';
|
|
3
3
|
import parse from '@cucumber/tag-expressions';
|
|
4
|
-
import { DataTable } from '@cucumber/cucumber';
|
|
5
|
-
export { DataTable } from '@cucumber/cucumber';
|
|
6
4
|
import * as Gherkin from '@cucumber/gherkin';
|
|
7
5
|
import * as Messages from '@cucumber/messages';
|
|
6
|
+
import { DataTable } from '@cucumber/cucumber';
|
|
7
|
+
export { DataTable } from '@cucumber/cucumber';
|
|
8
8
|
|
|
9
9
|
const steps = [];
|
|
10
10
|
const expressionFactory = new ExpressionFactory(new ParameterTypeRegistry());
|
|
@@ -224,15 +224,16 @@ ${sp}});
|
|
|
224
224
|
function renderScenario(child, config, tags, sp = ' ') {
|
|
225
225
|
let initFn = sp.length > 2 ? 'initRuleScenario' : 'initScenario';
|
|
226
226
|
tags = [...tags, ...child.scenario.tags.map(t => t.name)];
|
|
227
|
-
let todo = (
|
|
228
|
-
let skip = (
|
|
229
|
-
let fails = (
|
|
230
|
-
let
|
|
231
|
-
let
|
|
227
|
+
let todo = tagsMatch(config.todoTags, tags) ? '.todo' : '';
|
|
228
|
+
let skip = tagsMatch(config.skipTags, tags) ? '.skip' : '';
|
|
229
|
+
let fails = tagsMatch(config.failTags, tags) ? '.fails' : '';
|
|
230
|
+
let sequential = tagsMatch(config.sequentialTags, tags) ? '.sequential' : '';
|
|
231
|
+
let concurrent = (!sequential && tagsMatch(config.concurrentTags, tags)) ? '.concurrent' : '';
|
|
232
232
|
let attrs = todo + skip + fails + concurrent + sequential;
|
|
233
233
|
// Deal with exploding tags
|
|
234
234
|
let taglists = explodeTags(config.explodeTags, tags);
|
|
235
|
-
|
|
235
|
+
let isExploded = taglists.length > 1 ? true : false;
|
|
236
|
+
return taglists.map((tags, explodedIdx) => {
|
|
236
237
|
// For Scenario Outlines with examples
|
|
237
238
|
if (child.scenario.examples?.[0]?.tableHeader && child.scenario.examples?.[0]?.tableBody) {
|
|
238
239
|
let paramNames = child.scenario?.examples?.[0].tableHeader?.cells?.map(c => c.value) || [];
|
|
@@ -255,7 +256,7 @@ ${sp} let state = await ${initFn}(context, \`${name}\`, ['${tags.join("', '")
|
|
|
255
256
|
${child.scenario?.steps.map((step, i) => {
|
|
256
257
|
let text = step.text.replace(/`/g, '\\`');
|
|
257
258
|
text = replaceParamNames(text, true);
|
|
258
|
-
return `${sp} await qp(\`${text}\`, state, ${step.location.line});`;
|
|
259
|
+
return `${sp} await qp(\`${text}\`, state, ${step.location.line}${isExploded ? '.' + explodedIdx : ''});`;
|
|
259
260
|
}).join('\n')}
|
|
260
261
|
${sp} await afterScenario(state);
|
|
261
262
|
${sp} }
|
|
@@ -265,28 +266,103 @@ ${sp});
|
|
|
265
266
|
return `
|
|
266
267
|
${sp}test${attrs}('${q(child.scenario.keyword)}: ${q(child.scenario.name)}', async (context) => {
|
|
267
268
|
${sp} let state = await ${initFn}(context, '${q(child.scenario.name)}', ['${tags.join("', '") || ''}']);
|
|
268
|
-
${renderSteps(child.scenario.steps, config, sp + ' ')}
|
|
269
|
+
${renderSteps(child.scenario.steps, config, sp + ' ', isExploded ? `.${explodedIdx}` : '')}
|
|
269
270
|
${sp} await afterScenario(state);
|
|
270
271
|
${sp}});
|
|
271
272
|
`;
|
|
272
273
|
}).join('\n\n');
|
|
273
274
|
}
|
|
274
|
-
function renderSteps(steps, config, sp = ' ') {
|
|
275
|
+
function renderSteps(steps, config, sp = ' ', explodedText = '') {
|
|
275
276
|
return steps.map(step => {
|
|
276
277
|
if (step.dataTable) {
|
|
277
278
|
let data = JSON.stringify(step.dataTable.rows.map(r => {
|
|
278
279
|
return r.cells.map(c => c.value);
|
|
279
280
|
}));
|
|
280
|
-
return `${sp}await qp('${q(step.text)}', state, ${step.location.line}, ${data});`;
|
|
281
|
+
return `${sp}await qp('${q(step.text)}', state, ${step.location.line}${explodedText}, ${data});`;
|
|
281
282
|
}
|
|
282
283
|
else if (step.docString) {
|
|
283
284
|
let data = JSON.stringify(pick(step.docString, ['content', 'mediaType']));
|
|
284
|
-
return `${sp}await qp('${q(step.text)}', state, ${step.location.line}, ${data});`;
|
|
285
|
+
return `${sp}await qp('${q(step.text)}', state, ${step.location.line}${explodedText}, ${data});`;
|
|
285
286
|
}
|
|
286
|
-
return `${sp}await qp('${q(step.text)}', state, ${step.location.line});`;
|
|
287
|
+
return `${sp}await qp('${q(step.text)}', state, ${step.location.line}${explodedText});`;
|
|
287
288
|
}).join('\n');
|
|
288
289
|
}
|
|
290
|
+
/**
|
|
291
|
+
* Escapes quotation marks in a string for the purposes of this rendering function.
|
|
292
|
+
* @param t string
|
|
293
|
+
* @returns string
|
|
294
|
+
*/
|
|
289
295
|
const q = (t) => (t.replace(/'/g, "\\'"));
|
|
296
|
+
/**
|
|
297
|
+
* Creates a 2d array of all possible combinations of the items in the input array
|
|
298
|
+
* @param arr Array
|
|
299
|
+
* @returns A 2d array of all possible combinations of the items in the input array
|
|
300
|
+
*/
|
|
301
|
+
function explodeArray(arr) {
|
|
302
|
+
if (arr.length === 0)
|
|
303
|
+
return [[]];
|
|
304
|
+
const [first, ...rest] = arr;
|
|
305
|
+
const subCombinations = explodeArray(rest);
|
|
306
|
+
return first.flatMap(item => subCombinations.map(subCombo => [item, ...subCombo]));
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* This function "explodes" any tags in the "explodeTags" setting and returns all possible
|
|
310
|
+
* combinations of all the tags. The theory is that it allows you to write one Scenario that
|
|
311
|
+
* runs multiple times in different ways; e.g. with and without JS or in different browsers.
|
|
312
|
+
*
|
|
313
|
+
* To take this case as an example, if the explodeTags are:
|
|
314
|
+
* ```
|
|
315
|
+
* [
|
|
316
|
+
* ['nojs', 'js'],
|
|
317
|
+
* ['firefox', 'chromium', 'webkit'],
|
|
318
|
+
* ]
|
|
319
|
+
* ```
|
|
320
|
+
*
|
|
321
|
+
* And the testTags are:
|
|
322
|
+
* ```
|
|
323
|
+
* ['nojs', 'js', 'snapshot']
|
|
324
|
+
* ```
|
|
325
|
+
*
|
|
326
|
+
* Then the function will return:
|
|
327
|
+
* ```
|
|
328
|
+
* [
|
|
329
|
+
* ['nojs', 'snapshot'],
|
|
330
|
+
* ['js', 'snapshot'],
|
|
331
|
+
* ]
|
|
332
|
+
* ```
|
|
333
|
+
*
|
|
334
|
+
* In that case, the test will be run twice.
|
|
335
|
+
*
|
|
336
|
+
* @param explodeTags the 2d array of tags that should be exploded
|
|
337
|
+
* @param testTags the tags to test against
|
|
338
|
+
* @returns a 2d array of all possible combinations of tags
|
|
339
|
+
*/
|
|
340
|
+
function explodeTags(explodeTags, testTags) {
|
|
341
|
+
if (!explodeTags.length)
|
|
342
|
+
return [testTags];
|
|
343
|
+
let tagsToTest = [...testTags];
|
|
344
|
+
// gather a 2d array of items that are shared between tags and each array in explodeTags
|
|
345
|
+
// and then remove those items from the tags array
|
|
346
|
+
const sharedTags = explodeTags.map(tagList => {
|
|
347
|
+
let items = tagList.filter(tag => tagsToTest.includes(tag));
|
|
348
|
+
if (items.length)
|
|
349
|
+
items.forEach(item => tagsToTest.splice(tagsToTest.indexOf(item), 1));
|
|
350
|
+
return items;
|
|
351
|
+
});
|
|
352
|
+
// then, build a 2d array of all possible combinations of the shared tags
|
|
353
|
+
let combined = explodeArray(sharedTags);
|
|
354
|
+
// finally, return the list
|
|
355
|
+
return combined.length ? combined.map(arr => [...tagsToTest, ...arr]) : [testTags];
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
*
|
|
359
|
+
* @param confTags string[]
|
|
360
|
+
* @param testTags string[]
|
|
361
|
+
* @returns boolean
|
|
362
|
+
*/
|
|
363
|
+
function tagsMatch(confTags, testTags) {
|
|
364
|
+
return intersection(confTags.map(t => t.toLowerCase()), testTags.map(t => t.toLowerCase()))?.length ? true : false;
|
|
365
|
+
}
|
|
290
366
|
|
|
291
367
|
class DocString extends String {
|
|
292
368
|
constructor(content, mediaType = '') {
|
|
@@ -317,6 +393,9 @@ class QuickPickleWorld {
|
|
|
317
393
|
this.info = { ...info };
|
|
318
394
|
}
|
|
319
395
|
async init() { }
|
|
396
|
+
tagsMatch(tags) {
|
|
397
|
+
return tagsMatch(tags, this.info.tags);
|
|
398
|
+
}
|
|
320
399
|
}
|
|
321
400
|
let worldConstructor = QuickPickleWorld;
|
|
322
401
|
function getWorldConstructor() {
|
|
@@ -393,37 +472,13 @@ function normalizeTags(tags) {
|
|
|
393
472
|
function is3d(arr) {
|
|
394
473
|
return Array.isArray(arr) && arr.every(item => Array.isArray(item));
|
|
395
474
|
}
|
|
396
|
-
function explodeArray(arr) {
|
|
397
|
-
if (arr.length === 0)
|
|
398
|
-
return [[]];
|
|
399
|
-
const [first, ...rest] = arr;
|
|
400
|
-
const subCombinations = explodeArray(rest);
|
|
401
|
-
return first.flatMap(item => subCombinations.map(subCombo => [item, ...subCombo]));
|
|
402
|
-
}
|
|
403
|
-
function explodeTags(explodeTags, testTags) {
|
|
404
|
-
if (!explodeTags.length)
|
|
405
|
-
return [testTags];
|
|
406
|
-
let tagsToTest = [...testTags];
|
|
407
|
-
// gather a 3d array of items that are shared between tags and each array in explodeTags
|
|
408
|
-
// and then remove those items from the tags array
|
|
409
|
-
const sharedTags = explodeTags.map(tagList => {
|
|
410
|
-
let items = tagList.filter(tag => tagsToTest.includes(tag));
|
|
411
|
-
if (items.length)
|
|
412
|
-
items.forEach(item => tagsToTest.splice(tagsToTest.indexOf(item), 1));
|
|
413
|
-
return items;
|
|
414
|
-
});
|
|
415
|
-
// then, build a 3d array of all possible combinations of the remaining tags
|
|
416
|
-
let combined = explodeArray(sharedTags);
|
|
417
|
-
// finally, return the list
|
|
418
|
-
return combined.length ? combined.map(arr => [...tagsToTest, ...arr]) : [testTags];
|
|
419
|
-
}
|
|
420
475
|
const quickpickle = (conf = {}) => {
|
|
421
476
|
let config;
|
|
422
477
|
let passedConfig = { ...conf };
|
|
423
478
|
return {
|
|
424
479
|
name: 'quickpickle-transform',
|
|
425
480
|
configResolved(resolvedConfig) {
|
|
426
|
-
config =
|
|
481
|
+
config = defaultsDeep(get(resolvedConfig, 'test.quickpickle') || {}, get(resolvedConfig, 'quickpickle') || {}, passedConfig, defaultConfig);
|
|
427
482
|
config.todoTags = normalizeTags(config.todoTags);
|
|
428
483
|
config.skipTags = normalizeTags(config.skipTags);
|
|
429
484
|
config.failTags = normalizeTags(config.failTags);
|
|
@@ -442,5 +497,5 @@ const quickpickle = (conf = {}) => {
|
|
|
442
497
|
};
|
|
443
498
|
};
|
|
444
499
|
|
|
445
|
-
export { After, AfterAll, AfterStep, Before, BeforeAll, BeforeStep, DocString, Given, QuickPickleWorld, Then, When, applyAfterAllHooks, applyAfterHooks, applyAfterStepHooks, applyBeforeAllHooks, applyBeforeHooks, applyBeforeStepHooks, quickpickle as default, defaultConfig, explodeTags, getWorldConstructor, normalizeTags, qp, quickpickle, setWorldConstructor };
|
|
500
|
+
export { After, AfterAll, AfterStep, Before, BeforeAll, BeforeStep, DocString, Given, QuickPickleWorld, Then, When, applyAfterAllHooks, applyAfterHooks, applyAfterStepHooks, applyBeforeAllHooks, applyBeforeHooks, applyBeforeStepHooks, quickpickle as default, defaultConfig, explodeTags, getWorldConstructor, normalizeTags, qp, quickpickle, setWorldConstructor, tagsMatch };
|
|
446
501
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/steps.ts","../src/tags.ts","../src/hooks.ts","../src/render.ts","../src/models/DocString.ts","../src/world.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/steps.ts","../src/tags.ts","../src/hooks.ts","../src/render.ts","../src/models/DocString.ts","../src/world.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":[],"mappings":"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"}
|
package/dist/render.d.ts
CHANGED
|
@@ -2,3 +2,43 @@ import type { Feature } from "@cucumber/messages";
|
|
|
2
2
|
import { type QuickPickleConfig } from '.';
|
|
3
3
|
export declare function renderGherkin(src: string, config: QuickPickleConfig, isMarkdown?: boolean): string;
|
|
4
4
|
export declare function renderFeature(feature: Feature, config: QuickPickleConfig): string;
|
|
5
|
+
/**
|
|
6
|
+
* This function "explodes" any tags in the "explodeTags" setting and returns all possible
|
|
7
|
+
* combinations of all the tags. The theory is that it allows you to write one Scenario that
|
|
8
|
+
* runs multiple times in different ways; e.g. with and without JS or in different browsers.
|
|
9
|
+
*
|
|
10
|
+
* To take this case as an example, if the explodeTags are:
|
|
11
|
+
* ```
|
|
12
|
+
* [
|
|
13
|
+
* ['nojs', 'js'],
|
|
14
|
+
* ['firefox', 'chromium', 'webkit'],
|
|
15
|
+
* ]
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* And the testTags are:
|
|
19
|
+
* ```
|
|
20
|
+
* ['nojs', 'js', 'snapshot']
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* Then the function will return:
|
|
24
|
+
* ```
|
|
25
|
+
* [
|
|
26
|
+
* ['nojs', 'snapshot'],
|
|
27
|
+
* ['js', 'snapshot'],
|
|
28
|
+
* ]
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* In that case, the test will be run twice.
|
|
32
|
+
*
|
|
33
|
+
* @param explodeTags the 2d array of tags that should be exploded
|
|
34
|
+
* @param testTags the tags to test against
|
|
35
|
+
* @returns a 2d array of all possible combinations of tags
|
|
36
|
+
*/
|
|
37
|
+
export declare function explodeTags(explodeTags: string[][], testTags: string[]): string[][];
|
|
38
|
+
/**
|
|
39
|
+
*
|
|
40
|
+
* @param confTags string[]
|
|
41
|
+
* @param testTags string[]
|
|
42
|
+
* @returns boolean
|
|
43
|
+
*/
|
|
44
|
+
export declare function tagsMatch(confTags: string[], testTags: string[]): boolean;
|
package/dist/world.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export interface QuickPickleWorldInterface {
|
|
|
13
13
|
[key: string]: any;
|
|
14
14
|
};
|
|
15
15
|
init: () => Promise<void>;
|
|
16
|
+
tagsMatch(tags: string[]): boolean;
|
|
16
17
|
}
|
|
17
18
|
export declare class QuickPickleWorld implements QuickPickleWorldInterface {
|
|
18
19
|
info: QuickPickleWorldInterface['info'];
|
|
@@ -20,6 +21,7 @@ export declare class QuickPickleWorld implements QuickPickleWorldInterface {
|
|
|
20
21
|
context: TestContext;
|
|
21
22
|
constructor(context: TestContext, info?: QuickPickleWorldInterface['info']);
|
|
22
23
|
init(): Promise<void>;
|
|
24
|
+
tagsMatch(tags: string[]): boolean;
|
|
23
25
|
}
|
|
24
26
|
export type WorldConstructor = new (context: TestContext, info?: QuickPickleWorldInterface['info'], worldConfig?: any) => QuickPickleWorldInterface;
|
|
25
27
|
export declare function getWorldConstructor(): WorldConstructor;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quickpickle",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.4",
|
|
4
4
|
"description": "Plugin for Vitest to run tests written in Gherkin Syntax.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"BDD",
|
|
@@ -61,6 +61,9 @@
|
|
|
61
61
|
"typescript": "^5.6.2",
|
|
62
62
|
"vitest": "^2.1.2"
|
|
63
63
|
},
|
|
64
|
+
"peerDependencies": {
|
|
65
|
+
"vitest": "^1.0.0 || >=2.0.0"
|
|
66
|
+
},
|
|
64
67
|
"repository": {
|
|
65
68
|
"type": "git",
|
|
66
69
|
"url": "https://github.com/dnotes/quickpickle.git"
|
package/README.md
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
# QuickPickle
|
|
2
|
-
|
|
3
|
-
QuickPickle is a plugin for [Vitest] to run tests written in [Gherkin Syntax].
|
|
4
|
-
It seamlessly integrates Gherkin Feature files into your Vitest testing workflow
|
|
5
|
-
by parsing them with the official [Gherkin Parser] and running them as Vitest tests.
|
|
6
|
-
|
|
7
|
-
## Features
|
|
8
|
-
|
|
9
|
-
- Seamless integration of Gherkin Feature files into Vitest testing workflow
|
|
10
|
-
- Parses Gherkin Feature files using the official [Gherkin Parser]
|
|
11
|
-
- Full typescript and javascript support (because it's really just Vitest)
|
|
12
|
-
- Full support for Gherkin 6 Syntax
|
|
13
|
-
|
|
14
|
-
### Benefits of Gherkin
|
|
15
|
-
|
|
16
|
-
- Write tests in plain English (or your team's language)
|
|
17
|
-
|
|
18
|
-
Because it uses natural language, Gherkin Syntax enables all stakeholders to
|
|
19
|
-
understand and contribute to tests, and having a common vocabulary to describe
|
|
20
|
-
functionality makes it easy to agree on and verify what the program does.
|
|
21
|
-
|
|
22
|
-
- Reuse test step definitions to minimize test code
|
|
23
|
-
|
|
24
|
-
Bugs can happen even in test code, so it's best if the test code changes as seldom
|
|
25
|
-
as possible, but functionality changes all the time. A small library of reusable step
|
|
26
|
-
definitions is much easier to maintain than a large corpus of test code.
|
|
27
|
-
|
|
28
|
-
### When NOT to use Gherkin
|
|
29
|
-
|
|
30
|
-
- For unit tests, it's usually better to use plain Vitest or another testing framework.
|
|
31
|
-
|
|
32
|
-
## Installation
|
|
33
|
-
|
|
34
|
-
```sh
|
|
35
|
-
npm install --save-dev quickpickle vitest
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Configuration
|
|
39
|
-
|
|
40
|
-
Add the quickpickle plugin to your Vitest configuration in vite.config.ts (or .js, etc.).
|
|
41
|
-
Also add the configuration to get the feature files, step definitions, world file, etc.
|
|
42
|
-
|
|
43
|
-
```ts
|
|
44
|
-
// vite.config.ts
|
|
45
|
-
import { quickpickle } from 'quickpickle';
|
|
46
|
-
|
|
47
|
-
export default {
|
|
48
|
-
plugins: [
|
|
49
|
-
quickpickle() // <-- Add the quickpickle plugin
|
|
50
|
-
],
|
|
51
|
-
test: {
|
|
52
|
-
include : [
|
|
53
|
-
'features/*.feature', // <-- Add Gherkin feature files into "test" configuration
|
|
54
|
-
// (you'll probably want other test files too, for unit tests etc.)
|
|
55
|
-
],
|
|
56
|
-
setupFiles: ['./tests/tests.steps.ts'] // <-- specify each setupfile here
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
If you have multiple configurations, you can also add the test settings in vitest.workspace.ts.
|
|
62
|
-
This is also where you could set up separate configurations for components vs. application,
|
|
63
|
-
different browser environments, different world constructors, etc.
|
|
64
|
-
|
|
65
|
-
```ts
|
|
66
|
-
// vitest.workspace.ts
|
|
67
|
-
import { defineWorkspace } from 'vitest/config';
|
|
68
|
-
|
|
69
|
-
export default defineWorkspace([
|
|
70
|
-
{ // configuration for feature files
|
|
71
|
-
extends: './vite.config.ts',
|
|
72
|
-
test: {
|
|
73
|
-
include : [ 'tests/*.feature' ],
|
|
74
|
-
setupFiles: [ 'tests/tests.steps.ts' ],
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
{ // configuration for unit tests
|
|
78
|
-
test: {
|
|
79
|
-
include : [ 'tests/*.test.ts' ],
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
])
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## Usage
|
|
86
|
-
|
|
87
|
-
### Write Feature files
|
|
88
|
-
|
|
89
|
-
Write your feature files in the directory specified above. Common convention
|
|
90
|
-
is to place feature files in a "features" directory, though some prefer the
|
|
91
|
-
"tests" directory. You can put them anywhere as long as they're listed in the
|
|
92
|
-
"include" configuration in vite.config.ts.
|
|
93
|
-
|
|
94
|
-
```gherkin
|
|
95
|
-
# features/example.feature
|
|
96
|
-
Feature: A simple example
|
|
97
|
-
|
|
98
|
-
Scenario: Adding numbers
|
|
99
|
-
Given a number 1
|
|
100
|
-
And a number 2
|
|
101
|
-
And a number 3
|
|
102
|
-
And another number 3
|
|
103
|
-
Then the sum should be 9
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### Run tests
|
|
107
|
-
|
|
108
|
-
```sh
|
|
109
|
-
npx vitest --run
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### Write step definitions
|
|
113
|
-
|
|
114
|
-
Write your step definitions in a typescript or javascript file as configured
|
|
115
|
-
in the "setupFiles" declaration in your vitest config.
|
|
116
|
-
|
|
117
|
-
These files will be imported into the Vitest test runner, and the code for
|
|
118
|
-
`Given`, `When`, `Then` will register each of the step definitions with quickpickle.
|
|
119
|
-
These step definitions should run immediately, i.e. at the top level of the script,
|
|
120
|
-
not as exported functions like a normal node module would do.
|
|
121
|
-
|
|
122
|
-
```ts
|
|
123
|
-
// features/example.steps.ts
|
|
124
|
-
import { Given, Then } from 'quickpickle'
|
|
125
|
-
|
|
126
|
-
Given('a/another number {int}', (world, int) => {
|
|
127
|
-
if (!world.numbers) world.numbers = [int]
|
|
128
|
-
else world.numbers.push(int)
|
|
129
|
-
})
|
|
130
|
-
|
|
131
|
-
Then('the sum should be {int}', (world, int) => {
|
|
132
|
-
expect(world.numbers.reduce((a,b) => a + b, 0)).toBe(int)
|
|
133
|
-
})
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### Define a custom "world" variable
|
|
137
|
-
|
|
138
|
-
...instructions coming soon! :)
|
|
139
|
-
|
|
140
|
-
## Differences from CucumberJS
|
|
141
|
-
|
|
142
|
-
The main library for Gherkin in the JS ecosystem is [CucumberJS],
|
|
143
|
-
a test runner written explicitly for Gherkin tests. QuickPickle aims to be
|
|
144
|
-
a complete replacement for that library, using Vite to handle bundling
|
|
145
|
-
and test running while maintaining functional parity with the original.
|
|
146
|
-
Nonetheless, there are differences. Here are the important ones that have
|
|
147
|
-
come to notice:
|
|
148
|
-
|
|
149
|
-
- Each step definition MUST have the "world" variable as its first parameter:
|
|
150
|
-
|
|
151
|
-
```ts
|
|
152
|
-
// QuickPickle step definition
|
|
153
|
-
Given('a number {int}', function(world:QuickPickleWorldInterface, int:number) {
|
|
154
|
-
if (!Array.isArray(world.numbers)) world.numbers = [int]
|
|
155
|
-
else world.numbers.push(int)
|
|
156
|
-
})
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
In CucumberJS, you would write your step definitions using "this":
|
|
160
|
-
|
|
161
|
-
```ts
|
|
162
|
-
// CucumberJS step definition
|
|
163
|
-
Given('a number {int}', function(int:number) {
|
|
164
|
-
if (!Array.isArray(this.numbers)) this.numbers = [int]
|
|
165
|
-
else this.numbers.push(int)
|
|
166
|
-
})
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
"this" led to some sub-optimal usage, including:
|
|
170
|
-
- Arrow functions couldn't be used, because "this" doesn't work with them.
|
|
171
|
-
- When using a custom world, you would have to add `(this:CustomWorldType, ...params)`
|
|
172
|
-
in typescript files or else you wouldn't get the right types.
|
|
173
|
-
|
|
174
|
-
- The default "world" variable contains information about the current step.
|
|
175
|
-
|
|
176
|
-
In CucumberJS, the default "world" variable contains information about the
|
|
177
|
-
test *suite*, but not the *current step*. It's the opposite in QuickPickle;
|
|
178
|
-
the "world" variable passed to each test step contains an "info" property
|
|
179
|
-
with data about the current feature, rule, scenario or example, step, and line:
|
|
180
|
-
|
|
181
|
-
```gherkin
|
|
182
|
-
Feature: Basic Test
|
|
183
|
-
|
|
184
|
-
Rule: Every step must have access to information about itself
|
|
185
|
-
This is so we can know what is happening when writing step definitions
|
|
186
|
-
|
|
187
|
-
@tag-test
|
|
188
|
-
Example: The world has info
|
|
189
|
-
Given I run the tests
|
|
190
|
-
Then the property "info.feature" should include "Basic Test"
|
|
191
|
-
And the property "info.rule" should include "Every step must have access to information about itself"
|
|
192
|
-
And the property "info.scenario" should include "The world has info"
|
|
193
|
-
And the property "info.tags" should include "@tag-test"
|
|
194
|
-
And the property "info.step" should include "FWAH!!! (or really whatever you write here, since it's part of the step)"
|
|
195
|
-
And the property "info.line" should include "23"
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
## Acknowledgements
|
|
199
|
-
|
|
200
|
-
This project started out as a fork of [vitest-cucumber-plugin] by Sam Ziegler.
|
|
201
|
-
It's been almost completely rewritten in the following ways:
|
|
202
|
-
|
|
203
|
-
- it has been converted to typescript
|
|
204
|
-
- a custom Gherkin parser has been replaced with the official [Gherkin Parser]
|
|
205
|
-
- the step definition format has been reverted to more closely match CucumberJS
|
|
206
|
-
|
|
207
|
-
Nonetheless, the brilliant ideas behind the original plugin are still present
|
|
208
|
-
in the architecture of this project. Thanks Sam, your work blew my mind.
|
|
209
|
-
|
|
210
|
-

|
|
211
|
-
|
|
212
|
-
[Vitest]: https://vitest.dev/
|
|
213
|
-
[Gherkin Syntax]: https://cucumber.io/docs/gherkin/reference/
|
|
214
|
-
[Gherkin Parser]: https://www.npmjs.com/package/@cucumber/gherkin
|
|
215
|
-
[CucumberJS]: https://github.com/cucumber/cucumber-js
|
|
216
|
-
[vitest-cucumber-plugin]: https://github.com/samuel-ziegler/vitest-cucumber-plugin
|