quickpickle 1.2.1 → 1.2.3

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 CHANGED
@@ -247,65 +247,145 @@ ${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 = (lodashEs.intersection(config.todoTags, tags).length > 0) ? '.todo' : '';
251
- let skip = (lodashEs.intersection(config.skipTags, tags).length > 0) ? '.skip' : '';
252
- let fails = (lodashEs.intersection(config.failTags, tags).length > 0) ? '.fails' : '';
253
- let concurrent = (lodashEs.intersection(config.concurrentTags, tags).length > 0) ? '.concurrent' : '';
254
- let sequential = (lodashEs.intersection(config.sequentialTags, tags).length > 0) ? '.sequential' : '';
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
- // For Scenario Outlines with examples
257
- if (child.scenario.examples?.[0]?.tableHeader && child.scenario.examples?.[0]?.tableBody) {
258
- let paramNames = child.scenario?.examples?.[0].tableHeader?.cells?.map(c => c.value) || [];
259
- let paramValues = child.scenario?.examples?.[0].tableBody.map((r) => {
260
- return lodashEs.fromPairs(r.cells.map((c, i) => [paramNames[i], c.value]));
261
- });
262
- function replaceParamNames(t, withBraces) {
263
- paramNames.forEach(p => {
264
- t = t.replace(new RegExp(`<${p}>`, 'g'), (withBraces ? `$\{${p}\}` : `$${p}`));
256
+ // Deal with exploding tags
257
+ let taglists = explodeTags(config.explodeTags, tags);
258
+ let isExploded = taglists.length > 1 ? true : false;
259
+ return taglists.map((tags, explodedIdx) => {
260
+ // For Scenario Outlines with examples
261
+ if (child.scenario.examples?.[0]?.tableHeader && child.scenario.examples?.[0]?.tableBody) {
262
+ let paramNames = child.scenario?.examples?.[0].tableHeader?.cells?.map(c => c.value) || [];
263
+ let paramValues = child.scenario?.examples?.[0].tableBody.map((r) => {
264
+ return lodashEs.fromPairs(r.cells.map((c, i) => [paramNames[i], c.value]));
265
265
  });
266
- return t;
267
- }
268
- let describe = q(replaceParamNames(child.scenario?.name ?? ''));
269
- let name = replaceParamNames(child.scenario?.name ?? '', true).replace(/`/g, '\`');
270
- return `
266
+ function replaceParamNames(t, withBraces) {
267
+ paramNames.forEach(p => {
268
+ t = t.replace(new RegExp(`<${p}>`, 'g'), (withBraces ? `$\{${p}\}` : `$${p}`));
269
+ });
270
+ return t;
271
+ }
272
+ let describe = q(replaceParamNames(child.scenario?.name ?? ''));
273
+ let name = replaceParamNames(child.scenario?.name ?? '', true).replace(/`/g, '\`');
274
+ return `
271
275
  ${sp}test${attrs}.for(${JSON.stringify(paramValues)})(
272
276
  ${sp} '${q(child.scenario?.keyword || '')}: ${describe}',
273
277
  ${sp} async ({ ${paramNames?.join(', ')} }, context) => {
274
278
  ${sp} let state = await ${initFn}(context, \`${name}\`, ['${tags.join("', '") || ''}']);
275
279
  ${child.scenario?.steps.map((step, i) => {
276
- let text = step.text.replace(/`/g, '\\`');
277
- text = replaceParamNames(text, true);
278
- return `${sp} await qp(\`${text}\`, state, ${step.location.line});`;
279
- }).join('\n')}
280
+ let text = step.text.replace(/`/g, '\\`');
281
+ text = replaceParamNames(text, true);
282
+ return `${sp} await qp(\`${text}\`, state, ${step.location.line}${isExploded ? '.' + explodedIdx : ''});`;
283
+ }).join('\n')}
280
284
  ${sp} await afterScenario(state);
281
285
  ${sp} }
282
286
  ${sp});
283
287
  `;
284
- }
285
- return `
288
+ }
289
+ return `
286
290
  ${sp}test${attrs}('${q(child.scenario.keyword)}: ${q(child.scenario.name)}', async (context) => {
287
291
  ${sp} let state = await ${initFn}(context, '${q(child.scenario.name)}', ['${tags.join("', '") || ''}']);
288
- ${renderSteps(child.scenario.steps, config, sp + ' ')}
292
+ ${renderSteps(child.scenario.steps, config, sp + ' ', isExploded ? `.${explodedIdx}` : '')}
289
293
  ${sp} await afterScenario(state);
290
294
  ${sp}});
291
295
  `;
296
+ }).join('\n\n');
292
297
  }
