quickpickle 1.10.0 → 1.11.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/dist/index.cjs CHANGED
@@ -15,8 +15,10 @@ var Gherkin = require('@cucumber/gherkin');
15
15
  var Messages = require('@cucumber/messages');
16
16
  var fromPairs = require('lodash/fromPairs');
17
17
  var escapeRegExp = require('lodash/escapeRegExp');
18
+ var yaml = require('js-yaml');
18
19
  var pixelmatch = require('pixelmatch');
19
20
  var ariaRoles = require('@a11y-tools/aria-roles');
21
+ var imageCropOrPad = require('image-crop-or-pad');
20
22
 
21
23
  function _interopNamespaceDefault(e) {
22
24
  var n = Object.create(null);
@@ -48,22 +50,31 @@ const buildParameterType = (type) => {
48
50
  const defineParameterType = (parameterType) => {
49
51
  parameterTypeRegistry.defineParameterType(buildParameterType(parameterType));
50
52
  };
51
- const addStepDefinition = (expression, f) => {
53
+ const addStepDefinition = (expression, f, priority = 0) => {
52
54
  const cucumberExpression = expressionFactory.createExpression(expression);
53
- steps.push({ expression, f, cucumberExpression });
55
+ steps.push({ expression, f, cucumberExpression, priority });
54
56
  };
55
57
  const findStepDefinitionMatches = (step) => {
56
58
  return steps.reduce((accumulator, stepDefinition) => {
59
+ // Get the highest priority from the accumulator
60
+ const priority = accumulator?.[0]?.stepDefinition.priority ?? -9999;
61
+ // If the StepDefinition has a lower priority, don't even check it
62
+ if (stepDefinition.priority < priority)
63
+ return accumulator;
64
+ // Check the StepDefinition for matches
57
65
  const matches = stepDefinition.cucumberExpression.match(step);
58
- if (matches) {
59
- return [...accumulator, {
60
- stepDefinition,
61
- parameters: matches.map((match) => match.getValue())
62
- }];
63
- }
64
- else {
66
+ // If there are no matches, skip it
67
+ if (!matches)
65
68
  return accumulator;
66
- }
69
+ // If the StepDefinition matches the step, create a StepDefinitionMatch
70
+ const stepDefinitionMatch = {
71
+ stepDefinition,
72
+ parameters: matches.map((match) => match.getValue())
73
+ };
74
+ // Add to or replace the accumulator, depending on the priority
75
+ return stepDefinition.priority === priority
76
+ ? [...accumulator, stepDefinitionMatch]
77
+ : [stepDefinitionMatch];
67
78
  }, []);
68
79
  };
69
80
  const findStepDefinitionMatch = (step, snippetData) => {
@@ -76,7 +87,12 @@ ${snippet}
76
87
  `);
77
88
  }
78
89
  if (stepDefinitionMatches.length > 1) {
79
- throw new Error(`More than one step which matches: '${step}'`);
90
+ const priority = stepDefinitionMatches[0].stepDefinition?.priority ?? 0;
91
+ const patterns = stepDefinitionMatches.map(m => m.stepDefinition.expression).join('\n - ');
92
+ throw new Error(`Ambiguous step: '${step}'\n` +
93
+ `Multiple patterns match with equal priority (${priority}):\n - ${patterns}\n\n` +
94
+ `Resolve by adding a higher priority to one of them:\n` +
95
+ ` Given('${step}', yourFunction, ${priority + 1});`);
80
96
  }
81
97
  return stepDefinitionMatches[0];
82
98
  };
@@ -122,6 +138,8 @@ function normalizeTags(tags) {
122
138
  * @returns string[]|null
123
139
  */
124
140
  function tagsMatch(confTags, testTags) {
141
+ if (!confTags || !testTags)
142
+ return null;
125
143
  let tags = intersection(confTags.map(t => t.toLowerCase()), testTags.map(t => t.toLowerCase()));
126
144
  return tags?.length ? tags : null;
127
145
  }
@@ -297,16 +315,16 @@ ${sp}});
297
315
  function renderScenario(child, config, tags, sp = ' ') {
298
316
  let initFn = sp.length > 2 ? 'initRuleScenario' : 'initScenario';
299
317
  tags = [...tags, ...child.scenario.tags.map(t => t.name)];
300
- let todo = tagsMatch(config.todoTags, tags) ? '.todo' : '';
301
- let skip = tagsMatch(config.skipTags, tags) ? '.skip' : '';
302
- let fails = tagsMatch(config.failTags, tags) ? '.fails' : '';
303
- let sequential = tagsMatch(config.sequentialTags, tags) ? '.sequential' : '';
304
- let concurrent = (!sequential && tagsMatch(config.concurrentTags, tags)) ? '.concurrent' : '';
305
- let attrs = todo + skip + fails + concurrent + sequential;
306
318
  // Deal with exploding tags
307
319
  let taglists = explodeTags(config.explodeTags, tags);
308
320
  let isExploded = taglists.length > 1 ? true : false;
309
321
  return taglists.map((tags, explodedIdx) => {
322
+ let todo = tagsMatch(config.todoTags, tags) ? '.todo' : '';
323
+ let skip = tagsMatch(config.skipTags, tags) ? '.skip' : '';
324
+ let fails = tagsMatch(config.failTags, tags) ? '.fails' : '';
325
+ let sequential = tagsMatch(config.sequentialTags, tags) ? '.sequential' : '';
326
+ let concurrent = (!sequential && tagsMatch(config.concurrentTags, tags)) ? '.concurrent' : '';
327
+ let attrs = todo + skip + fails + concurrent + sequential;
310
328
  let tagTextForVitest = tags.length ? ` (${tags.join(' ')})` : '';
311
329
  // For Scenario Outlines with examples
312
330
  if (child.scenario.examples?.[0]?.tableHeader && child.scenario.examples?.[0]?.tableBody) {
@@ -633,7 +651,17 @@ class DataTable {
633
651
  class DocString extends String {
634
652
  constructor(content, mediaType = '') {
635
653
  super(content);
636
- this.mediaType = mediaType;
654
+ this.mediaType = mediaType ?? '';
655
+ if (this.mediaType)
656
+ try {
657
+ if (this.mediaType === 'json')
658
+ this.data = JSON.parse(content);
659
+ else if (this.mediaType?.match(/^ya?ml$/))
660
+ this.data = yaml.load(content);
661
+ }
662
+ catch (e) {
663
+ throw new Error(`parsing ${this.mediaType} content failed: ${e?.message || 'Unknown error'}${e?.stack ? '\n' + e.stack : ''}`);
664
+ }
637
665
  }
638
666
  toString() {
639
667
  return this.valueOf();
@@ -788,6 +816,9 @@ async function getPNG() {
788
816
  return cachedPNG;
789
817
  }
790
818
 
819
+ function isAriaRoleExtended(role) {
820
+ return role === 'element' || role === 'input' || ariaRoles.ariaRoles.hasOwnProperty(role);
821
+ }
791
822
  class QuickPickleWorld {
792
823
  constructor(context, info) {
793
824
  this._projectRoot = '';
@@ -860,8 +891,10 @@ function setWorldConstructor(constructor) {
860
891
  }
861
892
  const defaultScreenshotComparisonOptions = {
862
893
  maxDiffPercentage: 0,
894
+ resizeColor: [255, 0, 128],
895
+ anchor: 'top left',
863
896
  threshold: 0.1,
864
- alpha: 0.6
897
+ alpha: 0.6,
865
898
  };
866
899
  class VisualWorld extends QuickPickleWorld {
867
900
  constructor(context, info) {
@@ -872,7 +905,7 @@ class VisualWorld extends QuickPickleWorld {
872
905
  return this.sanitizePath(this.worldConfig.screenshotDir);
873
906
  }
874
907
  get screenshotFilename() {
875
- return `${this.toString().replace(/^.+?Feature: /, 'Feature: ').replace(' ' + this.info.step, '')}.png`;
908
+ return `${this.toString().replace(/^.+?Feature: /, 'Feature: ').replace(' ' + this.info.step, '').replace(/\//g, ' ')}.png`;
876
909
  }
877
910
  get screenshotPath() {
878
911
  return this.fullPath(`${this.screenshotDir}/${this.screenshotFilename}`);
@@ -904,8 +937,34 @@ class VisualWorld extends QuickPickleWorld {
904
937
  // Get the PNG constructor using the shim
905
938
  const PNG = await getPNG();
906
939
  // Parse PNG images to get raw pixel data
907
- const actualPng = PNG.sync.read(actual);
908
- const expectedPng = PNG.sync.read(expected);
940
+ let actualPng = PNG.sync.read(actual);
941
+ let expectedPng = PNG.sync.read(expected);
942
+ // Check if dimensions differ and resize if necessary
943
+ if ((opts?.resizeEnabled || this?.worldConfig?.screenshotOptions?.resizeEnabled)
944
+ && (actualPng.width !== expectedPng.width || actualPng.height !== expectedPng.height)) {
945
+ // Calculate the maximum dimensions
946
+ const maxWidth = Math.max(actualPng.width, expectedPng.width);
947
+ const maxHeight = Math.max(actualPng.height, expectedPng.height);
948
+ // Get the anchor setting
949
+ const rgba = opts?.resizeColor || this.screenshotOptions.resizeColor || [255, 0, 128];
950
+ rgba[3] = (opts?.resizeIgnored || this.screenshotOptions.resizeIgnored) ? 0 : 255;
951
+ const anchor = opts?.anchor || this.screenshotOptions.anchor || 'top left';
952
+ // Resize both images to the maximum dimensions
953
+ if (actualPng.width !== maxWidth || actualPng.height !== maxHeight) {
954
+ const resizedActualData = imageCropOrPad.resizeImage(actualPng.data, actualPng.width, actualPng.height, maxWidth, maxHeight, { rgba, anchor });
955
+ /**
956
+ * There are a couple of choices for initializing the data property:
957
+ * 1. We could use Buffer.from(), except that causes problems if QuickPickle is run in a browser.
958
+ * 2. We can set up a new PNG instance and use the fill method, but that seems like unnecessary overkill.
959
+ * 3. I've chosen to use the any cast, since the downstream doesn't use the Buffer capabilities.
960
+ */
961
+ actualPng = { ...actualPng, data: resizedActualData, width: maxWidth, height: maxHeight };
962
+ }
963
+ if (expectedPng.width !== maxWidth || expectedPng.height !== maxHeight) {
964
+ const resizedExpectedData = imageCropOrPad.resizeImage(expectedPng.data, expectedPng.width, expectedPng.height, maxWidth, maxHeight, { rgba, anchor });
965
+ expectedPng = { ...expectedPng, data: resizedExpectedData, width: maxWidth, height: maxHeight };
966
+ }
967
+ }
909
968
  const { width, height } = expectedPng;
910
969
  const diffPng = new PNG({ width, height });
911
970
  try {
@@ -914,15 +973,14 @@ class VisualWorld extends QuickPickleWorld {
914
973
  return { diff: PNG.sync.write(diffPng), pixels, pct };
915
974
  }
916
975
  catch (e) {
917
- e.message += `\n expected: w:${width}px h:${height}px ${expectedPng.data.length}b\n actual: w:${actualPng.width}px h:${actualPng.height}px ${actualPng.data.length}b`;
976
+ e.message += `
977
+ expected: w:${width}px h:${height}px ${expectedPng.data.length}b
978
+ actual: w:${actualPng.width}px h:${actualPng.height}px ${actualPng.data.length}b
979
+ - NOTE: set screenshotOptions.resizeEnabled to compare images of different sizes.`;
918
980
  throw e;
919
981
  }
920
982
  }
921
983
  }
922
- defineParameterType({
923
- name: 'AriaRole',
924
- regexp: new RegExp(`(${(['element', 'input', ...Object.keys(ariaRoles.ariaRoles)]).join('|')})`),
925
- });
926
984
 
927
985
  const featureRegex = /\.feature(?:\.md)?$/;
928
986
  const Given = addStepDefinition;
@@ -1035,7 +1093,7 @@ const defaultConfig = {
1035
1093
  /**
1036
1094
  * Tags to mark as failing, using Vitest's `test.failing` implementation.
1037
1095
  */
1038
- failTags: ['@fails', '@failing'],
1096
+ failTags: ['@fails', '@failing', '@should-fail'],
1039
1097
  /**
1040
1098
  * Tags to mark as soft failing, allowing further steps to run until the end of the scenario.
1041
1099
  */
@@ -1112,6 +1170,7 @@ exports.explodeTags = explodeTags;
1112
1170
  exports.formatStack = formatStack;
1113
1171
  exports.getWorldConstructor = getWorldConstructor;
1114
1172
  exports.gherkinStep = gherkinStep;
1173
+ exports.isAriaRoleExtended = isAriaRoleExtended;
1115
1174
  exports.normalizeTags = normalizeTags;
1116
1175
  exports.quickpickle = quickpickle;
1117
1176
  exports.setWorldConstructor = setWorldConstructor;
@@ -1 +1 @@
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/shims/path.ts","../src/shims/path-sanitizer.ts","../src/shims/png.ts","../src/world.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["ParameterTypeRegistry","ExpressionFactory","CucumberExpressionGenerator","ParameterType","Messages","Gherkin","ariaRoles"],"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/shims/path.ts","../src/shims/path-sanitizer.ts","../src/shims/png.ts","../src/world.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["ParameterTypeRegistry","ExpressionFactory","CucumberExpressionGenerator","ParameterType","Messages","Gherkin","ariaRoles","resizeImage"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,14 +4,14 @@ import { explodeTags } from './render';
4
4
  import { DataTable } from './models/DataTable';
5
5
  import { DocString } from './models/DocString';
6
6
  import { normalizeTags, tagsMatch } from './tags';
7
- export { setWorldConstructor, getWorldConstructor, QuickPickleWorld, QuickPickleWorldInterface, ScreenshotComparisonOptions, VisualConfigSetting, VisualWorld, VisualWorldInterface, VisualDiffResult, defaultScreenshotComparisonOptions, InfoConstructor, AriaRoleExtended, } from './world';
7
+ export { setWorldConstructor, getWorldConstructor, QuickPickleWorld, QuickPickleWorldInterface, ScreenshotComparisonOptions, VisualConfigSetting, VisualWorld, VisualWorldInterface, VisualDiffResult, defaultScreenshotComparisonOptions, InfoConstructor, AriaRoleExtended, isAriaRoleExtended, } from './world';
8
8
  export { DocString, DataTable };
9
9
  export { explodeTags, tagsMatch, normalizeTags, applyHooks };
10
10
  export { defineParameterType } from './steps';
11
11
  export { BeforeAll, Before, AfterAll, After, BeforeStep, AfterStep };
12
- export declare const Given: (expression: string | RegExp, f: (state: any, ...args: any[]) => any) => void;
13
- export declare const When: (expression: string | RegExp, f: (state: any, ...args: any[]) => any) => void;
14
- export declare const Then: (expression: string | RegExp, f: (state: any, ...args: any[]) => any) => void;
12
+ export declare const Given: (expression: string | RegExp, f: (state: any, ...args: any[]) => any, priority?: number) => void;
13
+ export declare const When: (expression: string | RegExp, f: (state: any, ...args: any[]) => any, priority?: number) => void;
14
+ export declare const Then: (expression: string | RegExp, f: (state: any, ...args: any[]) => any, priority?: number) => void;
15
15
  export declare function formatStack(text: string, line: string): string;
16
16
  export declare const gherkinStep: (stepType: "Context" | "Action" | "Outcome", step: string, state: any, line: number, stepIdx: number, explodeIdx?: number, data?: any) => Promise<any>;
17
17
  export type QuickPickleConfigSetting<T = {
package/dist/index.esm.js CHANGED
@@ -3,8 +3,10 @@ import { intersection, sortBy, isFunction, isString, concat, fromPairs, escapeRe
3
3
  import parse from '@cucumber/tag-expressions';
4
4
  import * as Gherkin from '@cucumber/gherkin';
5
5
  import * as Messages from '@cucumber/messages';
6
+ import yaml from 'js-yaml';
6
7
  import pixelmatch from 'pixelmatch';
7
8
  import { ariaRoles } from '@a11y-tools/aria-roles';
9
+ import { resizeImage } from 'image-crop-or-pad';
8
10
 
9
11
  const steps = [];
10
12
  const parameterTypeRegistry = new ParameterTypeRegistry();
@@ -16,22 +18,31 @@ const buildParameterType = (type) => {
16
18
  const defineParameterType = (parameterType) => {
17
19
  parameterTypeRegistry.defineParameterType(buildParameterType(parameterType));
18
20
  };
19
- const addStepDefinition = (expression, f) => {
21
+ const addStepDefinition = (expression, f, priority = 0) => {
20
22
  const cucumberExpression = expressionFactory.createExpression(expression);
21
- steps.push({ expression, f, cucumberExpression });
23
+ steps.push({ expression, f, cucumberExpression, priority });
22
24
  };
23
25
  const findStepDefinitionMatches = (step) => {
24
26
  return steps.reduce((accumulator, stepDefinition) => {
27
+ // Get the highest priority from the accumulator
28
+ const priority = accumulator?.[0]?.stepDefinition.priority ?? -9999;
29
+ // If the StepDefinition has a lower priority, don't even check it
30
+ if (stepDefinition.priority < priority)
31
+ return accumulator;
32
+ // Check the StepDefinition for matches
25
33
  const matches = stepDefinition.cucumberExpression.match(step);
26
- if (matches) {
27
- return [...accumulator, {
28
- stepDefinition,
29
- parameters: matches.map((match) => match.getValue())
30
- }];
31
- }
32
- else {
34
+ // If there are no matches, skip it
35
+ if (!matches)
33
36
  return accumulator;
34
- }
37
+ // If the StepDefinition matches the step, create a StepDefinitionMatch
38
+ const stepDefinitionMatch = {
39
+ stepDefinition,
40
+ parameters: matches.map((match) => match.getValue())
41
+ };
42
+ // Add to or replace the accumulator, depending on the priority
43
+ return stepDefinition.priority === priority
44
+ ? [...accumulator, stepDefinitionMatch]
45
+ : [stepDefinitionMatch];
35
46
  }, []);
36
47
  };
37
48
  const findStepDefinitionMatch = (step, snippetData) => {
@@ -44,7 +55,12 @@ ${snippet}
44
55
  `);
45
56
  }
46
57
  if (stepDefinitionMatches.length > 1) {
47
- throw new Error(`More than one step which matches: '${step}'`);
58
+ const priority = stepDefinitionMatches[0].stepDefinition?.priority ?? 0;
59
+ const patterns = stepDefinitionMatches.map(m => m.stepDefinition.expression).join('\n - ');
60
+ throw new Error(`Ambiguous step: '${step}'\n` +
61
+ `Multiple patterns match with equal priority (${priority}):\n - ${patterns}\n\n` +
62
+ `Resolve by adding a higher priority to one of them:\n` +
63
+ ` Given('${step}', yourFunction, ${priority + 1});`);
48
64
  }
49
65
  return stepDefinitionMatches[0];
50
66
  };
@@ -90,6 +106,8 @@ function normalizeTags(tags) {
90
106
  * @returns string[]|null
91
107
  */
92
108
  function tagsMatch(confTags, testTags) {
109
+ if (!confTags || !testTags)
110
+ return null;
93
111
  let tags = intersection(confTags.map(t => t.toLowerCase()), testTags.map(t => t.toLowerCase()));
94
112
  return tags?.length ? tags : null;
95
113
  }
@@ -265,16 +283,16 @@ ${sp}});
265
283
  function renderScenario(child, config, tags, sp = ' ') {
266
284
  let initFn = sp.length > 2 ? 'initRuleScenario' : 'initScenario';
267
285
  tags = [...tags, ...child.scenario.tags.map(t => t.name)];
268
- let todo = tagsMatch(config.todoTags, tags) ? '.todo' : '';
269
- let skip = tagsMatch(config.skipTags, tags) ? '.skip' : '';
270
- let fails = tagsMatch(config.failTags, tags) ? '.fails' : '';
271
- let sequential = tagsMatch(config.sequentialTags, tags) ? '.sequential' : '';
272
- let concurrent = (!sequential && tagsMatch(config.concurrentTags, tags)) ? '.concurrent' : '';
273
- let attrs = todo + skip + fails + concurrent + sequential;
274
286
  // Deal with exploding tags
275
287
  let taglists = explodeTags(config.explodeTags, tags);
276
288
  let isExploded = taglists.length > 1 ? true : false;
277
289
  return taglists.map((tags, explodedIdx) => {
290
+ let todo = tagsMatch(config.todoTags, tags) ? '.todo' : '';
291
+ let skip = tagsMatch(config.skipTags, tags) ? '.skip' : '';
292
+ let fails = tagsMatch(config.failTags, tags) ? '.fails' : '';
293
+ let sequential = tagsMatch(config.sequentialTags, tags) ? '.sequential' : '';
294
+ let concurrent = (!sequential && tagsMatch(config.concurrentTags, tags)) ? '.concurrent' : '';
295
+ let attrs = todo + skip + fails + concurrent + sequential;
278
296
  let tagTextForVitest = tags.length ? ` (${tags.join(' ')})` : '';
279
297
  // For Scenario Outlines with examples
280
298
  if (child.scenario.examples?.[0]?.tableHeader && child.scenario.examples?.[0]?.tableBody) {
@@ -601,7 +619,17 @@ class DataTable {
601
619
  class DocString extends String {
602
620
  constructor(content, mediaType = '') {
603
621
  super(content);
604
- this.mediaType = mediaType;
622
+ this.mediaType = mediaType ?? '';
623
+ if (this.mediaType)
624
+ try {
625
+ if (this.mediaType === 'json')
626
+ this.data = JSON.parse(content);
627
+ else if (this.mediaType?.match(/^ya?ml$/))
628
+ this.data = yaml.load(content);
629
+ }
630
+ catch (e) {
631
+ throw new Error(`parsing ${this.mediaType} content failed: ${e?.message || 'Unknown error'}${e?.stack ? '\n' + e.stack : ''}`);
632
+ }
605
633
  }
606
634
  toString() {
607
635
  return this.valueOf();
@@ -756,6 +784,9 @@ async function getPNG() {
756
784
  return cachedPNG;
757
785
  }
758
786
 
787
+ function isAriaRoleExtended(role) {
788
+ return role === 'element' || role === 'input' || ariaRoles.hasOwnProperty(role);
789
+ }
759
790
  class QuickPickleWorld {
760
791
  constructor(context, info) {
761
792
  this._projectRoot = '';
@@ -828,8 +859,10 @@ function setWorldConstructor(constructor) {
828
859
  }
829
860
  const defaultScreenshotComparisonOptions = {
830
861
  maxDiffPercentage: 0,
862
+ resizeColor: [255, 0, 128],
863
+ anchor: 'top left',
831
864
  threshold: 0.1,
832
- alpha: 0.6
865
+ alpha: 0.6,
833
866
  };
834
867
  class VisualWorld extends QuickPickleWorld {
835
868
  constructor(context, info) {
@@ -840,7 +873,7 @@ class VisualWorld extends QuickPickleWorld {
840
873
  return this.sanitizePath(this.worldConfig.screenshotDir);
841
874
  }
842
875
  get screenshotFilename() {
843
- return `${this.toString().replace(/^.+?Feature: /, 'Feature: ').replace(' ' + this.info.step, '')}.png`;
876
+ return `${this.toString().replace(/^.+?Feature: /, 'Feature: ').replace(' ' + this.info.step, '').replace(/\//g, ' ')}.png`;
844
877
  }
845
878
  get screenshotPath() {
846
879
  return this.fullPath(`${this.screenshotDir}/${this.screenshotFilename}`);
@@ -872,8 +905,34 @@ class VisualWorld extends QuickPickleWorld {
872
905
  // Get the PNG constructor using the shim
873
906
  const PNG = await getPNG();
874
907
  // Parse PNG images to get raw pixel data
875
- const actualPng = PNG.sync.read(actual);
876
- const expectedPng = PNG.sync.read(expected);
908
+ let actualPng = PNG.sync.read(actual);
909
+ let expectedPng = PNG.sync.read(expected);
910
+ // Check if dimensions differ and resize if necessary
911
+ if ((opts?.resizeEnabled || this?.worldConfig?.screenshotOptions?.resizeEnabled)
912
+ && (actualPng.width !== expectedPng.width || actualPng.height !== expectedPng.height)) {
913
+ // Calculate the maximum dimensions
914
+ const maxWidth = Math.max(actualPng.width, expectedPng.width);
915
+ const maxHeight = Math.max(actualPng.height, expectedPng.height);
916
+ // Get the anchor setting
917
+ const rgba = opts?.resizeColor || this.screenshotOptions.resizeColor || [255, 0, 128];
918
+ rgba[3] = (opts?.resizeIgnored || this.screenshotOptions.resizeIgnored) ? 0 : 255;
919
+ const anchor = opts?.anchor || this.screenshotOptions.anchor || 'top left';
920
+ // Resize both images to the maximum dimensions
921
+ if (actualPng.width !== maxWidth || actualPng.height !== maxHeight) {
922
+ const resizedActualData = resizeImage(actualPng.data, actualPng.width, actualPng.height, maxWidth, maxHeight, { rgba, anchor });
923
+ /**
924
+ * There are a couple of choices for initializing the data property:
925
+ * 1. We could use Buffer.from(), except that causes problems if QuickPickle is run in a browser.
926
+ * 2. We can set up a new PNG instance and use the fill method, but that seems like unnecessary overkill.
927
+ * 3. I've chosen to use the any cast, since the downstream doesn't use the Buffer capabilities.
928
+ */
929
+ actualPng = { ...actualPng, data: resizedActualData, width: maxWidth, height: maxHeight };
930
+ }
931
+ if (expectedPng.width !== maxWidth || expectedPng.height !== maxHeight) {
932
+ const resizedExpectedData = resizeImage(expectedPng.data, expectedPng.width, expectedPng.height, maxWidth, maxHeight, { rgba, anchor });
933
+ expectedPng = { ...expectedPng, data: resizedExpectedData, width: maxWidth, height: maxHeight };
934
+ }
935
+ }
877
936
  const { width, height } = expectedPng;
878
937
  const diffPng = new PNG({ width, height });
879
938
  try {
@@ -882,15 +941,14 @@ class VisualWorld extends QuickPickleWorld {
882
941
  return { diff: PNG.sync.write(diffPng), pixels, pct };
883
942
  }
884
943
  catch (e) {
885
- e.message += `\n expected: w:${width}px h:${height}px ${expectedPng.data.length}b\n actual: w:${actualPng.width}px h:${actualPng.height}px ${actualPng.data.length}b`;
944
+ e.message += `
945
+ expected: w:${width}px h:${height}px ${expectedPng.data.length}b
946
+ actual: w:${actualPng.width}px h:${actualPng.height}px ${actualPng.data.length}b
947
+ - NOTE: set screenshotOptions.resizeEnabled to compare images of different sizes.`;
886
948
  throw e;
887
949
  }
888
950
  }
889
951
  }
890
- defineParameterType({
891
- name: 'AriaRole',
892
- regexp: new RegExp(`(${(['element', 'input', ...Object.keys(ariaRoles)]).join('|')})`),
893
- });
894
952
 
895
953
  const featureRegex = /\.feature(?:\.md)?$/;
896
954
  const Given = addStepDefinition;
@@ -1003,7 +1061,7 @@ const defaultConfig = {
1003
1061
  /**
1004
1062
  * Tags to mark as failing, using Vitest's `test.failing` implementation.
1005
1063
  */
1006
- failTags: ['@fails', '@failing'],
1064
+ failTags: ['@fails', '@failing', '@should-fail'],
1007
1065
  /**
1008
1066
  * Tags to mark as soft failing, allowing further steps to run until the end of the scenario.
1009
1067
  */
@@ -1058,5 +1116,5 @@ const quickpickle = (conf = {}) => {
1058
1116
  };
1059
1117
  };
1060
1118
 
1061
- export { After, AfterAll, AfterStep, Before, BeforeAll, BeforeStep, DataTable, DocString, Given, QuickPickleWorld, Then, VisualWorld, When, applyHooks, quickpickle as default, defaultConfig, defaultScreenshotComparisonOptions, defineParameterType, explodeTags, formatStack, getWorldConstructor, gherkinStep, normalizeTags, quickpickle, setWorldConstructor, tagsMatch };
1119
+ export { After, AfterAll, AfterStep, Before, BeforeAll, BeforeStep, DataTable, DocString, Given, QuickPickleWorld, Then, VisualWorld, When, applyHooks, quickpickle as default, defaultConfig, defaultScreenshotComparisonOptions, defineParameterType, explodeTags, formatStack, getWorldConstructor, gherkinStep, isAriaRoleExtended, normalizeTags, quickpickle, setWorldConstructor, tagsMatch };
1062
1120
  //# sourceMappingURL=index.esm.js.map