From 584e217d490511a8b981af6263b6edb9da3c6bbb Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Mon, 16 Mar 2026 16:09:09 +0000 Subject: [PATCH 1/9] Run a single test command in CI --- .github/workflows/ci.yml | 11 ++-- .github/workflows/publish.yml | 5 +- .github/workflows/update-screenshots.yml | 6 +-- .gitignore | 10 ++-- AGENTS.md | 2 +- package.json | 6 +-- .../basic-grid-chromium-linux.png | Bin .../basic-grid-firefox-linux.png | Bin .../tree-grid-chromium-linux.png | Bin .../tree-grid-firefox-linux.png | Bin vite.config.ts | 47 ++++++++++++------ 11 files changed, 51 insertions(+), 36 deletions(-) rename test/visual/{__screenshots__ => screenshots}/basicGrid.test.tsx/basic-grid-chromium-linux.png (100%) rename test/visual/{__screenshots__ => screenshots}/basicGrid.test.tsx/basic-grid-firefox-linux.png (100%) rename test/visual/{__screenshots__ => screenshots}/treeGrid.test.tsx/tree-grid-chromium-linux.png (100%) rename test/visual/{__screenshots__ => screenshots}/treeGrid.test.tsx/tree-grid-firefox-linux.png (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d500bd3134..15cf151811 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,21 +38,18 @@ jobs: run: npx playwright install chromium firefox - name: Test - run: node --run test + run: node --run test:ci timeout-minutes: 4 - - name: Visual regression test - run: node --run visual - - name: Upload test failure artifacts if: failure() uses: actions/upload-artifact@v7 with: name: test-artifacts path: | - test/browser/**/__screenshots__/** - test/browser/**/__traces__/** - .vitest-attachments/test/**/* + test/**/__screenshots__/** + test/**/__traces__/** + .vitest-attachments/test/** if-no-files-found: ignore - name: Upload coverage diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 5861d171bd..46dc044da7 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -49,12 +49,9 @@ jobs: run: npx playwright install chromium firefox - name: Test - run: node --run test + run: node --run test:ci timeout-minutes: 4 - - name: Visual regression test - run: node --run visual - - name: Update version run: | git config user.name "${{ github.actor }}" diff --git a/.github/workflows/update-screenshots.yml b/.github/workflows/update-screenshots.yml index f7f0e9d6d9..1c4feae708 100644 --- a/.github/workflows/update-screenshots.yml +++ b/.github/workflows/update-screenshots.yml @@ -46,12 +46,12 @@ jobs: run: npx playwright install chromium firefox - name: Update screenshots run: | - rm -r test/visual/__screenshots__ - node --run visual:update + rm -r "test/**/screenshots/**" + node --run test:ci:update - name: Push new screenshots run: | git config --global user.name "${{ env.AUTHOR_NAME }}" git config --global user.email "${{ env.AUTHOR_EMAIL }}" - git add test/visual/__screenshots__/. + git add "test/**/screenshots/**" git diff-index --quiet HEAD || git commit -m "${{ env.COMMIT_MESSAGE }}" git push diff --git a/.gitignore b/.gitignore index b8bd53aef4..3d25e31c3d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,17 @@ /.cache /.claude -/coverage /dist /lib /node_modules /package-lock.json -test/browser/**/__screenshots__ npm-debug.log **.orig .idea -.vitest-attachments -__traces__ +# Vitest +/.vitest-attachments +/coverage +/test/**/__screenshots__ +/test/**/__traces__ +/test/**/screenshots/**/*-win32.png diff --git a/AGENTS.md b/AGENTS.md index e6775ffa51..b64555fe1a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -55,7 +55,7 @@ website/ # demo site (Vite + TanStack Router) - Browser tests use `vitest/browser` + Playwright. `test/setupBrowser.ts` configures `page.render()` via `vitest-browser-react` and registers custom locators via `locators.extend()` — prefer `page.getGrid()`, `page.getCell({ name })`, `page.getRow()`, `page.getHeaderCell()`, `page.getSelectedCell()`, etc. over raw `page.getByRole()`. - Test helpers in `test/browser/utils.tsx`: `setup()`, `getRowWithCell()`, `getCellsAtRowIndex()`, `validateCellPosition()`, `scrollGrid()`, `tabIntoGrid()`, `testCount()`, `testRowCount()`. - `test/failOnConsole.ts` fails tests on unexpected console warnings/errors. -- **Never run visual regression tests locally** — screenshots are CI-only and environment-dependent. +- **Never run visual regression tests** — screenshots are environment-dependent so visual regression tests must run in CI only. ## Validation diff --git a/package.json b/package.json index 9125d14218..fa0c3e274a 100644 --- a/package.json +++ b/package.json @@ -36,10 +36,10 @@ "preview": "vite preview", "build:website": "vite build", "build": "rolldown -c", - "test": "vitest run --project browser --project node --coverage.reportsDirectory='./coverage/test'", + "test": "vitest run --project browser --project node", "test:watch": "vitest watch --project browser --project node", - "visual": "vitest run --project visual --coverage.reportsDirectory='./coverage/visual'", - "visual:update": "vitest run --project visual --update", + "test:ci": "vitest run", + "test:ci:update": "vitest run --project visual --update", "format": "oxfmt", "format:check": "oxfmt --check", "eslint": "eslint --max-warnings 0 --cache --cache-location .cache/eslint --cache-strategy content", diff --git a/test/visual/__screenshots__/basicGrid.test.tsx/basic-grid-chromium-linux.png b/test/visual/screenshots/basicGrid.test.tsx/basic-grid-chromium-linux.png similarity index 100% rename from test/visual/__screenshots__/basicGrid.test.tsx/basic-grid-chromium-linux.png rename to test/visual/screenshots/basicGrid.test.tsx/basic-grid-chromium-linux.png diff --git a/test/visual/__screenshots__/basicGrid.test.tsx/basic-grid-firefox-linux.png b/test/visual/screenshots/basicGrid.test.tsx/basic-grid-firefox-linux.png similarity index 100% rename from test/visual/__screenshots__/basicGrid.test.tsx/basic-grid-firefox-linux.png rename to test/visual/screenshots/basicGrid.test.tsx/basic-grid-firefox-linux.png diff --git a/test/visual/__screenshots__/treeGrid.test.tsx/tree-grid-chromium-linux.png b/test/visual/screenshots/treeGrid.test.tsx/tree-grid-chromium-linux.png similarity index 100% rename from test/visual/__screenshots__/treeGrid.test.tsx/tree-grid-chromium-linux.png rename to test/visual/screenshots/treeGrid.test.tsx/tree-grid-chromium-linux.png diff --git a/test/visual/__screenshots__/treeGrid.test.tsx/tree-grid-firefox-linux.png b/test/visual/screenshots/treeGrid.test.tsx/tree-grid-firefox-linux.png similarity index 100% rename from test/visual/__screenshots__/treeGrid.test.tsx/tree-grid-firefox-linux.png rename to test/visual/screenshots/treeGrid.test.tsx/tree-grid-firefox-linux.png diff --git a/vite.config.ts b/vite.config.ts index 32d77852ba..0e3c9b5272 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -39,22 +39,22 @@ const dragFill: BrowserCommand<[from: string, to: string]> = async ({ page, ifra await page.mouse.up(); }; +const actionTimeout = 2000; const viewport = { width: 1920, height: 1080 } as const; +const playwrightOptions: PlaywrightProviderOptions = { + actionTimeout, + contextOptions: { + viewport + } +}; // vitest modifies the instance objects, so we cannot rely on static objects function getInstances(): BrowserInstanceOption[] { - const opts: PlaywrightProviderOptions = { - actionTimeout: 2000, - contextOptions: { - viewport - } - }; - return [ { browser: 'chromium', provider: playwright({ - ...opts, + ...playwrightOptions, launchOptions: { channel: 'chromium' } @@ -62,7 +62,7 @@ function getInstances(): BrowserInstanceOption[] { }, { browser: 'firefox', - provider: playwright(opts), + provider: playwright(playwrightOptions), // TODO: remove when FF tests are stable fileParallelism: false } @@ -74,6 +74,7 @@ export default defineConfig( base: '/react-data-grid/', cacheDir: '.cache/vite', clearScreen: false, + define: isTest ? { __IS_CI__: JSON.stringify(isCI) } : {}, build: { modulePreload: { polyfill: false }, sourcemap: true, @@ -107,15 +108,20 @@ export default defineConfig( }, restoreMocks: true, sequence: { - shuffle: true + shuffle: { + files: false, + tests: true + } + }, + expect: { + poll: { + timeout: actionTimeout + } }, slowTestThreshold: 1000, projects: [ { extends: true, - define: { - __IS_CI__: JSON.stringify(isCI) - }, test: { name: 'browser', include: ['browser/**/*.test.*'], @@ -141,7 +147,20 @@ export default defineConfig( viewport, headless: true, ui: false, - screenshotFailures: false + expect: { + toMatchScreenshot: { + resolveScreenshotPath: ({ + root, + testFileDirectory, + testFileName, + arg, + browserName, + platform, + ext + }) => + `${root}/${testFileDirectory}/screenshots/${testFileName}/${arg}-${browserName}-${platform}${ext}` + } + } }, setupFiles: ['test/setupBrowser.ts', 'test/failOnConsole.ts'] } From f54687af0ebc7bfe56d21ec473852c0b1816563e Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Mon, 16 Mar 2026 16:32:40 +0000 Subject: [PATCH 2/9] add link to bug --- vite.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/vite.config.ts b/vite.config.ts index 0e3c9b5272..2b4d24db60 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -49,6 +49,7 @@ const playwrightOptions: PlaywrightProviderOptions = { }; // vitest modifies the instance objects, so we cannot rely on static objects +// https://github.com/vitest-dev/vitest/issues/9877 function getInstances(): BrowserInstanceOption[] { return [ { From cb968008e53b508871d4c05980a76cd30dfe409e Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Mon, 16 Mar 2026 16:36:51 +0000 Subject: [PATCH 3/9] cleaner --- vite.config.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index 2b4d24db60..a1dc692fdc 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -150,7 +150,7 @@ export default defineConfig( ui: false, expect: { toMatchScreenshot: { - resolveScreenshotPath: ({ + resolveScreenshotPath({ root, testFileDirectory, testFileName, @@ -158,8 +158,9 @@ export default defineConfig( browserName, platform, ext - }) => - `${root}/${testFileDirectory}/screenshots/${testFileName}/${arg}-${browserName}-${platform}${ext}` + }) { + return `${root}/${testFileDirectory}/screenshots/${testFileName}/${arg}-${browserName}-${platform}${ext}`; + } } } }, From 94671ab5d6333f1a0ee59e5fb3174d77131f666c Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Mon, 16 Mar 2026 16:43:52 +0000 Subject: [PATCH 4/9] test changing screenshot name, screenshot failure, and adding new screenshot --- test/visual/basicGrid.test.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/test/visual/basicGrid.test.tsx b/test/visual/basicGrid.test.tsx index 9d4629e3b1..3a817e4cc7 100644 --- a/test/visual/basicGrid.test.tsx +++ b/test/visual/basicGrid.test.tsx @@ -1,4 +1,4 @@ -import { page } from 'vitest/browser'; +import { page, userEvent } from 'vitest/browser'; import { DataGrid, SelectColumn, type Column } from '../../src'; @@ -51,5 +51,8 @@ test('basic grid', async () => { /> ); - await expect.element(grid).toMatchScreenshot('basic-grid'); + await expect.element(grid).toMatchScreenshot('basic-grid-edit'); + expect.soft(1).toBe(2); + await userEvent.click(grid.getByRole('gridcell', { name: 'Row 2', exact: true })); + await expect.element(grid).toMatchScreenshot('basic-grid-clicked'); }); From 9ce9dd0e6b3be5f723c5a238e697e662fe5706d7 Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Mon, 16 Mar 2026 16:49:08 +0000 Subject: [PATCH 5/9] don't pass a glob string to rm --- .github/workflows/update-screenshots.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-screenshots.yml b/.github/workflows/update-screenshots.yml index 1c4feae708..665f3bc783 100644 --- a/.github/workflows/update-screenshots.yml +++ b/.github/workflows/update-screenshots.yml @@ -46,7 +46,7 @@ jobs: run: npx playwright install chromium firefox - name: Update screenshots run: | - rm -r "test/**/screenshots/**" + rm -r test/**/screenshots/** node --run test:ci:update - name: Push new screenshots run: | From 38461b677431428797d3474fd63d37c72eab3025 Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Mon, 16 Mar 2026 16:54:10 +0000 Subject: [PATCH 6/9] remove soft failure --- test/visual/basicGrid.test.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/test/visual/basicGrid.test.tsx b/test/visual/basicGrid.test.tsx index 3a817e4cc7..f05da30921 100644 --- a/test/visual/basicGrid.test.tsx +++ b/test/visual/basicGrid.test.tsx @@ -52,7 +52,6 @@ test('basic grid', async () => { ); await expect.element(grid).toMatchScreenshot('basic-grid-edit'); - expect.soft(1).toBe(2); await userEvent.click(grid.getByRole('gridcell', { name: 'Row 2', exact: true })); await expect.element(grid).toMatchScreenshot('basic-grid-clicked'); }); From 0d9f6a9cd746a1cf1a4555778836fee5d151f344 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 16:55:36 +0000 Subject: [PATCH 7/9] Update screenshots Co-authored-by: nstepien --- .../basic-grid-clicked-chromium-linux.png | Bin 0 -> 16911 bytes .../basic-grid-clicked-firefox-linux.png | Bin 0 -> 23168 bytes ...x.png => basic-grid-edit-chromium-linux.png} | Bin ...ux.png => basic-grid-edit-firefox-linux.png} | Bin 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/visual/screenshots/basicGrid.test.tsx/basic-grid-clicked-chromium-linux.png create mode 100644 test/visual/screenshots/basicGrid.test.tsx/basic-grid-clicked-firefox-linux.png rename test/visual/screenshots/basicGrid.test.tsx/{basic-grid-chromium-linux.png => basic-grid-edit-chromium-linux.png} (100%) rename test/visual/screenshots/basicGrid.test.tsx/{basic-grid-firefox-linux.png => basic-grid-edit-firefox-linux.png} (100%) diff --git a/test/visual/screenshots/basicGrid.test.tsx/basic-grid-clicked-chromium-linux.png b/test/visual/screenshots/basicGrid.test.tsx/basic-grid-clicked-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..702f375f0c06a6c9f22f2e6d97924588719d80fa GIT binary patch literal 16911 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�=r%#_+Wq2h6vb1f()&kycD2@zJ-2liXH*@_T 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 b(bsR&m~}}e!{21k*RNQ%YH8f!HT(V-&&^P5 literal 0 HcmV?d00001 diff --git a/test/visual/screenshots/basicGrid.test.tsx/basic-grid-chromium-linux.png b/test/visual/screenshots/basicGrid.test.tsx/basic-grid-edit-chromium-linux.png similarity index 100% rename from test/visual/screenshots/basicGrid.test.tsx/basic-grid-chromium-linux.png rename to test/visual/screenshots/basicGrid.test.tsx/basic-grid-edit-chromium-linux.png diff --git a/test/visual/screenshots/basicGrid.test.tsx/basic-grid-firefox-linux.png b/test/visual/screenshots/basicGrid.test.tsx/basic-grid-edit-firefox-linux.png similarity index 100% rename from test/visual/screenshots/basicGrid.test.tsx/basic-grid-firefox-linux.png rename to test/visual/screenshots/basicGrid.test.tsx/basic-grid-edit-firefox-linux.png From 34c6cf61a05b5b72a144eeeaab43aab6fb83a1ff Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Mon, 16 Mar 2026 16:59:33 +0000 Subject: [PATCH 8/9] tweak git config, reset test --- .github/workflows/update-screenshots.yml | 14 +++----------- test/visual/basicGrid.test.tsx | 6 ++---- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/.github/workflows/update-screenshots.yml b/.github/workflows/update-screenshots.yml index 665f3bc783..1908f54a93 100644 --- a/.github/workflows/update-screenshots.yml +++ b/.github/workflows/update-screenshots.yml @@ -5,14 +5,6 @@ on: types: [labeled] workflow_dispatch: -env: - AUTHOR_NAME: 'github-actions[bot]' - AUTHOR_EMAIL: '41898282+github-actions[bot]@users.noreply.github.com' - COMMIT_MESSAGE: | - Update screenshots - - Co-authored-by: ${{ github.actor }} - jobs: update-screenshots: if: ${{ github.event.label.name == 'Update Screenshots' || github.event_name == 'workflow_dispatch' }} @@ -50,8 +42,8 @@ jobs: node --run test:ci:update - name: Push new screenshots run: | - git config --global user.name "${{ env.AUTHOR_NAME }}" - git config --global user.email "${{ env.AUTHOR_EMAIL }}" + git config user.name "${{ github.actor }}" + git config user.email "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com" git add "test/**/screenshots/**" - git diff-index --quiet HEAD || git commit -m "${{ env.COMMIT_MESSAGE }}" + git diff-index --quiet HEAD || git commit -m "Update screenshots" git push diff --git a/test/visual/basicGrid.test.tsx b/test/visual/basicGrid.test.tsx index f05da30921..9d4629e3b1 100644 --- a/test/visual/basicGrid.test.tsx +++ b/test/visual/basicGrid.test.tsx @@ -1,4 +1,4 @@ -import { page, userEvent } from 'vitest/browser'; +import { page } from 'vitest/browser'; import { DataGrid, SelectColumn, type Column } from '../../src'; @@ -51,7 +51,5 @@ test('basic grid', async () => { /> ); - await expect.element(grid).toMatchScreenshot('basic-grid-edit'); - await userEvent.click(grid.getByRole('gridcell', { name: 'Row 2', exact: true })); - await expect.element(grid).toMatchScreenshot('basic-grid-clicked'); + await expect.element(grid).toMatchScreenshot('basic-grid'); }); From 9ca04266627c73dcdf1664ccf7bfe3511ac8bdde Mon Sep 17 00:00:00 2001 From: nstepien <567105+nstepien@users.noreply.github.com> Date: Mon, 16 Mar 2026 17:01:06 +0000 Subject: [PATCH 9/9] Update screenshots --- ...-linux.png => basic-grid-chromium-linux.png} | Bin .../basic-grid-clicked-chromium-linux.png | Bin 16911 -> 0 bytes .../basic-grid-clicked-firefox-linux.png | Bin 23168 -> 0 bytes ...x-linux.png => basic-grid-firefox-linux.png} | Bin 4 files changed, 0 insertions(+), 0 deletions(-) rename test/visual/screenshots/basicGrid.test.tsx/{basic-grid-edit-chromium-linux.png => basic-grid-chromium-linux.png} (100%) delete mode 100644 test/visual/screenshots/basicGrid.test.tsx/basic-grid-clicked-chromium-linux.png delete mode 100644 test/visual/screenshots/basicGrid.test.tsx/basic-grid-clicked-firefox-linux.png rename test/visual/screenshots/basicGrid.test.tsx/{basic-grid-edit-firefox-linux.png => basic-grid-firefox-linux.png} (100%) diff --git a/test/visual/screenshots/basicGrid.test.tsx/basic-grid-edit-chromium-linux.png b/test/visual/screenshots/basicGrid.test.tsx/basic-grid-chromium-linux.png similarity index 100% rename from test/visual/screenshots/basicGrid.test.tsx/basic-grid-edit-chromium-linux.png rename to test/visual/screenshots/basicGrid.test.tsx/basic-grid-chromium-linux.png diff --git a/test/visual/screenshots/basicGrid.test.tsx/basic-grid-clicked-chromium-linux.png b/test/visual/screenshots/basicGrid.test.tsx/basic-grid-clicked-chromium-linux.png deleted file mode 100644 index 702f375f0c06a6c9f22f2e6d97924588719d80fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16911 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�=r%#_+Wq2h6vb1f()&kycD2@zJ-2liXH*@_T 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 b(bsR&m~}}e!{21k*RNQ%YH8f!HT(V-&&^P5 diff --git a/test/visual/screenshots/basicGrid.test.tsx/basic-grid-edit-firefox-linux.png b/test/visual/screenshots/basicGrid.test.tsx/basic-grid-firefox-linux.png similarity index 100% rename from test/visual/screenshots/basicGrid.test.tsx/basic-grid-edit-firefox-linux.png rename to test/visual/screenshots/basicGrid.test.tsx/basic-grid-firefox-linux.png