quickpickle 1.6.1 → 1.7.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
@@ -170,11 +170,12 @@ Also add the configuration to get the feature files, step definitions, world fil
170
170
 
171
171
  ```ts
172
172
  // vite.config.ts
173
- import { quickpickle } from 'quickpickle';
173
+ import { quickpickle, type QuickPickleConfigSetting } from './src';
174
+ const qpOptions:QuickPickleConfigSetting = {}
174
175
 
175
176
  export default {
176
177
  plugins: [
177
- quickpickle() // <-- Add the quickpickle plugin
178
+ quickpickle(qpOptions) // <-- Add the quickpickle plugin
178
179
  ],
179
180
  test: {
180
181
  include : [
@@ -193,30 +194,100 @@ different browser environments, different world constructors, etc.
193
194
  ```ts
194
195
  // vitest.workspace.ts
195
196
  import { defineWorkspace } from 'vitest/config';
197
+ import type { QuickPickleConfigSetting } from 'quickpickle';
198
+
199
+ const options1:QuickPickleConfigSetting = {} // some settings for e.g. e2e tests
200
+ const options2:QuickPickleConfigSetting = {} // other settings for e.g. component tests
196
201
 
197
202
  export default defineWorkspace([
198
203
  { // configuration for feature files testing the application
199
204
  extends: './vite.config.ts',
200
205
  test: {
201
- include : [ 'tests/*.feature' ],
206
+ name: 'e2e',
207
+ include: [ 'tests/*.feature' ],
202
208
  setupFiles: [ 'tests/tests.steps.ts' ],
209
+ quickpickle: options1,
203
210
  },
204
211
  },
205
212
  { // a second configuration for feature files testing components
206
213
  extends: './vite.config.ts',
207
214
  test: {
208
- include : [ 'src/lib/*.feature' ],
215
+ name: 'components',
216
+ include: [ 'src/lib/*.feature' ],
209
217
  setupFiles: [ 'tests/components.steps.ts' ],
218
+ quickpickle: options2,
210
219
  },
211
220
  },
212
221
  { // configuration for unit tests
213
222
  test: {
214
- include : [ 'tests/*.test.ts' ],
223
+ name: 'unit',
224
+ include: [ 'tests/*.test.ts' ],
215
225
  }
216
226
  }
217
227
  ])
