From e5f1e8c9958dca7c8f7809e411faa7ce4bf42da5 Mon Sep 17 00:00:00 2001 From: anastasiia_glushkova Date: Sun, 10 May 2026 23:19:10 +0200 Subject: [PATCH 1/8] test: setup visual tests --- core/package.json | 1 + ...t-button-matches-screenshot-1-chromium.png | Bin 0 -> 772 bytes core/vitest-setup-dist.ts | 8 ++++ core/vitest.config.mts | 35 +++++++++++++++++- pnpm-lock.yaml | 5 ++- 5 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 core/src/components/cat-button/__screenshots__/cat-button.test.tsx/cat-button-matches-screenshot-1-chromium.png create mode 100644 core/vitest-setup-dist.ts diff --git a/core/package.json b/core/package.json index 39a18553..4461a252 100644 --- a/core/package.json +++ b/core/package.json @@ -73,6 +73,7 @@ "@types/toastify-js": "^1.12.3", "@typescript-eslint/eslint-plugin": "8.52.0", "@typescript-eslint/parser": "8.52.0", + "@vitest/browser-playwright": "4.1.5", "eslint": "9.39.2", "eslint-config-prettier": "9.1.2", "prettier": "3.7.4", diff --git a/core/src/components/cat-button/__screenshots__/cat-button.test.tsx/cat-button-matches-screenshot-1-chromium.png b/core/src/components/cat-button/__screenshots__/cat-button.test.tsx/cat-button-matches-screenshot-1-chromium.png new file mode 100644 index 0000000000000000000000000000000000000000..365cf39ce55a8ef6acc0c7b30d531b813b0a5b32 GIT binary patch literal 772 zcmV+f1N;1mP)jPN|E*kzv6u!p|!S)r8lb8I#NnLn{C@jDF}A9aJsyb=xQ^fF#kOoDwv9Up z8YC_!aXE?0NnB3iata4*+vfTCnfEBAh(@FQUla~hDi!+r`Y;TGhW-7078e(}y}jk) z;)18AC!DY>3(K-lO5v2m0n4&Tr_*FI8K$SFX;@xf=J@!Sk&zLcT3uZwo6XV+g#&GE zZ7eM<@t&QX9dfxGySuwYA`uM3pr@yYo0}U>Pfy9`^CXi=E-x=xSy|!!{+?7SMLZtI z35i2WDc)mQ7ISlR%+AhIDwQw{gN9@>$;`|Q!Fin$0B0($`Bb&`KKR?gW(Gg=~ zV+;)qF*P;C%gYO|udhr_P7;g7czk?heSMuoB0+zDKmVpytK(G)@%&rf{vjISqY8xr zp->1ZB@J3@%H=X09UVw1X);ZdKp?<>c`KWI|D7MjHxdqq`8$utLogWRp8|mZt&q5! z#N{L|CviE6%Sl{L;&Kv~lUiH2QT=NjAwVjnD1R|=6RkC0%nDLUR5;X0zEI@P*Ef7# zFP}|Y7FvHL)Y*v;0_F88e(Z^01Ga7R*#sbjpy@A1f(v;qDY~Hm0000 { + // Load the lazy-loader for this project + await import('./dist/catalyst/catalyst.esm.js'); +}); + +export {}; diff --git a/core/vitest.config.mts b/core/vitest.config.mts index 1d1e4450..4768e092 100644 --- a/core/vitest.config.mts +++ b/core/vitest.config.mts @@ -1,5 +1,6 @@ import { defineVitestConfig } from '@stencil/vitest/config'; import { stencilVitestPlugin } from '@stencil/vitest/plugin'; +import { playwright } from '@vitest/browser-playwright'; export default defineVitestConfig({ stencilConfig: './stencil.config.ts', @@ -14,7 +15,39 @@ export default defineVitestConfig({ include: ['src/**/*.spec.{ts,tsx}'], setupFiles: ['./vitest-setup-plugin.ts'] } - } + }, + // Browser tests + { + test: { + name: 'browser', + include: ['src/**/*.screenshot.{ts,tsx}'], + setupFiles: ['./vitest-setup-dist.ts'], + browser: { + enabled: true, + provider: playwright(), + headless: true, + instances: [{ browser: 'chromium' }], + expect: { + toMatchScreenshot: { + comparatorName: 'pixelmatch', + comparatorOptions: { + threshold: 0.5, + allowedMismatchedPixels: 100, + }, + resolveScreenshotPath: ({ + arg, + browserName, + ext, + testFileName, + screenshotDirectory, + testFileDirectory, + root, + }) => `${root}/${testFileDirectory}/${screenshotDirectory}/${testFileName}/${arg}-${browserName}${ext}`, + }, + }, + }, + }, + }, ] } }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8e56d4d3..ae576022 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -259,6 +259,9 @@ importers: '@typescript-eslint/parser': specifier: 8.52.0 version: 8.52.0(eslint@9.39.2(jiti@2.7.0))(typescript@5.9.3) + '@vitest/browser-playwright': + specifier: 4.1.5 + version: 4.1.5(playwright@1.59.1)(vite@7.3.2(@types/node@20.19.40)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0))(vitest@4.1.5) eslint: specifier: 9.39.2 version: 9.39.2(jiti@2.7.0) @@ -7293,7 +7296,6 @@ snapshots: - msw - utf-8-validate - vite - optional: true '@vitest/browser@4.1.5(vite@7.3.2(@types/node@20.19.40)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.97.3))(vitest@4.1.5(@types/node@20.19.40)(@vitest/browser-playwright@4.1.5)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@27.4.0)(vite@7.3.2(@types/node@20.19.40)(jiti@2.7.0)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.97.3)))': dependencies: @@ -7328,7 +7330,6 @@ snapshots: - msw - utf-8-validate - vite - optional: true '@vitest/coverage-v8@4.1.5(@vitest/browser@4.1.5)(vitest@4.1.5)': dependencies: From cc326616aa2dacd3fd3cc51dfa33359801df20d6 Mon Sep 17 00:00:00 2001 From: anastasiia_glushkova Date: Sun, 10 May 2026 23:19:50 +0200 Subject: [PATCH 2/8] test: setup visual tests --- core/src/components/cat-button/cat-button.screenshot.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 core/src/components/cat-button/cat-button.screenshot.tsx diff --git a/core/src/components/cat-button/cat-button.screenshot.tsx b/core/src/components/cat-button/cat-button.screenshot.tsx new file mode 100644 index 00000000..56c4f3cc --- /dev/null +++ b/core/src/components/cat-button/cat-button.screenshot.tsx @@ -0,0 +1,9 @@ +import { describe, it, expect } from 'vitest'; +import { render, h } from '@stencil/vitest'; + +describe('cat-button', () => { + it('matches screenshot', async () => { + const { root } = await render(Test); + await expect(root).toMatchScreenshot(); + }); +}); From 86cfe3c67dbf036fc466d80e05797d9af6cd03ce Mon Sep 17 00:00:00 2001 From: anastasiia_glushkova Date: Sun, 10 May 2026 23:29:20 +0200 Subject: [PATCH 3/8] test: fix screenshot --- .../cat-button-matches-screenshot-1-chromium.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename core/src/components/cat-button/__screenshots__/{cat-button.test.tsx => cat-button.screenshot.tsx}/cat-button-matches-screenshot-1-chromium.png (100%) diff --git a/core/src/components/cat-button/__screenshots__/cat-button.test.tsx/cat-button-matches-screenshot-1-chromium.png b/core/src/components/cat-button/__screenshots__/cat-button.screenshot.tsx/cat-button-matches-screenshot-1-chromium.png similarity index 100% rename from core/src/components/cat-button/__screenshots__/cat-button.test.tsx/cat-button-matches-screenshot-1-chromium.png rename to core/src/components/cat-button/__screenshots__/cat-button.screenshot.tsx/cat-button-matches-screenshot-1-chromium.png From 23fc5d149fbf96b4b53cdbc5dffa4d8184ac9160 Mon Sep 17 00:00:00 2001 From: anastasiia_glushkova Date: Mon, 11 May 2026 08:52:31 +0200 Subject: [PATCH 4/8] test: add global css to screenshots setup --- ...-renders-with-success-color-1-chromium.png | Bin 0 -> 5129 bytes .../cat-alert/cat-alert.screenshot.tsx | 15 ++++++++++ ...t-button-matches-screenshot-1-chromium.png | Bin 772 -> 754 bytes ...up-dist.ts => vitest-setup-screenshots.ts} | 1 + core/vitest.config.mts | 28 +++++++++--------- 5 files changed, 30 insertions(+), 14 deletions(-) create mode 100644 core/src/components/cat-alert/__screenshots__/cat-alert.screenshot.tsx/cat-alert-screenshot-renders-with-success-color-1-chromium.png create mode 100644 core/src/components/cat-alert/cat-alert.screenshot.tsx rename core/{vitest-setup-dist.ts => vitest-setup-screenshots.ts} (81%) diff --git a/core/src/components/cat-alert/__screenshots__/cat-alert.screenshot.tsx/cat-alert-screenshot-renders-with-success-color-1-chromium.png b/core/src/components/cat-alert/__screenshots__/cat-alert.screenshot.tsx/cat-alert-screenshot-renders-with-success-color-1-chromium.png new file mode 100644 index 0000000000000000000000000000000000000000..c1b153c4e6de6a29999ab4928e7f79ac627ef8a2 GIT binary patch literal 5129 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 literal 0 HcmV?d00001 diff --git a/core/src/components/cat-alert/cat-alert.screenshot.tsx b/core/src/components/cat-alert/cat-alert.screenshot.tsx new file mode 100644 index 00000000..f4e5e0ff --- /dev/null +++ b/core/src/components/cat-alert/cat-alert.screenshot.tsx @@ -0,0 +1,15 @@ +import { describe, it, expect } from 'vitest'; +import { render, h } from '@stencil/vitest'; + +describe('cat-alert screenshot', () => { + it('renders with success color', async () => { + const { root } = await render( + +