293
- function renderSteps(steps, config, sp = ' ') {
298
+ function renderSteps(steps, config, sp = ' ', explodedText = '') {
294
299
  return steps.map(step => {
295
300
  if (step.dataTable) {
296
301
  let data = JSON.stringify(step.dataTable.rows.map(r => {
297
302
  return r.cells.map(c => c.value);
298
303
  }));
299
- 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});`;
300
305
  }
301
306
  else if (step.docString) {
302
307
  let data = JSON.stringify(lodashEs.pick(step.docString, ['content', 'mediaType']));
303
- 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});`;
304
309
  }
305
- return `${sp}await qp('${q(step.text)}', state, ${step.location.line});`;
310
+ return `${sp}await qp('${q(step.text)}', state, ${step.location.line}${explodedText});`;
306
311
  }).join('\n');
307
312
  }
313
+ /**
314
+ * Escapes quotation marks in a string for the purposes of this rendering function.
315
+ * @param t string
316
+ * @returns string
317
+ */
308
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
+ }
309
389
 
310
390
  class DocString extends String {
311
391
  constructor(content, mediaType = '') {
@@ -336,6 +416,9 @@ class QuickPickleWorld {
336
416
  this.info = { ...info };
337
417
  }
338
418
  async init() { }
419
+ tagsMatch(tags) {
420
+ return tagsMatch(tags, this.info.tags);
421
+ }
339
422
  }
340
423
  let worldConstructor = QuickPickleWorld;
341
424
  function getWorldConstructor() {
@@ -392,6 +475,10 @@ const defaultConfig = {
392
475
  * Tags to run sequentially, using Vitest's `test.sequential` implementation.
393
476
  */
394
477
  sequentialTags: ['@sequential'],
478
+ /**
479
+ * Explode tags into multiple tests, e.g. for different browsers.
480
+ */
481
+ explodeTags: [],
395
482
  /**
396
483
  * The config for the World class. Must be serializable with JSON.stringify.
397
484
  * Not used by the default World class, but may be used by plugins or custom
@@ -405,23 +492,31 @@ function normalizeTags(tags) {
405
492
  tags = Array.isArray(tags) ? tags : tags.split(/\s*,\s*/g);
406
493
  return tags.filter(Boolean).map(tag => tag.startsWith('@') ? tag : `@${tag}`);
407
494
  }
408
- const quickpickle = (passedConfig = {}) => {
495
+ function is3d(arr) {
496
+ return Array.isArray(arr) && arr.every(item => Array.isArray(item));
497
+ }
498
+ const quickpickle = (conf = {}) => {
409
499
  let config;
500
+ let passedConfig = { ...conf };
410
501
  return {
411
502
  name: 'quickpickle-transform',
412
503
  configResolved(resolvedConfig) {
413
- config = lodashEs.defaults(defaultConfig, passedConfig, lodashEs.get(resolvedConfig, 'quickpickle'));
504
+ config = lodashEs.defaultsDeep(lodashEs.get(resolvedConfig, 'test.quickpickle') || {}, lodashEs.get(resolvedConfig, 'quickpickle') || {}, passedConfig, defaultConfig);
414
505
  config.todoTags = normalizeTags(config.todoTags);
415
506
  config.skipTags = normalizeTags(config.skipTags);
416
507
  config.failTags = normalizeTags(config.failTags);
417
508
  config.concurrentTags = normalizeTags(config.concurrentTags);
418
509
  config.sequentialTags = normalizeTags(config.sequentialTags);
510
+ if (is3d(config.explodeTags))
511
+ config.explodeTags = config.explodeTags.map(normalizeTags);
512
+ else
513
+ config.explodeTags = [normalizeTags(config.explodeTags)];
419
514
  },
420
515
  async transform(src, id) {
421
516
  if (featureRegex.test(id)) {
422
517
  return renderGherkin(src, config, id.match(/\.md$/) ? true : false);
423
518
  }
424
- }
519
+ },
425
520
  };
426
521
  };
427
522
 
@@ -448,9 +543,11 @@ exports.applyBeforeHooks = applyBeforeHooks;
448
543
  exports.applyBeforeStepHooks = applyBeforeStepHooks;
449
544
  exports.default = quickpickle;
450
545
  exports.defaultConfig = defaultConfig;
546
+ exports.explodeTags = explodeTags;
451
547
  exports.getWorldConstructor = getWorldConstructor;
452
548
  exports.normalizeTags = normalizeTags;
453
549
  exports.qp = qp;
454
550
  exports.quickpickle = quickpickle;
455
551
  exports.setWorldConstructor = setWorldConstructor;
552
+ exports.tagsMatch = tagsMatch;
456
553
  //# sourceMappingURL=index.cjs.map
@@ -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","defaults","get"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAM,KAAK,GAAqB,EAAE,CAAC;AAQnC,MAAM,iBAAiB,GAAG,IAAIA,qCAAiB,CAAC,IAAIC,yCAAqB,EAAE,CAAC,CAAC;AAEtE,MAAM,iBAAiB,GAAG,CAAC,UAAyB,EAAE,CAAsC,KAAU;IAC3G,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC1E,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,IAAW,KAA2B;IACvE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,WAAkC,EAAE,cAA8B,KAAI;QACzF,MAAM,OAAO,GAAG,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,GAAG,WAAW,EAAE;oBACtB,cAAc;AACd,oBAAA,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAU,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1D,iBAAA,CAAC,CAAC;SACJ;aAAM;AACL,YAAA,OAAO,WAAW,CAAC;SACpB;KACF,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AAEK,MAAM,uBAAuB,GAAG,CAAC,IAAW,KAAyB;AAC1E,IAAA,MAAM,qBAAqB,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAE9D,IAAI,CAAC,qBAAqB,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;QAChE,MAAM,IAAI,KAAK,CAAC,CAAA;;WAET,IAAI,CAAA;;;;;AAKd,CAAA,CAAC,CAAC;KACA;AAED,IAAA,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,QAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAA,CAAA,CAAG,CAAC,CAAC;KAChE;AAED,IAAA,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;;AC/DD,MAAM,mBAAmB,GAAG,CAAC,cAAsB,KAAmB;AACpE,IAAA,IAAI;AACF,QAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;AAC/C,QAAA,OAAO,gBAAgB,CAAC;KACzB;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAoC,KAAe,CAAC,OAAO,CAAE,CAAA,CAAC,CAAC;KAChF;AACH,CAAC,CAAA;AAEM,MAAM,YAAY,GAAG,CAAC,cAAuB,KAAiC;IACnF,IAAI,CAAC,cAAc,EAAE;AACnB,QAAA,OAAO,CAAC,IAAc,KAAK,IAAI,CAAC;KACjC;AAED,IAAA,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAEjE,OAAO,CAAC,IAAc,KAAI;QACxB,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnD,QAAA,OAAO,MAAM,CAAC;AAChB,KAAC,CAAC;AACJ,CAAC;;ACZD,MAAM,QAAQ,GAAmB;AAC/B,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,MAAM,EAAE,EAAE;AACV,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,QAAQ,EAAE,EAAE;AACZ,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,SAAS,EAAE,EAAE;CACd,CAAC;AAWF,MAAM,UAAU,GAAG,OAAO,SAAiB,EAAE,KAAU,KAAkB;AACvE,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AAClC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACpB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SACrB;KACF;AACD,IAAA,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,SAAiB,EAAE,IAA2C,EAAE,CAAuB,KAAU;AAChH,IAAA,IAAI,QAAc,CAAC;AAEnB,IAAA,IAAIC,mBAAU,CAAC,IAAI,CAAC,EAAE;AACpB,QAAA,QAAQ,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,IAAI,EAAE,CAAC;KAC5D;AAAM,SAAA,IAAIC,iBAAQ,CAAC,IAAI,CAAC,EAAE;AACzB,QAAA,QAAQ,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAE,EAAE,YAAY,EAAE,MAAM,IAAI,EAAE,CAAC;KAC5D;AAAM,SAAA,IAAIC,iBAAQ,CAAC,IAAI,CAAC,EAAE;QACzB,QAAQ,GAAG,IAAY,CAAC;AACxB,QAAA,QAAQ,CAAC,CAAC,GAAG,CAAE,CAAC;KACjB;SAAM;AACL,QAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;KACtE;IAED,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAEpD,IAAA,QAAQ,CAAC,SAAS,CAAC,GAAGC,eAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC9D,CAAC,CAAC;MAEW,SAAS,GAAG,CAAC,IAA2C,EAAE,CAAuB,KAAU,EAAG,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA,GAAG;AACpI,MAAM,mBAAmB,GAAG,CAAC,KAAU,KAAmB,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE;MAEnF,MAAM,GAAG,CAAC,IAA2C,EAAE,CAAuB,KAAU,EAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA,GAAG;AAC9H,MAAM,gBAAgB,GAAG,CAAC,KAAU,KAAmB,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE;MAE7E,UAAU,GAAG,CAAC,IAA2C,EAAE,CAAuB,KAAU,EAAG,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA,GAAG;AACtI,MAAM,oBAAoB,GAAG,CAAC,KAAU,KAAmB,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE;MAErF,QAAQ,GAAG,CAAC,IAA2C,EAAE,CAAuB,KAAU,EAAG,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA,GAAG;AAClI,MAAM,kBAAkB,GAAG,CAAC,KAAU,KAAmB,UAAU,CAAC,UAAU,EAAE,KAAK,EAAE;MAEjF,KAAK,GAAG,CAAC,IAA2C,EAAE,CAAuB,KAAU,EAAG,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA,GAAG;AAC5H,MAAM,eAAe,GAAG,CAAC,KAAU,KAAmB,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE;MAE3E,SAAS,GAAG,CAAC,IAA2C,EAAE,CAAuB,KAAU,EAAG,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA,GAAG;AACpI,MAAM,mBAAmB,GAAG,CAAC,KAAU,KAAmB,UAAU,CAAC,WAAW,EAAE,KAAK;;ACxE9F,MAAM,MAAM,GAAGC,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AAC3C,MAAM,OAAO,GAAG,IAAIC,kBAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC/C,MAAM,cAAc,GAAG,IAAIA,kBAAO,CAAC,0BAA0B,EAAE,CAAC;AAChE,MAAM,aAAa,GAAG,IAAIA,kBAAO,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAClE,MAAM,SAAS,GAAG,IAAIA,kBAAO,CAAC,6BAA6B,EAAE,CAAC;AAC9D,MAAM,QAAQ,GAAG,IAAIA,kBAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;SAExC,aAAa,CAAC,GAAU,EAAE,MAAwB,EAAE,UAAmB,EAAA;;IAGrF,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;;AAGnF,IAAA,IAAI,CAAC,eAAe,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC3E,QAAA,OAAO,EAAE,CAAA;KACV;IAED,OAAO,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BP,EAAA,aAAa,CAAC,eAAe,CAAC,OAAQ,EAAE,MAAM,CAAC,CAAA;CAChD,CAAA;AACD,CAAC;AAEe,SAAA,aAAa,CAAC,OAAe,EAAE,MAAwB,EAAA;;AAGrE,IAAA,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAA;;AAGxC,IAAA,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,QAA0B,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAEpG,IAAA,IAAI,WAAW,GAAG,CAAA,EAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA,EAAA,EAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;;IAG7D,OAAM,CAAA;;8CAEsC,WAAW,CAAA,qBAAA,EAAwB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;;;0BAG/F,WAAW,CAAA;;;;EAInC,eAAe,CAAA;;;;YAIL,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAK,EAAA,EAAA,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;EAChD,QAAQ,CAAA;IACN,CAAA;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,KAA4B,EAAA;AAC1C,IAAA,OAAO,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,QAAmC,EAAE,MAAwB,EAAE,IAAa,EAAE,EAAE,GAAG,IAAI,EAAA;AAE7G,IAAA,MAAM,MAAM,GAAG;AACb,QAAA,eAAe,EAAE,EAAE;AACnB,QAAA,QAAQ,EAAE,EAAE;KACb,CAAA;IAED,IAAI,CAAC,QAAQ,CAAC,MAAM;AAAE,QAAA,OAAO,MAAM,CAAA;IAEnC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;AAC5C,QAAA,MAAM,CAAC,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAG,CAAC,UAAW,CAAC,KAAe,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;KAChG;AAED,IAAA,KAAK,IAAI,KAAK,IAAI,QAAQ,EAAE;AAC1B,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AACjB,YAAA,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;SACvD;AACI,aAAA,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;AACzC,YAAA,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;SAC3D;KACF;AAED,IAAA,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAkB,EAAE,MAAwB,EAAE,IAAa,EAAE,EAAE,GAAG,IAAI,EAAA;IACxF,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,IAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IACtD,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,IAAK,CAAC,QAAuB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;IAEhH,OAAO,CAAA;AACP,EAAA,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,IAAK,CAAC,OAAO,CAAC,CAAA,EAAA,EAAK,CAAC,CAAC,KAAK,CAAC,IAAK,CAAC,IAAI,CAAC,CAAA;;EAE7D,EAAE,CAAA;EACF,EAAE,CAAA;EACF,EAAE,CAAA,uBAAA,EAA0B,CAAC,CAAC,KAAK,CAAC,IAAK,CAAC,IAAI,CAAC,CAAA;EAC/C,eAAe,CAAA;EACf,EAAE,CAAA;EACF,EAAE,CAAA;;EAEF,QAAQ,CAAA;;EAER,EAAE,CAAA;CACH,CAAA;AACD,CAAC;AAED,SAAS,cAAc,CAAC,KAAkB,EAAE,MAAwB,EAAE,IAAa,EAAE,EAAE,GAAG,IAAI,EAAA;AAC5F,IAAA,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,kBAAkB,GAAG,cAAc,CAAA;IAChE,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,QAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAE1D,IAAI,IAAI,GAAG,CAACC,qBAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,GAAG,EAAE,CAAA;IAC1E,IAAI,IAAI,GAAG,CAACA,qBAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,GAAG,EAAE,CAAA;IAC1E,IAAI,KAAK,GAAG,CAACA,qBAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,GAAG,EAAE,CAAA;IAC5E,IAAI,UAAU,GAAG,CAACA,qBAAY,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,GAAG,EAAE,CAAA;IAC5F,IAAI,UAAU,GAAG,CAACA,qBAAY,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,GAAG,EAAE,CAAA;IAC5F,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU,CAAA;;IAGzD,IAAI,KAAK,CAAC,QAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,WAAW,IAAI,KAAK,CAAC,QAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE;AAE1F,QAAA,IAAI,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;AAC1F,QAAA,IAAI,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;YAClE,OAAOC,kBAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,CAAE,UAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAE,CAAC,CAAC,CAAA;AACrE,SAAC,CAAC,CAAA;AAEF,QAAA,SAAS,iBAAiB,CAAC,CAAQ,EAAE,UAAmB,EAAA;AACtD,YAAA,UAAU,CAAC,OAAO,CAAC,CAAC,IAAG;AACrB,gBAAA,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAI,CAAA,EAAA,CAAC,CAAG,CAAA,CAAA,EAAE,GAAG,CAAC,GAAG,UAAU,GAAG,CAAA,GAAA,EAAM,CAAC,CAAI,EAAA,CAAA,GAAI,CAAI,CAAA,EAAA,CAAC,CAAE,CAAA,EAAE,CAAA;AACjF,aAAC,CAAC,CAAA;AACF,YAAA,OAAO,CAAC,CAAA;SACT;AAED,QAAA,IAAI,QAAQ,GAAG,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;QAC/D,IAAI,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAElF,OAAO,CAAA;EACT,EAAE,CAAA,IAAA,EAAO,KAAK,CAAQ,KAAA,EAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;AACjD,EAAA,EAAE,CAAM,GAAA,EAAA,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAA,EAAA,EAAK,QAAQ,CAAA;AACrD,EAAA,EAAE,cAAc,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;AACtC,EAAA,EAAE,CAAyB,sBAAA,EAAA,MAAM,CAAe,YAAA,EAAA,IAAI,CAAS,MAAA,EAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;AACpF,EAAA,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC,CAAC,KAAI;AACrC,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACzC,YAAA,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAC,IAAI,CAAC,CAAA;YACnC,OAAO,CAAA,EAAG,EAAE,CAAA,eAAA,EAAkB,IAAI,CAAA,WAAA,EAAc,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAA,EAAA,CAAI,CAAA;AACxE,SAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CACZ,CAAA;EACE,EAAE,CAAA;EACF,EAAE,CAAA;EACF,EAAE,CAAA;CACH,CAAA;KACE;IAED,OAAO,CAAA;AACP,EAAA,EAAE,OAAO,KAAK,CAAA,EAAA,EAAK,CAAC,CAAC,KAAK,CAAC,QAAS,CAAC,OAAO,CAAC,CAAA,EAAA,EAAK,CAAC,CAAC,KAAK,CAAC,QAAS,CAAC,IAAI,CAAC,CAAA;AACzE,EAAA,EAAE,uBAAuB,MAAM,CAAA,WAAA,EAAc,CAAC,CAAC,KAAK,CAAC,QAAS,CAAC,IAAI,CAAC,CAAA,KAAA,EAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;AACnG,EAAA,WAAW,CAAC,KAAK,CAAC,QAAS,CAAC,KAAe,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;EAC/D,EAAE,CAAA;EACF,EAAE,CAAA;CACH,CAAA;AACD,CAAC;AAED,SAAS,WAAW,CAAC,KAAY,EAAE,MAAwB,EAAE,EAAE,GAAG,IAAI,EAAA;AACpE,IAAA,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;AAEtB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAG;AACpD,gBAAA,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;aACjC,CAAC,CAAC,CAAA;AACH,YAAA,OAAO,GAAG,EAAE,CAAA,UAAA,EAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAa,UAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAK,EAAA,EAAA,IAAI,IAAI,CAAA;SAClF;AACI,aAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AACvB,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAACC,aAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,EAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AACxE,YAAA,OAAO,GAAG,EAAE,CAAA,UAAA,EAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAa,UAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAK,EAAA,EAAA,IAAI,IAAI,CAAA;SAClF;AAED,QAAA,OAAO,GAAG,EAAE,CAAA,UAAA,EAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,UAAA,EAAa,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAA;AAC1E,KAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,MAAM,CAAC,GAAG,CAAC,CAAQ,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;AC7M1C,MAAO,SAAU,SAAQ,MAAM,CAAA;IAGnC,WAAY,CAAA,OAAe,EAAE,SAAA,GAAoB,EAAE,EAAA;QACjD,KAAK,CAAC,OAAO,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;AAED,IAAA,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAY,EAAA;AAC/B,QAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;SAC/B;AACD,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;AACF;;MCDY,gBAAgB,CAAA;IAQ3B,WAAY,CAAA,OAAmB,EAAE,IAAuC,EAAA;AAPxE,QAAA,IAAA,CAAA,IAAI,GAAsC;AACxC,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,IAAI,EAAE,EAAE;SACT,CAAA;QACD,IAAM,CAAA,MAAA,GAAwC,EAAE,CAAA;AAG9C,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;AACtB,QAAA,IAAI,IAAI;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,EAAC,GAAG,IAAI,EAAC,CAAA;KAChC;IACD,MAAM,IAAI,GAAA,GAAK;AAChB,CAAA;AAQD,IAAI,gBAAgB,GAAoB,gBAAgB,CAAA;SAExC,mBAAmB,GAAA;AACjC,IAAA,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAEK,SAAU,mBAAmB,CAAC,WAA6B,EAAA;IAC/D,gBAAgB,GAAG,WAAW,CAAA;AAChC;;AC5BA,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAapC,MAAM,KAAK,GAAG,kBAAkB;AAChC,MAAM,IAAI,GAAG,kBAAkB;AAC/B,MAAM,IAAI,GAAG,kBAAkB;AAqB/B,MAAM,EAAE,GAAG,OAAO,IAAY,EAAE,KAAU,EAAE,IAAY,EAAE,IAAU,KAAkB;AAC3F,IAAA,MAAM,mBAAmB,GAAwB,uBAAuB,CAAC,IAAI,CAAC,CAAC;;AAG/E,IAAA,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;AACtB,IAAA,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;;AAGtB,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,QAAA,IAAI,GAAG,IAAIC,kBAAS,CAAC,IAAI,CAAC,CAAA;KAC3B;AACI,SAAA,IAAI,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE;AACxC,QAAA,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;KACnD;AAED,IAAA,IAAI;QACF,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAC5B,QAAA,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC3F,mBAAmB,CAAC,KAAK,CAAC,CAAC;KAC5B;IACD,OAAM,CAAK,EAAE;AACX,QAAA,CAAC,CAAC,OAAO,GAAG,CAAA,EAAG,IAAI,CAAA,GAAA,EAAM,IAAI,CAAA,GAAA,EAAM,CAAC,CAAC,OAAO,CAAA,CAAE,CAAA;AAC9C,QAAA,MAAM,CAAC,CAAA;KACR;AACH,EAAE;AAWW,MAAA,aAAa,GAAsB;AAE9C;;AAEG;AACH,IAAA,QAAQ,EAAE,CAAC,OAAO,EAAC,MAAM,CAAC;AAE1B;;AAEG;IACH,QAAQ,EAAE,CAAC,OAAO,CAAC;AAEnB;;AAEG;AACH,IAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;AAEhC;;AAEG;IACH,cAAc,EAAE,CAAC,aAAa,CAAC;AAE/B;;AAEG;IACH,cAAc,EAAE,CAAC,aAAa,CAAC;AAE/B;;;;AAIG;AACH,IAAA,WAAW,EAAE,EAAE;EAEhB;AAMK,SAAU,aAAa,CAAC,IAA+B,EAAA;AAC3D,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,EAAE,CAAA;IACpB,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;AAC1D,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC,CAAA;AAC/E,CAAC;MAEY,WAAW,GAAG,CAAC,YAA0C,GAAA,EAAE,KAAY;AAClF,IAAA,IAAI,MAAyB,CAAC;IAE9B,OAAO;AACL,QAAA,IAAI,EAAE,uBAAuB;AAC7B,QAAA,cAAc,CAAC,cAA8B,EAAA;AAC3C,YAAA,MAAM,GAAGC,iBAAQ,CACf,aAAa,EACb,YAAY,EACZC,YAAG,CAAC,cAAc,EAAE,aAAa,CAAC,CACd,CAAC;YACvB,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAChD,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAChD,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAChD,MAAM,CAAC,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;YAC5D,MAAM,CAAC,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;SAC7D;AACD,QAAA,MAAM,SAAS,CAAC,GAAW,EAAE,EAAU,EAAA;AACrC,YAAA,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBACzB,OAAO,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAA;aACpE;SACF;KACF,CAAC;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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,26 +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 QuickPickleConfig<T = {
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
- worldConfig: T;
23
+ explodeTags: string | string[] | string[][];
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>;
22
36
  };