218
228
  ```
219
229
 
230
+ The QuickPickle configuration options can be seen
231
+ in the [quickpickle defaultConfig object](https://github.com/dnotes/quickpickle/blob/main/packages/main/src/index.ts#L159):
232
+
233
+ ```ts
234
+ export const defaultConfig: QuickPickleConfig = {
235
+
236
+ /**
237
+ * The root directory for the tests to run, from vite or vitest config
238
+ */
239
+ root: '',
240
+
241
+ /**
242
+ * The maximum time in ms to wait for a step to complete.
243
+ */
244
+ stepTimeout: 3000,
245
+
246
+ /**
247
+ * Tags to mark as todo, using Vitest's `test.todo` implementation.
248
+ */
249
+ todoTags: ['@todo','@wip'],
250
+
251
+ /**
252
+ * Tags to skip, using Vitest's `test.skip` implementation.
253
+ */
254
+ skipTags: ['@skip'],
255
+
256
+ /**
257
+ * Tags to mark as failing, using Vitest's `test.failing` implementation.
258
+ */
259
+ failTags: ['@fails', '@failing'],
260
+
261
+ /**
262
+ * Tags to mark as soft failing, allowing further steps to run until the end of the scenario.
263
+ */
264
+ softFailTags: ['@soft', '@softfail'],
265
+
266
+ /**
267
+ * Tags to run in parallel, using Vitest's `test.concurrent` implementation.
268
+ */
269
+ concurrentTags: ['@concurrent'],
270
+
271
+ /**
272
+ * Tags to run sequentially, using Vitest's `test.sequential` implementation.
273
+ */
274
+ sequentialTags: ['@sequential'],
275
+
276
+ /**
277
+ * Explode tags into multiple tests, e.g. for different browsers.
278
+ */
279
+ explodeTags: [],
280
+
281
+ /**
282
+ * The config for the World class. Must be serializable with JSON.stringify.
283
+ * Not used by the default World class, but may be used by plugins or custom
284
+ * implementations, like @quickpickle/playwright.
285
+ */
286
+ worldConfig: {},
287
+
288
+ }
289
+ ```
290
+
220
291
  ### Step definition file
221
292
 
222
293
  You'll always need a step definition file, to set up the step defintions and potentially the world
@@ -423,7 +494,9 @@ come to notice:
423
494
  isComplete: boolean // (read only) whether the Scenario is on the last step
424
495
  config: QuickPickleConfig // (read only) configuration for QuickPickle
425
496
  worldConfig: QuickPickleConfig['worldConfig'] // (read only) configuration for the World
426
- common: {[key: string]: any} // Common data shared across tests --- USE SPARINGLY
497
+ data: {[key:string]:any} // Data limited to the current Scenario
498
+ common: Common // Common data shared across ALL tests in one Feature file --- USE SPARINGLY
499
+ projectRoot: string // (read only) the project root directory
427
500
  init: () => Promise<void> // function called by QuickPickle when the world is created
428
501
  tagsMatch(tags: string[]): string[]|null // function to check if the Scenario tags match the given tags
429
502
  }
package/dist/index.cjs CHANGED
@@ -3,11 +3,17 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var cucumberExpressions = require('@cucumber/cucumber-expressions');
6
- var lodashEs = require('lodash-es');
6
+ var get = require('lodash/get');
7
+ var defaultsDeep = require('lodash/defaultsDeep');
8
+ var isFunction = require('lodash/isFunction');
9
+ var isString = require('lodash/isString');
10
+ var concat = require('lodash/concat');
11
+ var intersection = require('lodash/intersection');
7
12
  var parse = require('@cucumber/tag-expressions');
8
13
  var Gherkin = require('@cucumber/gherkin');
9
14
  var Messages = require('@cucumber/messages');
10
- var cucumber = require('@cucumber/cucumber');
15
+ var fromPairs = require('lodash/fromPairs');
16
+ var escapeRegExp = require('lodash/escapeRegExp');
11
17
 
12
18
  function _interopNamespaceDefault(e) {
13
19
  var n = Object.create(null);
@@ -111,7 +117,7 @@ function normalizeTags(tags) {
111
117
  * @returns boolean
112
118
  */
113
119
  function tagsMatch(confTags, testTags) {
114
- let tags = lodashEs.intersection(confTags.map(t => t.toLowerCase()), testTags.map(t => t.toLowerCase()));
120
+ let tags = intersection(confTags.map(t => t.toLowerCase()), testTags.map(t => t.toLowerCase()));
115
121
  return tags?.length ? tags : null;
116
122
  }
117
123
  const parseTagsExpression = (tagsExpression) => {
@@ -155,18 +161,18 @@ const applyHooks = async (hooksName, state) => {
155
161
  };
156
162
  const addHook = (hooksName, p1, p2) => {
157
163
  let hook = { name: '', f: async () => { }, tags: '', tagsFunction: () => true };
158
- if (lodashEs.isFunction(p1))
164
+ if (isFunction(p1))
159
165
  hook = { ...hook, f: p1 };
160
- else if (lodashEs.isString(p1))
166
+ else if (isString(p1))
161
167
  hook.tags = p1;
162
168
  else
163
169
  hook = { ...hook, ...p1 };
164
- if (lodashEs.isFunction(p2))
170
+ if (isFunction(p2))
165
171
  hook.f = p2;
166
172
  if (!hook.f)
167
173
  throw new Error('Function required: ' + JSON.stringify({ p1, p2 }));
168
174
  hook.tagsFunction = tagsFunction(hook.tags.toLowerCase());
169
- allHooks[hooksName] = lodashEs.concat(allHooks[hooksName], hook);
175
+ allHooks[hooksName] = concat(allHooks[hooksName], hook);
170
176
  };
171
177
  const BeforeAll = (p1, p2) => { addHook('beforeAll', p1, p2); };
172
178
  const Before = (p1, p2) => { addHook('before', p1, p2); };
@@ -301,11 +307,11 @@ function renderScenario(child, config, tags, sp = ' ') {
301
307
  if (child.scenario.examples?.[0]?.tableHeader && child.scenario.examples?.[0]?.tableBody) {
302
308
  let origParamNames = child.scenario?.examples?.[0]?.tableHeader?.cells?.map(c => c.value) || [];
303
309
  let paramValues = child.scenario?.examples?.[0].tableBody.map((r) => {
304
- return lodashEs.fromPairs(r.cells.map((c, i) => ['_' + i, c.value]));
310
+ return fromPairs(r.cells.map((c, i) => ['_' + i, c.value]));
305
311
  });
306
312
  const replaceParamNames = (t, withBraces) => {
307
313
  origParamNames.forEach((p, i) => {
308
- t = t.replace(new RegExp(`<${lodashEs.escapeRegExp(p)}>`, 'g'), (withBraces ? `$\{_${i}\}` : `$_${i}`));
314
+ t = t.replace(new RegExp(`<${escapeRegExp(p)}>`, 'g'), (withBraces ? `$\{_${i}\}` : `$_${i}`));
309
315
  });
310
316
  return t;
311
317
  };
@@ -456,6 +462,169 @@ function explodeTags(explodeTags, testTags) {
456
462
  return combined.length ? combined.map(arr => [...tagsToTest, ...arr]) : [testTags];
457
463
  }
458
464
 
465
+ class DataTable {
466
+ constructor(sourceTable) {
467
+ if (sourceTable instanceof Array) {
468
+ this.rawTable = sourceTable;
469
+ }
470
+ else {
471
+ this.rawTable = sourceTable.rows.map((row) => row.cells.map((cell) => cell.value));
472
+ }
473
+ }
474
+ /**
475
+ * This method returns an array of objects of the shape { [key: string]: string }.
476
+ * It is intended for tables with a header row, as follows:
477
+ *
478
+ * ```
479
+ * | id | name | color | taste |
480
+ * | 1 | apple | red | sweet |
481
+ * | 2 | banana | yellow | sweet |
482
+ * | 3 | orange | orange | sour |
483
+ * ```
484
+ *
485
+ * This would return the following array of objects:
486
+ *
487
+ * ```
488
+ * [
489
+ * { id: '1', name: 'apple', color: 'red', taste: 'sweet' },
490
+ * { id: '2', name: 'banana', color: 'yellow', taste: 'sweet' },
491
+ * { id: '3', name: 'orange', color: 'orange', taste: 'sour' },
492
+ * ]
493
+ * ```
494
+ *
495
+ * @returns Record<string, string>[]
496
+ */
497
+ hashes() {
498
+ const copy = this.raw();
499
+ const keys = copy[0];
500
+ const valuesArray = copy.slice(1);
501
+ return valuesArray.map((values) => {
502
+ const rowObject = {};
503
+ keys.forEach((key, index) => (rowObject[key] = values[index]));
504
+ return rowObject;
505
+ });
506
+ }
507
+ /**
508
+ * This method returns the raw table as a two-dimensional array.
509
+ * It can be used for tables with or without a header row, for example:
510
+ *
511
+ * ```
512
+ * | id | name | color | taste |
513
+ * | 1 | apple | red | sweet |
514
+ * | 2 | banana | yellow | sweet |
515
+ * | 3 | orange | orange | sour |
516
+ * ```
517
+ *
518
+ * would return the following array of objects:
519
+ *
520
+ * ```
521
+ * [
522
+ * ['id', 'name', 'color', 'taste'],
523
+ * ['1', 'apple', 'red', 'sweet'],
524
+ * ['2', 'banana', 'yellow', 'sweet'],
525
+ * ['3', 'orange', 'orange', 'sour'],
526
+ * ]
527
+ * ```
528
+ *
529
+ * @returns string[][]
530
+ */
531
+ raw() {
532
+ return this.rawTable.slice(0);
533
+ }
534
+ /**
535
+ * This method is intended for tables with a header row, and returns
536
+ * the value rows as a two-dimensional array, without the header row:
537
+ *
538
+ * ```
539
+ * | id | name | color | taste |
540
+ * | 1 | apple | red | sweet |
541
+ * | 2 | banana | yellow | sweet |
542
+ * | 3 | orange | orange | sour |
543
+ * ```
544
+ *
545
+ * would return the following array of objects:
546
+ *
547
+ * ```
548
+ * [
549
+ * ['1', 'apple', 'red', 'sweet'],
550
+ * ['2', 'banana', 'yellow', 'sweet'],
551
+ * ['3', 'orange', 'orange', 'sour'],
552
+ * ]
553
+ * ```
554
+ *
555
+ * @returns string[][]
556
+ */
557
+ rows() {
558
+ const copy = this.raw();
559
+ copy.shift();
560
+ return copy;
561
+ }
562
+ /**
563
+ * This method is intended for tables with exactly two columns.
564
+ * It returns a single object with the first column as keys and
565
+ * the second column as values.
566
+ *
567
+ * ```
568
+ * | id | 1 |
569
+ * | name | apple |
570
+ * | color | red |
571
+ * | taste | sweet |
572
+ * ```
573
+ *
574
+ * would return the following object:
575
+ *
576
+ * ```
577
+ * {
578
+ * id: '1',
579
+ * name: 'apple',
580
+ * color: 'red',
581
+ * taste: 'sweet',
582
+ * }
583
+ * ```
584
+ *
585
+ * @returns Record<string, string>
586
+ */
587
+ rowsHash() {
588
+ const rows = this.raw();
589
+ const everyRowHasTwoColumns = rows.every((row) => row.length === 2);
590
+ if (!everyRowHasTwoColumns) {
591
+ throw new Error('rowsHash can only be called on a data table where all rows have exactly two columns');
592
+ }
593
+ const result = {};
594
+ rows.forEach((x) => (result[x[0]] = x[1]));
595
+ return result;
596
+ }
597
+ /**
598
+ * This method transposes the DataTable, making the columns into rows
599
+ * and vice versa. For example the following raw table:
600
+ *
601
+ * ```
602
+ * [
603
+ * ['1', 'apple', 'red', 'sweet'],
604
+ * ['2', 'banana', 'yellow', 'sweet'],
605
+ * ['3', 'orange', 'orange', 'sour'],
606
+ * ]
607
+ * ```
608
+ *
609
+ * would be transposed to:
610
+ *
611
+ * ```
612
+ * [
613
+ * ['1', '2', '3'],
614
+ * ['apple', 'banana', 'orange'],
615
+ * ['red', 'yellow', 'orange'],
616
+ * ['sweet', 'sweet', 'sour'],
617
+ * ]
618
+ * ```
619
+ *
620
+ * @returns DataTable
621
+ */
622
+ transpose() {
623
+ const transposed = this.rawTable[0].map((x, i) => this.rawTable.map((y) => y[i]));
624
+ return new DataTable(transposed);
625
+ }
626
+ }
627
+
459
628
  class DocString extends String {
460
629
  constructor(content, mediaType = '') {
461
630
  super(content);
@@ -474,15 +643,18 @@ class DocString extends String {
474
643
 
475
644
  class QuickPickleWorld {
476
645
  constructor(context, info) {
646
+ this._projectRoot = '';
477
647
  this.data = {};
478
648
  this.context = context;
479
649
  this.common = info.common;
480
650
  this.info = { ...info, errors: [] };
651
+ this._projectRoot = info.config.root;
481
652
  }
482
653
  async init() { }
483
654
  get config() { return this.info.config; }
484
655
  get worldConfig() { return this.info.config.worldConfig; }
485
656
  get isComplete() { return this.info.stepIdx === this.info.steps.length; }
657
+ get projectRoot() { return this._projectRoot; }
486
658
  tagsMatch(tags) {
487
659
  return tagsMatch(tags, this.info.tags);
488
660
  }
@@ -508,13 +680,25 @@ const featureRegex = /\.feature(?:\.md)?$/;
508
680
  const Given = addStepDefinition;
509
681
  const When = addStepDefinition;
510
682
  const Then = addStepDefinition;
683
+ const stackRegex = /\.feature(?:\.md)?:\d+:\d+/;
511
684
  function formatStack(text, line) {
685
+ if (!text.match(stackRegex))
686
+ return text;
512
687
  let stack = text.split('\n');
513
- while (!stack[0].match(/\.feature(?:\.md)?:\d+:\d+/))
688
+ while (!stack[0].match(stackRegex))
514
689
  stack.shift();
515
690
  stack[0] = stack[0].replace(/:\d+:\d+$/, `:${line}:1`);
516
691
  return stack.join('\n');
517
692
  }
693
+ function raceTimeout(work, ms, errorMessage) {
694
+ let timerId;
695
+ const timeoutPromise = new Promise((_, reject) => {
696
+ timerId = setTimeout(() => reject(new Error(errorMessage)), ms);
697
+ });
698
+ // make sure to clearTimeout on either success *or* failure
699
+ const wrapped = work.finally(() => clearTimeout(timerId));
700
+ return Promise.race([wrapped, timeoutPromise]);
701
+ }
518
702
  const gherkinStep = async (stepType, step, state, line, stepIdx, explodeIdx, data) => {
519
703
  try {
520
704
  // Set the state info
@@ -526,34 +710,37 @@ const gherkinStep = async (stepType, step, state, line, stepIdx, explodeIdx, dat
526
710
  // Sort out the DataTable or DocString
527
711
  let dataType = '';
528
712
  if (Array.isArray(data)) {
529
- data = new cucumber.DataTable(data);
713
+ data = new DataTable(data);
530
714
  dataType = 'dataTable';
531
715
  }
532
716
  else if (data?.hasOwnProperty('content')) {
533
717
  data = new DocString(data.content, data.mediaType);
534
718
  dataType = 'docString';
535
719
  }
536
- await applyHooks('beforeStep', state);
537
- try {
538
- const stepDefinitionMatch = findStepDefinitionMatch(step, { stepType, dataType });
539
- await stepDefinitionMatch.stepDefinition.f(state, ...stepDefinitionMatch.parameters, data);
540
- }
541
- catch (e) {
542
- // Add the Cucumber info to the error message
543
- e.message = `${step} (#${line})\n${e.message}`;
544
- // Sort out the stack for the Feature file
545
- e.stack = formatStack(e.stack, state.info.line);
546
- // Set the flag that this error has been added to the state
547
- e.isStepError = true;
548
- // Add the error to the state
549
- state.info.errors.push(e);
550
- // If not in a soft fail mode, re-throw the error
551
- if (state.isComplete || !state.tagsMatch(state.config.softFailTags))
552
- throw e;
553
- }
554
- finally {
555
- await applyHooks('afterStep', state);
556
- }
720
+ const promise = async () => {
721
+ await applyHooks('beforeStep', state);
722
+ try {
723
+ const stepDefinitionMatch = findStepDefinitionMatch(step, { stepType, dataType });
724
+ await stepDefinitionMatch.stepDefinition.f(state, ...stepDefinitionMatch.parameters, data);
725
+ }
726
+ catch (e) {
727
+ // Add the Cucumber info to the error message
728
+ e.message = `${step} (#${line})\n${e.message}`;
729
+ // Sort out the stack for the Feature file
730
+ e.stack = formatStack(e.stack, state.info.line);
731
+ // Set the flag that this error has been added to the state
732
+ e.isStepError = true;
733
+ // Add the error to the state
734
+ state.info.errors.push(e);
735
+ // If not in a soft fail mode, re-throw the error
736
+ if (state.isComplete || !state.tagsMatch(state.config.softFailTags))
737
+ throw e;
738
+ }
739
+ finally {
740
+ await applyHooks('afterStep', state);
741
+ }
742
+ };
743
+ await raceTimeout(promise(), state.config.stepTimeout, `Step timed out after ${state.config.stepTimeout}ms`);
557
744
  }