+ Lorem ipsum dolor dolore magna sit amet. +

+
+ ); + await expect(root).toMatchScreenshot(); + }); +}); diff --git a/core/src/components/cat-button/__screenshots__/cat-button.screenshot.tsx/cat-button-matches-screenshot-1-chromium.png b/core/src/components/cat-button/__screenshots__/cat-button.screenshot.tsx/cat-button-matches-screenshot-1-chromium.png index 365cf39ce55a8ef6acc0c7b30d531b813b0a5b32..79571163f5b421b9e10495c3e9830e20ed4c9f15 100644 GIT binary patch literal 754 zcmV62UD!x<}+6Aq|!a@Q{FqIGslVBlZm%_qUu(PnS6A=Xk z{{X?aN=pS1?esM9l=I?{OkQR;g|IAFjGHSm&!fG)z1zi-MX6LqDMh2GR;zfuUc6o( zQm~5n{Y`xP`h`aGmVd{xERqF_L$Xjv$aN1gqy7a7y8Th+r57hG7tiL^wV^ z#xM*F!(ei9lFt|)A19m5@)?2yB0@A8rA8@5O*9(i!~Oj|mzS4>!(n=Rd--sCd&|wu z4LvE0Zr3rYiq*^p-$`T>m-v&VzC(K=jY7M&XUPw*xcMCl}Ztd z#W*}XWNmGYrKKfm=H}+;?(SxLdmAT&I%Kn1lF1}TM@I|~50lH~2!%qV(`j~gc340j&-(iM7#SI1Z*PxODn+4CU}9o|-=U~Oe}6w69UZK!tYF(V zudlCcZEaDlR=K#iAQ%jiPNx|i9p&Zag{Gz^YM!5;d3t)nDWML2zn}g6eG-WTnM{V7 z`T2RKrl#24-DP8A1E0@FI2nUgd8Tv-OOw+{Y z^C2R9D3{9=i$wx~06#NL6J6JF;xYR-!v93qb$%rxhzP&Zb)C;pxPZb16fU4}0fh@F zTtHPSRT`BIR4Nseh>(9bX+-(FiHIP7`2D=)OjPN|E*kzv6u!p|!S)r8lb8I#NnLn{C@jDF}A9aJsyb=xQ^fF#kOoDwv9Up z8YC_!aXE?0NnB3iata4*+vfTCnfEBAh(@FQUla~hDi!+r`Y;TGhW-7078e(}y}jk) z;)18AC!DY>3(K-lO5v2m0n4&Tr_*FI8K$SFX;@xf=J@!Sk&zLcT3uZwo6XV+g#&GE zZ7eM<@t&QX9dfxGySuwYA`uM3pr@yYo0}U>Pfy9`^CXi=E-x=xSy|!!{+?7SMLZtI z35i2WDc)mQ7ISlR%+AhIDwQw{gN9@>$;`|Q!Fin$0B0($`Bb&`KKR?gW(Gg=~ zV+;)qF*P;C%gYO|udhr_P7;g7czk?heSMuoB0+zDKmVpytK(G)@%&rf{vjISqY8xr zp->1ZB@J3@%H=X09UVw1X);ZdKp?<>c`KWI|D7MjHxdqq`8$utLogWRp8|mZt&q5! z#N{L|CviE6%Sl{L;&Kv~lUiH2QT=NjAwVjnD1R|=6RkC0%nDLUR5;X0zEI@P*Ef7# zFP}|Y7FvHL)Y*v;0_F88e(Z^01Ga7R*#sbjpy@A1f(v;qDY~Hm0000 { // Load the lazy-loader for this project diff --git a/core/vitest.config.mts b/core/vitest.config.mts index 4768e092..3d916c38 100644 --- a/core/vitest.config.mts +++ b/core/vitest.config.mts @@ -32,22 +32,22 @@ export default defineVitestConfig({ comparatorName: 'pixelmatch', comparatorOptions: { threshold: 0.5, - allowedMismatchedPixels: 100, + allowedMismatchedPixels: 100 }, resolveScreenshotPath: ({ - arg, - browserName, - ext, - testFileName, - screenshotDirectory, - testFileDirectory, - root, - }) => `${root}/${testFileDirectory}/${screenshotDirectory}/${testFileName}/${arg}-${browserName}${ext}`, - }, - }, - }, - }, - }, + arg, + browserName, + ext, + testFileName, + screenshotDirectory, + testFileDirectory, + root + }) => `${root}/${testFileDirectory}/${screenshotDirectory}/${testFileName}/${arg}-${browserName}${ext}` + } + } + } + } + } ] } }); From 7f1ce811d9d1d46c6d72301c90e06504ed1732ef Mon Sep 17 00:00:00 2001 From: anastasiia_glushkova Date: Mon, 11 May 2026 10:49:04 +0200 Subject: [PATCH 5/8] test: fix config --- core/vitest.config.mts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/vitest.config.mts b/core/vitest.config.mts index 3d916c38..2fd00ffc 100644 --- a/core/vitest.config.mts +++ b/core/vitest.config.mts @@ -21,7 +21,7 @@ export default defineVitestConfig({ test: { name: 'browser', include: ['src/**/*.screenshot.{ts,tsx}'], - setupFiles: ['./vitest-setup-dist.ts'], + setupFiles: ['./vitest-setup-screenshots.ts'], browser: { enabled: true, provider: playwright(), From 9cf3ac2773ba3d485e1a5d74996760eae211bd5b Mon Sep 17 00:00:00 2001 From: anastasiia_glushkova Date: Mon, 11 May 2026 10:49:09 +0200 Subject: [PATCH 6/8] test: fix config --- core/eslint.config.mjs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/eslint.config.mjs b/core/eslint.config.mjs index dd645e1e..5825d064 100644 --- a/core/eslint.config.mjs +++ b/core/eslint.config.mjs @@ -83,6 +83,7 @@ export default defineConfig([ '**/stencil.config.ts', '**/playwright.config.ts', '**/vitest-setup-plugin.ts', - '**/vitest.config.ts' + '**/vitest.config.ts', + '**/vitest-setup-screenshots.ts' ]) ]); From 0a690eaf9597cc9bf9500933c6934a1d6b070c74 Mon Sep 17 00:00:00 2001 From: anastasiia_glushkova Date: Mon, 11 May 2026 11:07:54 +0200 Subject: [PATCH 7/8] test: upload screenshot artifacts --- .github/workflows/core.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index 888d2803..0417b93b 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -109,5 +109,12 @@ jobs: working-directory: core - name: Test run: pnpm --filter @haiilo/catalyst run test + - name: Upload screenshot artifacts + if: failure() + uses: actions/upload-artifact@v4 + with: + name: screenshot-diffs + path: core/.vitest-attachments/ + if-no-files-found: ignore - name: E2E Test run: pnpm --filter @haiilo/catalyst run test:e2e From 18403ca5b3c82fce604bb00f6734d19209160bed Mon Sep 17 00:00:00 2001 From: anastasiia_glushkova Date: Mon, 11 May 2026 11:13:26 +0200 Subject: [PATCH 8/8] test: include-hidden-files --- .github/workflows/core.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index 0417b93b..c7c7e582 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -116,5 +116,6 @@ jobs: name: screenshot-diffs path: core/.vitest-attachments/ if-no-files-found: ignore + include-hidden-files: true - name: E2E Test run: pnpm --filter @haiilo/catalyst run test:e2e