diff --git a/package.json b/package.json index ef772411bb..956348654c 100644 --- a/package.json +++ b/package.json @@ -85,6 +85,7 @@ "@web/test-runner-commands": "0.9.0", "@web/test-runner-playwright": "0.11.0", "@web/test-runner-puppeteer": "0.15.0", + "@web/test-runner-visual-regression": "0.9.0", "chromatic": "11.0.0", "custom-elements-manifest": "^2.0.0", "date-fns": "3.3.1", diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-large-Chromium.png b/src/components/button/button/__snapshot__/baseline/sbb-button-large-Chromium.png new file mode 100644 index 0000000000..ab48e0e299 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-large-Chromium.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-large-Firefox.png b/src/components/button/button/__snapshot__/baseline/sbb-button-large-Firefox.png new file mode 100644 index 0000000000..f88c483cf1 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-large-Firefox.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-large-Webkit.png b/src/components/button/button/__snapshot__/baseline/sbb-button-large-Webkit.png new file mode 100644 index 0000000000..d98b9350a1 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-large-Webkit.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-medium-Chromium.png b/src/components/button/button/__snapshot__/baseline/sbb-button-medium-Chromium.png new file mode 100644 index 0000000000..7d7be0c822 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-medium-Chromium.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-medium-Firefox.png b/src/components/button/button/__snapshot__/baseline/sbb-button-medium-Firefox.png new file mode 100644 index 0000000000..2845b95827 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-medium-Firefox.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-medium-Webkit.png b/src/components/button/button/__snapshot__/baseline/sbb-button-medium-Webkit.png new file mode 100644 index 0000000000..9482f28062 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-medium-Webkit.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-micro-Chromium.png b/src/components/button/button/__snapshot__/baseline/sbb-button-micro-Chromium.png new file mode 100644 index 0000000000..714189c390 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-micro-Chromium.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-micro-Firefox.png b/src/components/button/button/__snapshot__/baseline/sbb-button-micro-Firefox.png new file mode 100644 index 0000000000..332526f341 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-micro-Firefox.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-micro-Webkit.png b/src/components/button/button/__snapshot__/baseline/sbb-button-micro-Webkit.png new file mode 100644 index 0000000000..a2b5a2cdbe Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-micro-Webkit.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-small-Chromium.png b/src/components/button/button/__snapshot__/baseline/sbb-button-small-Chromium.png new file mode 100644 index 0000000000..c96b09a8c5 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-small-Chromium.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-small-Firefox.png b/src/components/button/button/__snapshot__/baseline/sbb-button-small-Firefox.png new file mode 100644 index 0000000000..568cfa0f53 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-small-Firefox.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-small-Webkit.png b/src/components/button/button/__snapshot__/baseline/sbb-button-small-Webkit.png new file mode 100644 index 0000000000..65839706b4 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-small-Webkit.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-ultra-Chromium.png b/src/components/button/button/__snapshot__/baseline/sbb-button-ultra-Chromium.png new file mode 100644 index 0000000000..0ff1acffb1 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-ultra-Chromium.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-ultra-Firefox.png b/src/components/button/button/__snapshot__/baseline/sbb-button-ultra-Firefox.png new file mode 100644 index 0000000000..3529d74ca0 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-ultra-Firefox.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-ultra-Webkit.png b/src/components/button/button/__snapshot__/baseline/sbb-button-ultra-Webkit.png new file mode 100644 index 0000000000..cc18d1f57b Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-ultra-Webkit.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-wide-Chromium.png b/src/components/button/button/__snapshot__/baseline/sbb-button-wide-Chromium.png new file mode 100644 index 0000000000..cad7119d5d Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-wide-Chromium.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-wide-Firefox.png b/src/components/button/button/__snapshot__/baseline/sbb-button-wide-Firefox.png new file mode 100644 index 0000000000..74d3a25118 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-wide-Firefox.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-wide-Webkit.png b/src/components/button/button/__snapshot__/baseline/sbb-button-wide-Webkit.png new file mode 100644 index 0000000000..bbbe69e7e6 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-wide-Webkit.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-zero-Chromium.png b/src/components/button/button/__snapshot__/baseline/sbb-button-zero-Chromium.png new file mode 100644 index 0000000000..988dc6792e Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-zero-Chromium.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-zero-Firefox.png b/src/components/button/button/__snapshot__/baseline/sbb-button-zero-Firefox.png new file mode 100644 index 0000000000..c92f12b537 Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-zero-Firefox.png differ diff --git a/src/components/button/button/__snapshot__/baseline/sbb-button-zero-Webkit.png b/src/components/button/button/__snapshot__/baseline/sbb-button-zero-Webkit.png new file mode 100644 index 0000000000..2374d1cf6d Binary files /dev/null and b/src/components/button/button/__snapshot__/baseline/sbb-button-zero-Webkit.png differ diff --git a/src/components/button/button/button.spec.ts b/src/components/button/button/button.spec.ts index db5eb2d6bc..e2e797e2ce 100644 --- a/src/components/button/button/button.spec.ts +++ b/src/components/button/button/button.spec.ts @@ -1,7 +1,7 @@ import { expect, fixture } from '@open-wc/testing'; import { html } from 'lit/static-html.js'; -import { waitForLitRender } from '../../core/testing'; +import { testVisualRegressionSnapshot, waitForLitRender } from '../../core/testing'; import '../../form-field'; import './button'; @@ -111,4 +111,8 @@ describe('sbb-button', () => { const button = root.querySelector('sbb-button'); expect(button).to.have.attribute('data-icon-small'); }); + + testVisualRegressionSnapshot({ + 'sbb-button': html`My Button`, + }); }); diff --git a/src/components/core/testing/index.ts b/src/components/core/testing/index.ts index b35d75c80b..b72a638597 100644 --- a/src/components/core/testing/index.ts +++ b/src/components/core/testing/index.ts @@ -1,7 +1,9 @@ +export * from './a11y-tree-snapshot'; export * from './event-spy'; export * from './fixture'; export * from './mocha-extensions'; export * from './platform'; export * from './scroll'; +export * from './visual-regression-snapshot'; export * from './wait-for-condition'; export * from './wait-for-render'; diff --git a/src/components/core/testing/visual-regression-snapshot.ts b/src/components/core/testing/visual-regression-snapshot.ts new file mode 100644 index 0000000000..2eba3fa74c --- /dev/null +++ b/src/components/core/testing/visual-regression-snapshot.ts @@ -0,0 +1,43 @@ +import { fixture } from '@open-wc/testing'; +import { + SbbBreakpointZeroMax, + SbbBreakpointMicroMax, + SbbBreakpointSmallMax, + SbbBreakpointMediumMax, + SbbBreakpointLargeMax, + SbbBreakpointWideMax, + SbbBreakpointUltraMax, +} from '@sbb-esta/lyne-design-tokens'; +import { setViewport } from '@web/test-runner-commands'; +import { visualDiff } from '@web/test-runner-visual-regression'; +import { html, type TemplateResult } from 'lit'; + +const viewportSizes = { + zero: SbbBreakpointZeroMax, + micro: SbbBreakpointMicroMax, + small: SbbBreakpointSmallMax, + medium: SbbBreakpointMediumMax, + large: SbbBreakpointLargeMax, + wide: SbbBreakpointWideMax, + ultra: SbbBreakpointUltraMax, +}; + +export function testVisualRegressionSnapshot(suite: Record): void { + describe('visual regression', () => { + for (const [viewport, size] of Object.entries(viewportSizes)) { + describe(viewport, () => { + before(async () => { + await setViewport({ width: size, height: 400 }); + }); + + for (const [name, template] of Object.entries(suite)) { + it(name, async function () { + this.timeout(10000); + const root = await fixture(html`
${template}
`); + await visualDiff(root, `${name}-${viewport}`); + }); + } + }); + } + }); +} diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-large-Chromium.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-large-Chromium.png new file mode 100644 index 0000000000..9f1198ba27 Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-large-Chromium.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-large-Firefox.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-large-Firefox.png new file mode 100644 index 0000000000..76cd25a415 Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-large-Firefox.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-large-Webkit.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-large-Webkit.png new file mode 100644 index 0000000000..4ae515eb72 Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-large-Webkit.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-medium-Chromium.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-medium-Chromium.png new file mode 100644 index 0000000000..e528c2fabb Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-medium-Chromium.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-medium-Firefox.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-medium-Firefox.png new file mode 100644 index 0000000000..12dedd664a Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-medium-Firefox.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-medium-Webkit.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-medium-Webkit.png new file mode 100644 index 0000000000..60ab03f420 Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-medium-Webkit.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-micro-Chromium.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-micro-Chromium.png new file mode 100644 index 0000000000..43d61e8d0c Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-micro-Chromium.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-micro-Firefox.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-micro-Firefox.png new file mode 100644 index 0000000000..40560d33d0 Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-micro-Firefox.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-micro-Webkit.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-micro-Webkit.png new file mode 100644 index 0000000000..5ba3a24a65 Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-micro-Webkit.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-small-Chromium.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-small-Chromium.png new file mode 100644 index 0000000000..d549fc27dd Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-small-Chromium.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-small-Firefox.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-small-Firefox.png new file mode 100644 index 0000000000..ea67b6d3bb Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-small-Firefox.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-small-Webkit.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-small-Webkit.png new file mode 100644 index 0000000000..ee4af6ad9b Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-small-Webkit.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-ultra-Chromium.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-ultra-Chromium.png new file mode 100644 index 0000000000..6c21f6f191 Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-ultra-Chromium.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-ultra-Firefox.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-ultra-Firefox.png new file mode 100644 index 0000000000..40c780feec Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-ultra-Firefox.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-ultra-Webkit.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-ultra-Webkit.png new file mode 100644 index 0000000000..b2515100b9 Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-ultra-Webkit.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-wide-Chromium.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-wide-Chromium.png new file mode 100644 index 0000000000..bd68bc697c Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-wide-Chromium.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-wide-Firefox.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-wide-Firefox.png new file mode 100644 index 0000000000..25d96c7b64 Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-wide-Firefox.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-wide-Webkit.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-wide-Webkit.png new file mode 100644 index 0000000000..2610ab0a11 Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-wide-Webkit.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-zero-Chromium.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-zero-Chromium.png new file mode 100644 index 0000000000..3855a0c324 Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-zero-Chromium.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-zero-Firefox.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-zero-Firefox.png new file mode 100644 index 0000000000..03472bf1e3 Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-zero-Firefox.png differ diff --git a/src/components/title/__snapshot__/baseline/sbb-title level=1-zero-Webkit.png b/src/components/title/__snapshot__/baseline/sbb-title level=1-zero-Webkit.png new file mode 100644 index 0000000000..be18c0d5a1 Binary files /dev/null and b/src/components/title/__snapshot__/baseline/sbb-title level=1-zero-Webkit.png differ diff --git a/src/components/title/title.spec.ts b/src/components/title/title.spec.ts index 502566e242..b954ac12c8 100644 --- a/src/components/title/title.spec.ts +++ b/src/components/title/title.spec.ts @@ -1,7 +1,7 @@ import { expect, fixture } from '@open-wc/testing'; import { html } from 'lit/static-html.js'; -import { testA11yTreeSnapshot } from '../core/testing/a11y-tree-snapshot'; +import { testA11yTreeSnapshot, testVisualRegressionSnapshot } from '../core/testing'; import './title'; @@ -22,4 +22,8 @@ describe('sbb-title', () => { }); testA11yTreeSnapshot(html`Sample Title Text`); + + testVisualRegressionSnapshot({ + 'sbb-title level=1': html`My Title`, + }); }); diff --git a/web-test-runner.config.js b/web-test-runner.config.js index 801d855816..72ee7e9d9f 100644 --- a/web-test-runner.config.js +++ b/web-test-runner.config.js @@ -1,13 +1,17 @@ +import { existsSync, readFileSync } from 'fs'; +import { dirname, join } from 'path'; import { Worker } from 'worker_threads'; + import { defaultReporter, dotReporter, summaryReporter } from '@web/test-runner'; import { playwrightLauncher } from '@web/test-runner-playwright'; import { puppeteerLauncher } from '@web/test-runner-puppeteer'; import { a11ySnapshotPlugin } from '@web/test-runner-commands/plugins'; -import { existsSync, readFileSync } from 'fs'; +import { visualRegressionPlugin } from '@web/test-runner-visual-regression/plugin'; import * as glob from 'glob'; import * as sass from 'sass'; import { createServer } from 'vite'; +const root = new URL('./', import.meta.url); const isCIEnvironment = !!process.env.CI || process.argv.includes('--ci'); const isDebugMode = process.argv.includes('--debug'); const firefox = process.argv.includes('--firefox'); @@ -59,7 +63,7 @@ const testRunnerHtml = (testFramework, _config, group) => ` // Temporary workaround, until all files are migrated to ssr testing. const e2eFiles = glob - .sync('**/*.e2e.ts', { cwd: new URL('.', import.meta.url) }) + .sync('**/*.e2e.ts', { cwd: root }) .filter((f) => readFileSync(f, 'utf8').includes('${fixture.name}')); /** @type {import('@web/test-runner').TestRunnerConfig} */ @@ -72,7 +76,19 @@ export default { nodeResolve: true, reporters: isDebugMode ? [defaultReporter(), summaryReporter()] : [minimalReporter()], browsers: browsers, - plugins: [vitePlugin(), a11ySnapshotPlugin()], + plugins: [ + vitePlugin(), + a11ySnapshotPlugin(), + visualRegressionPlugin({ + update: process.argv.includes('--update-visual-baseline'), + getBaselineName: ({ browser, name, testFile }) => + join(dirname(testFile), `__snapshot__/baseline/${name}-${browser}.png`), + getDiffName: ({ browser, name, testFile }) => + join(dirname(testFile), `__snapshot__/failed/${name}-${browser}-diff.png`), + getFailedName: ({ browser, name, testFile }) => + join(dirname(testFile), `__snapshot__/failed/${name}-${browser}.png`), + }), + ], testFramework: { config: { timeout: '6000', diff --git a/yarn.lock b/yarn.lock index 85447a7b8f..b55b55e240 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3357,6 +3357,13 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== +"@types/mkdirp@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-1.0.2.tgz#8d0bad7aa793abe551860be1f7ae7f3198c16666" + integrity sha512-o0K1tSO0Dx5X6xlU5F1D6625FawhC3dU3iqr25lluNv/+/QIVH8RLNEiVokgIZo+mz+87w/3Mkg/VvQS+J51fQ== + dependencies: + "@types/node" "*" + "@types/mocha@^10.0.4": version "10.0.6" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.6.tgz#818551d39113081048bdddbef96701b4e8bb9d1b" @@ -3392,6 +3399,20 @@ resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-6.0.3.tgz#705bb349e789efa06f43f128cef51240753424cb" integrity sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g== +"@types/pixelmatch@^5.2.2": + version "5.2.6" + resolved "https://registry.yarnpkg.com/@types/pixelmatch/-/pixelmatch-5.2.6.tgz#fba6de304ac958495f27d85989f5c6bb7499a686" + integrity sha512-wC83uexE5KGuUODn6zkm9gMzTwdY5L0chiK+VrKcDfEjzxh1uadlWTvOmAbCpnM9zx/Ww3f8uKlYQVnO/TrqVg== + dependencies: + "@types/node" "*" + +"@types/pngjs@^6.0.0": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@types/pngjs/-/pngjs-6.0.4.tgz#9a457aebabd944efde1a773a0fa1d74933e8021b" + integrity sha512-atAK9xLKOnxiuArxcHovmnOUUGBZOQ3f0vCf43FnoKs6XnqiambT1kkJWmdo71IR+BoXSh+CueeFR0GfH3dTlQ== + dependencies: + "@types/node" "*" + "@types/pretty-hrtime@^1.0.0": version "1.0.3" resolved "https://registry.yarnpkg.com/@types/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#ee1bd8c9f7a01b3445786aad0ef23aba5f511a44" @@ -4017,6 +4038,20 @@ "@web/test-runner-core" "^0.13.0" puppeteer "^20.0.0" +"@web/test-runner-visual-regression@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@web/test-runner-visual-regression/-/test-runner-visual-regression-0.9.0.tgz#9875a4871a24f8bf520c97b80ce548e81bce51e6" + integrity sha512-06M1WffLy+BJo08s57RumKYUULD/UB8u7DgZ8/MJZYCt+7r4Vt54w34CwSGHCpeDLY8Z/YkxecafvzDjuLnEJQ== + dependencies: + "@types/mkdirp" "^1.0.1" + "@types/pixelmatch" "^5.2.2" + "@types/pngjs" "^6.0.0" + "@web/test-runner-commands" "^0.9.0" + "@web/test-runner-core" "^0.13.0" + mkdirp "^1.0.4" + pixelmatch "^5.2.1" + pngjs "^7.0.0" + "@web/test-runner@0.18.0": version "0.18.0" resolved "https://registry.yarnpkg.com/@web/test-runner/-/test-runner-0.18.0.tgz#70a99bb7b4f78555d0944fb53ffd2b1cb3423eb7" @@ -10276,6 +10311,13 @@ pirates@^4.0.4, pirates@^4.0.6: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== +pixelmatch@^5.2.1: + version "5.3.0" + resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-5.3.0.tgz#5e5321a7abedfb7962d60dbf345deda87cb9560a" + integrity sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q== + dependencies: + pngjs "^6.0.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -10316,6 +10358,16 @@ pluralize@^8.0.0: resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== +pngjs@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-6.0.0.tgz#ca9e5d2aa48db0228a52c419c3308e87720da821" + integrity sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg== + +pngjs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-7.0.0.tgz#a8b7446020ebbc6ac739db6c5415a65d17090e26" + integrity sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow== + polished@^4.2.2: version "4.3.1" resolved "https://registry.yarnpkg.com/polished/-/polished-4.3.1.tgz#5a00ae32715609f83d89f6f31d0f0261c6170548"