americanexpress/jest-image-snapshot

Allow custom comparisonMethod

kolodny opened this issue · 0 comments

I'd like to try out the ssim-cie94 method of @playwright/test. To do that I'd need to be able to provide a custom function to comparisonMethod (as opposed to just the two string options: 'pixelmatch' | 'ssim'). I think this property can accept a function and just execute that function with the same arguments it's already using for the other two methods

const comparisonFn = comparisonMethod === 'ssim' ? ssimMatch : pixelmatch;

Essentially it'll change to this

- const comparisonFn = comparisonMethod === 'ssim' ? ssimMatch : pixelmatch;
+ const comparisonFn = typeof comparisonMethod === 'function' ? comparisonMethod :
+   comparisonMethod === 'ssim' ? ssimMatch : pixelmatch;

This will also make the library more robust to handle other custom diffing strategies moving forward.