558
745
  catch (e) {
559
746
  // If the error hasn't already been added to the state:
@@ -568,7 +755,7 @@ const gherkinStep = async (stepType, step, state, line, stepIdx, explodeIdx, dat
568
755
  return;
569
756
  // The After hook is usually run in the rendered file, at the end of the rendered steps.
570
757
  // But, if the tests have failed, then it should run here, since the test is halted.
571
- await applyHooks('after', state);
758
+ await raceTimeout(applyHooks('after', state), state.config.stepTimeout, `After hook timed out after ${state.config.stepTimeout}ms`);
572
759
  // Otherwise throw the error
573
760
  throw e;
574
761
  }
@@ -581,6 +768,14 @@ const gherkinStep = async (stepType, step, state, line, stepIdx, explodeIdx, dat
581
768
  }
582
769
  };
583
770
  const defaultConfig = {
771
+ /**
772
+ * The root directory for the tests to run, from vite or vitest config
773
+ */
774
+ root: '',
775
+ /**
776
+ * The maximum time in ms to wait for a step to complete.
777
+ */
778
+ stepTimeout: 3000,
584
779
  /**
585
780
  * Tags to mark as todo, using Vitest's `test.todo` implementation.
586
781
  */
@@ -614,7 +809,7 @@ const defaultConfig = {
614
809
  * Not used by the default World class, but may be used by plugins or custom
615
810
  * implementations, like @quickpickle/playwright.
616
811
  */
617
- worldConfig: {}
812
+ worldConfig: {},
618
813
  };
619
814
  function is2d(arr) {
620
815
  return Array.isArray(arr) && arr.every(item => Array.isArray(item));
@@ -625,7 +820,7 @@ const quickpickle = (conf = {}) => {
625
820
  return {
626
821
  name: 'quickpickle-transform',
627
822
  configResolved(resolvedConfig) {
628
- config = lodashEs.defaultsDeep(lodashEs.get(resolvedConfig, 'test.quickpickle') || {}, lodashEs.get(resolvedConfig, 'quickpickle') || {}, passedConfig, defaultConfig);
823
+ config = defaultsDeep(get(resolvedConfig, 'test.quickpickle') || {}, get(resolvedConfig, 'quickpickle') || {}, passedConfig, defaultConfig);
629
824
  config.todoTags = normalizeTags(config.todoTags);
630
825
  config.skipTags = normalizeTags(config.skipTags);
631
826
  config.failTags = normalizeTags(config.failTags);
@@ -636,6 +831,8 @@ const quickpickle = (conf = {}) => {
636
831
  config.explodeTags = config.explodeTags.map(normalizeTags);
637
832
  else
638
833
  config.explodeTags = [normalizeTags(config.explodeTags)];
834
+ if (!config.root)
835
+ config.root = resolvedConfig.root;
639
836
  },
640
837
  async transform(src, id) {
641
838
  if (featureRegex.test(id)) {
@@ -645,16 +842,13 @@ const quickpickle = (conf = {}) => {
645
842
  };
646
843
  };
647
844
 
648
- Object.defineProperty(exports, 'DataTable', {
649
- enumerable: true,
650
- get: function () { return cucumber.DataTable; }
651
- });
652
845
  exports.After = After;
653
846
  exports.AfterAll = AfterAll;
654
847
  exports.AfterStep = AfterStep;
655
848
  exports.Before = Before;
656
849
  exports.BeforeAll = BeforeAll;
657
850
  exports.BeforeStep = BeforeStep;
851
+ exports.DataTable = DataTable;
658
852
  exports.DocString = DocString;
659
853
  exports.Given = Given;
660
854
  exports.QuickPickleWorld = QuickPickleWorld;
@@ -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":["ParameterTypeRegistry","ExpressionFactory","CucumberExpressionGenerator","ParameterType","intersection","isFunction","isString","concat","Messages","Gherkin","fromPairs","escapeRegExp","DataTable","defaultsDeep","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/DataTable.ts","../src/models/DocString.ts","../src/world.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["ParameterTypeRegistry","ExpressionFactory","CucumberExpressionGenerator","ParameterType","Messages","Gherkin"],"mappings":"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"}