23
37
  export declare const defaultConfig: QuickPickleConfig;
24
38
  export declare function normalizeTags(tags?: string | string[] | undefined): string[];
25
- export declare const quickpickle: (passedConfig?: Partial<QuickPickleConfig>) => Plugin;
39
+ export declare const quickpickle: (conf?: Partial<QuickPickleConfigSetting>) => Plugin;
26
40
  export default quickpickle;
package/dist/index.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ExpressionFactory, ParameterTypeRegistry } from '@cucumber/cucumber-expressions';
2
- import { isFunction, isString, isObject, concat, intersection, fromPairs, pick, defaults, 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
4
  import * as Gherkin from '@cucumber/gherkin';
5
5
  import * as Messages from '@cucumber/messages';
@@ -224,65 +224,145 @@ ${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 = (intersection(config.todoTags, tags).length > 0) ? '.todo' : '';
228
- let skip = (intersection(config.skipTags, tags).length > 0) ? '.skip' : '';
229
- let fails = (intersection(config.failTags, tags).length > 0) ? '.fails' : '';
230
- let concurrent = (intersection(config.concurrentTags, tags).length > 0) ? '.concurrent' : '';
231
- let sequential = (intersection(config.sequentialTags, tags).length > 0) ? '.sequential' : '';
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
- // For Scenario Outlines with examples
234
- if (child.scenario.examples?.[0]?.tableHeader && child.scenario.examples?.[0]?.tableBody) {
235
- let paramNames = child.scenario?.examples?.[0].tableHeader?.cells?.map(c => c.value) || [];
236
- let paramValues = child.scenario?.examples?.[0].tableBody.map((r) => {
237
- return fromPairs(r.cells.map((c, i) => [paramNames[i], c.value]));
238
- });
239
- function replaceParamNames(t, withBraces) {
240
- paramNames.forEach(p => {
241
- t = t.replace(new RegExp(`<${p}>`, 'g'), (withBraces ? `$\{${p}\}` : `$${p}`));
233
+ // Deal with exploding tags
234
+ let taglists = explodeTags(config.explodeTags, tags);
235
+ let isExploded = taglists.length > 1 ? true : false;
236
+ return taglists.map((tags, explodedIdx) => {
237
+ // For Scenario Outlines with examples
238
+ if (child.scenario.examples?.[0]?.tableHeader && child.scenario.examples?.[0]?.tableBody) {
239
+ let paramNames = child.scenario?.examples?.[0].tableHeader?.cells?.map(c => c.value) || [];
240
+ let paramValues = child.scenario?.examples?.[0].tableBody.map((r) => {
241
+ return fromPairs(r.cells.map((c, i) => [paramNames[i], c.value]));
242
242
  });
243
- return t;
244
- }
245
- let describe = q(replaceParamNames(child.scenario?.name ?? ''));
246
- let name = replaceParamNames(child.scenario?.name ?? '', true).replace(/`/g, '\`');
247
- return `
243
+ function replaceParamNames(t, withBraces) {
244
+ paramNames.forEach(p => {
245
+ t = t.replace(new RegExp(`<${p}>`, 'g'), (withBraces ? `$\{${p}\}` : `$${p}`));
246
+ });
247
+ return t;
248
+ }
249
+ let describe = q(replaceParamNames(child.scenario?.name ?? ''));
250
+ let name = replaceParamNames(child.scenario?.name ?? '', true).replace(/`/g, '\`');
251
+ return `
248
252
  ${sp}test${attrs}.for(${JSON.stringify(paramValues)})(
249
253
  ${sp} '${q(child.scenario?.keyword || '')}: ${describe}',
250
254
  ${sp} async ({ ${paramNames?.join(', ')} }, context) => {
251
255
  ${sp} let state = await ${initFn}(context, \`${name}\`, ['${tags.join("', '") || ''}']);
252
256
  ${child.scenario?.steps.map((step, i) => {
253
- let text = step.text.replace(/`/g, '\\`');
254
- text = replaceParamNames(text, true);
255
- return `${sp} await qp(\`${text}\`, state, ${step.location.line});`;
256
- }).join('\n')}
257
+ let text = step.text.replace(/`/g, '\\`');
258
+ text = replaceParamNames(text, true);
259
+ return `${sp} await qp(\`${text}\`, state, ${step.location.line}${isExploded ? '.' + explodedIdx : ''});`;
260
+ }).join('\n')}
257
261
  ${sp} await afterScenario(state);
258
262
  ${sp} }
259
263
  ${sp});
260
264
  `;
261
- }
262
- return `
265
+ }
266
+ return `
263
267
  ${sp}test${attrs}('${q(child.scenario.keyword)}: ${q(child.scenario.name)}', async (context) => {
264
268
  ${sp} let state = await ${initFn}(context, '${q(child.scenario.name)}', ['${tags.join("', '") || ''}']);
265
- ${renderSteps(child.scenario.steps, config, sp + ' ')}
269
+ ${renderSteps(child.scenario.steps, config, sp + ' ', isExploded ? `.${explodedIdx}` : '')}
266
270
  ${sp} await afterScenario(state);
267
271
  ${sp}});
268
272
  `;
273
+ }).join('\n\n');
269
274
  }
270
- function renderSteps(steps, config, sp = ' ') {
275
+ function renderSteps(steps, config, sp = ' ', explodedText = '') {
271
276
  return steps.map(step => {
272
277
  if (step.dataTable) {
273
278
  let data = JSON.stringify(step.dataTable.rows.map(r => {
274
279
  return r.cells.map(c => c.value);
275
280
  }));
276
- 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});`;
277
282
  }
278
283
  else if (step.docString) {
279
284
  let data = JSON.stringify(pick(step.docString, ['content', 'mediaType']));
280
- 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});`;
281
286
  }
282
- return `${sp}await qp('${q(step.text)}', state, ${step.location.line});`;
287
+ return `${sp}await qp('${q(step.text)}', state, ${step.location.line}${explodedText});`;
283
288
  }).join('\n');
284
289
  }
290
+ /**
291
+ * Escapes quotation marks in a string for the purposes of this rendering function.
292
+ * @param t string
293
+ * @returns string
294
+ */
285
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
+ }
286
366
 
287
367
  class DocString extends String {
288
368
  constructor(content, mediaType = '') {
@@ -313,6 +393,9 @@ class QuickPickleWorld {
313
393
  this.info = { ...info };
314
394
  }
315
395
  async init() { }
396
+ tagsMatch(tags) {
397
+ return tagsMatch(tags, this.info.tags);
398
+ }
316
399
  }
317
400
  let worldConstructor = QuickPickleWorld;
318
401
  function getWorldConstructor() {
@@ -369,6 +452,10 @@ const defaultConfig = {
369
452
  * Tags to run sequentially, using Vitest's `test.sequential` implementation.
370
453
  */
371
454
  sequentialTags: ['@sequential'],
455
+ /**
456
+ * Explode tags into multiple tests, e.g. for different browsers.
457
+ */
458
+ explodeTags: [],
372
459
  /**
373
460
  * The config for the World class. Must be serializable with JSON.stringify.
374
461
  * Not used by the default World class, but may be used by plugins or custom
@@ -382,25 +469,33 @@ function normalizeTags(tags) {
382
469
  tags = Array.isArray(tags) ? tags : tags.split(/\s*,\s*/g);
383
470
  return tags.filter(Boolean).map(tag => tag.startsWith('@') ? tag : `@${tag}`);
384
471
  }
385
- const quickpickle = (passedConfig = {}) => {
472
+ function is3d(arr) {
473
+ return Array.isArray(arr) && arr.every(item => Array.isArray(item));
474
+ }
475
+ const quickpickle = (conf = {}) => {
386
476
  let config;
477
+ let passedConfig = { ...conf };
387
478
  return {
388
479
  name: 'quickpickle-transform',
389
480
  configResolved(resolvedConfig) {
390
- config = defaults(defaultConfig, passedConfig, get(resolvedConfig, 'quickpickle'));
481
+ config = defaultsDeep(get(resolvedConfig, 'test.quickpickle') || {}, get(resolvedConfig, 'quickpickle') || {}, passedConfig, defaultConfig);
391
482
  config.todoTags = normalizeTags(config.todoTags);
392
483
  config.skipTags = normalizeTags(config.skipTags);
393
484
  config.failTags = normalizeTags(config.failTags);
394
485
  config.concurrentTags = normalizeTags(config.concurrentTags);
395
486
  config.sequentialTags = normalizeTags(config.sequentialTags);
487
+ if (is3d(config.explodeTags))
488
+ config.explodeTags = config.explodeTags.map(normalizeTags);
489
+ else
490
+ config.explodeTags = [normalizeTags(config.explodeTags)];
396
491
  },
397
492
  async transform(src, id) {
398
493
  if (featureRegex.test(id)) {
399
494
  return renderGherkin(src, config, id.match(/\.md$/) ? true : false);
400
495
  }
401
- }
496
+ },
402
497
  };
403
498
  };
404
499
 
405
- export { After, AfterAll, AfterStep, Before, BeforeAll, BeforeStep, DocString, Given, QuickPickleWorld, Then, When, applyAfterAllHooks, applyAfterHooks, applyAfterStepHooks, applyBeforeAllHooks, applyBeforeHooks, applyBeforeStepHooks, quickpickle as default, defaultConfig, 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 };
406
501
  //# sourceMappingURL=index.esm.js.map
@@ -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
@@ -1,4 +1,44 @@
1
1
  import type { Feature } from "@cucumber/messages";
2
- import type { QuickPickleConfig } from '.';
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.1",
3
+ "version": "1.2.3",
4
4
  "description": "Plugin for Vitest to run tests written in Gherkin Syntax.",
5
5
  "keywords": [
6
6
  "BDD",