[WC-3390] DG2: improve virtual scroll behavior and height logic #8880
BuildJobs.yml
on: pull_request
Check SHA in GH Actions
6s
Matrix: build
Matrix: Run automated end-to-end tests
Publish E2E test summary
46s
Annotations
9 errors and 17 warnings
|
Run automated end-to-end tests (0)
Process completed with exit code 1.
|
|
Run automated end-to-end tests (0)
@mendix/datagrid-web#e2e: command (/home/runner/work/web-widgets/web-widgets/packages/pluggableWidgets/datagrid-web) /home/runner/setup-pnpm/node_modules/.bin/pnpm run e2e exited (1)
|
|
Failed Test: reset filter state when empty option is clicked:
packages/pluggableWidgets/datagrid-web/e2e/filtering/DataGridFilteringSingle.spec.js#L0
reset filter state when empty option is clicked: Error: expect(locator).toHaveText(expected) failed
Locator: locator('[role="gridcell"]:nth-child(3)')
Timeout: 5000ms
- Expected - 4
+ Received + 4
Array [
+ "No",
+ "No",
"Yes",
"Yes",
"Yes",
- "No",
"Yes",
- "No",
- "No",
+ "Yes",
"Yes",
- "No",
+ "Yes",
"Yes",
]
Call log:
- Expect "toHaveText" with timeout 5000ms
- waiting for locator('[role="gridcell"]:nth-child(3)')
9 × locator resolved to 10 elements
- Error: expect(locator).toHaveText(expected) failed
Locator: locator('[role="gridcell"]:nth-child(3)')
Timeout: 5000ms
- Expected - 4
+ Received + 4
Array [
+ "No",
+ "No",
"Yes",
"Yes",
"Yes",
- "No",
"Yes",
- "No",
- "No",
+ "Yes",
"Yes",
- "No",
+ "Yes",
"Yes",
]
Call log:
- Expect "toHaveText" with timeout 5000ms
- waiting for locator('[role="gridcell"]:nth-child(3)')
9 × locator resolved to 10 elements
at /home/runner/work/web-widgets/web-widgets/packages/pluggableWidgets/datagrid-web/e2e/filtering/DataGridFilteringSingle.spec.js:69:33
|
|
Failed Test: compares with a screenshot baseline and checks if all datagrid and filter elements are rendered as expected:
packages/pluggableWidgets/datagrid-web/e2e/filtering/DataGridFilteringSingle.spec.js#L0
compares with a screenshot baseline and checks if all datagrid and filter elements are rendered as expected: Error: expect(page).toHaveScreenshot(expected) failed
16951 pixels (ratio 0.02 of all image pixels) are different.
Snapshot: datagridFilteringSingle.png
Call log:
- Expect "toHaveScreenshot(datagridFilteringSingle.png)" with timeout 5000ms
- verifying given screenshot expectation
- taking page screenshot
- disabled all CSS animations
- waiting for fonts to load...
- fonts loaded
- 16951 pixels (ratio 0.02 of all image pixels) are different.
- waiting 100ms before taking screenshot
- taking page screenshot
- disabled all CSS animations
- waiting for fonts to load...
- fonts loaded
- captured a stable screenshot
- 16951 pixels (ratio 0.02 of all image pixels) are different.
- Error: expect(page).toHaveScreenshot(expected) failed
16951 pixels (ratio 0.02 of all image pixels) are different.
Snapshot: datagridFilteringSingle.png
Call log:
- Expect "toHaveScreenshot(datagridFilteringSingle.png)" with timeout 5000ms
- verifying given screenshot expectation
- taking page screenshot
- disabled all CSS animations
- waiting for fonts to load...
- fonts loaded
- 16951 pixels (ratio 0.02 of all image pixels) are different.
- waiting 100ms before taking screenshot
- taking page screenshot
- disabled all CSS animations
- waiting for fonts to load...
- fonts loaded
- captured a stable screenshot
- 16951 pixels (ratio 0.02 of all image pixels) are different.
at /home/runner/work/web-widgets/web-widgets/packages/pluggableWidgets/datagrid-web/e2e/filtering/DataGridFilteringSingle.spec.js:19:28
|
|
Failed Test: filter rows where Reference equal to one of selected objects:
packages/pluggableWidgets/datagrid-web/e2e/filtering/DataGridFilteringMulti.spec.js#L0
filter rows where Reference equal to one of selected objects: Error: expect(locator).toHaveText(expected) failed
Locator: locator('[role="gridcell"]:nth-child(4)').first()
Expected: "W.R. Berkley Corporation"
Received: "PETsMART Inc"
Timeout: 5000ms
Call log:
- Expect "toHaveText" with timeout 5000ms
- waiting for locator('[role="gridcell"]:nth-child(4)').first()
9 × locator resolved to <div tabindex="-1" role="gridcell" data-position="3,0" class="td td-borders align-column-left">…</div>
- unexpected value "PETsMART Inc"
- Error: expect(locator).toHaveText(expected) failed
Locator: locator('[role="gridcell"]:nth-child(4)').first()
Expected: "W.R. Berkley Corporation"
Received: "PETsMART Inc"
Timeout: 5000ms
Call log:
- Expect "toHaveText" with timeout 5000ms
- waiting for locator('[role="gridcell"]:nth-child(4)').first()
9 × locator resolved to <div tabindex="-1" role="gridcell" data-position="3,0" class="td td-borders align-column-left">…</div>
- unexpected value "PETsMART Inc"
at /home/runner/work/web-widgets/web-widgets/packages/pluggableWidgets/datagrid-web/e2e/filtering/DataGridFilteringMulti.spec.js:80:47
|
|
Failed Test: filter rows where ReferenceSet contains at least one of selected objects:
packages/pluggableWidgets/datagrid-web/e2e/filtering/DataGridFilteringMulti.spec.js#L0
filter rows where ReferenceSet contains at least one of selected objects: Error: expect(locator).toHaveText(expected) failed
Locator: locator('[role="gridcell"]:nth-child(3)').first()
Expected: "EconomistArmed forces officerTraderHealth service manager"
Received: "Homeless workerHealth service managerMarket research analystNanoscientist"
Timeout: 5000ms
Call log:
- Expect "toHaveText" with timeout 5000ms
- waiting for locator('[role="gridcell"]:nth-child(3)').first()
9 × locator resolved to <div tabindex="-1" role="gridcell" data-position="2,0" class="td td-borders align-column-left">…</div>
- unexpected value "Homeless workerHealth service managerMarket research analystNanoscientist"
- Error: expect(locator).toHaveText(expected) failed
Locator: locator('[role="gridcell"]:nth-child(3)').first()
Expected: "EconomistArmed forces officerTraderHealth service manager"
Received: "Homeless workerHealth service managerMarket research analystNanoscientist"
Timeout: 5000ms
Call log:
- Expect "toHaveText" with timeout 5000ms
- waiting for locator('[role="gridcell"]:nth-child(3)').first()
9 × locator resolved to <div tabindex="-1" role="gridcell" data-position="2,0" class="td td-borders align-column-left">…</div>
- unexpected value "Homeless workerHealth service managerMarket research analystNanoscientist"
at /home/runner/work/web-widgets/web-widgets/packages/pluggableWidgets/datagrid-web/e2e/filtering/DataGridFilteringMulti.spec.js:54:47
|
|
Failed Test: filter rows where enum attribute equal to one of selected values:
packages/pluggableWidgets/datagrid-web/e2e/filtering/DataGridFilteringMulti.spec.js#L0
filter rows where enum attribute equal to one of selected values: Error: expect(locator).toHaveText(expected) failed
Locator: locator('[role="gridcell"]:nth-child(2)').first()
Expected: "Black"
Received: "Red"
Timeout: 5000ms
Call log:
- Expect "toHaveText" with timeout 5000ms
- waiting for locator('[role="gridcell"]:nth-child(2)').first()
9 × locator resolved to <div tabindex="-1" role="gridcell" data-position="1,0" class="td td-borders align-column-left">…</div>
- unexpected value "Red"
- Error: expect(locator).toHaveText(expected) failed
Locator: locator('[role="gridcell"]:nth-child(2)').first()
Expected: "Black"
Received: "Red"
Timeout: 5000ms
Call log:
- Expect "toHaveText" with timeout 5000ms
- waiting for locator('[role="gridcell"]:nth-child(2)').first()
9 × locator resolved to <div tabindex="-1" role="gridcell" data-position="1,0" class="td td-borders align-column-left">…</div>
- unexpected value "Red"
at /home/runner/work/web-widgets/web-widgets/packages/pluggableWidgets/datagrid-web/e2e/filtering/DataGridFilteringMulti.spec.js:20:47
|
|
Failed Test: datagrid-web filtering integration:
packages/pluggableWidgets/datagrid-web/e2e/filtering/DataGridFilteringIntegration.spec.js#L0
datagrid-web filtering integration: Error: expect(page).toHaveScreenshot(expected) failed
101 pixels (ratio 0.01 of all image pixels) are different.
Snapshot: datagridFilteringIntegration.png
Call log:
- Expect "toHaveScreenshot(datagridFilteringIntegration.png)" with timeout 5000ms
- verifying given screenshot expectation
- taking page screenshot
- disabled all CSS animations
- waiting for fonts to load...
- fonts loaded
- 101 pixels (ratio 0.01 of all image pixels) are different.
- waiting 100ms before taking screenshot
- taking page screenshot
- disabled all CSS animations
- waiting for fonts to load...
- fonts loaded
- captured a stable screenshot
- 101 pixels (ratio 0.01 of all image pixels) are different.
- Error: expect(page).toHaveScreenshot(expected) failed
101 pixels (ratio 0.01 of all image pixels) are different.
Snapshot: datagridFilteringIntegration.png
Call log:
- Expect "toHaveScreenshot(datagridFilteringIntegration.png)" with timeout 5000ms
- verifying given screenshot expectation
- taking page screenshot
- disabled all CSS animations
- waiting for fonts to load...
- fonts loaded
- 101 pixels (ratio 0.01 of all image pixels) are different.
- waiting 100ms before taking screenshot
- taking page screenshot
- disabled all CSS animations
- waiting for fonts to load...
- fonts loaded
- captured a stable screenshot
- 101 pixels (ratio 0.01 of all image pixels) are different.
at /home/runner/work/web-widgets/web-widgets/packages/pluggableWidgets/datagrid-web/e2e/filtering/DataGridFilteringIntegration.spec.js:55:24
|
|
Failed Test: compares with a screenshot baseline and checks datagrid using virtual scrolling are rendered as expected:
packages/pluggableWidgets/datagrid-web/e2e/DataGrid.spec.js#L0
compares with a screenshot baseline and checks datagrid using virtual scrolling are rendered as expected: Error: expect(locator).toHaveScreenshot(expected) failed
Locator: locator('.mx-page')
110 pixels (ratio 0.01 of all image pixels) are different.
Snapshot: datagrid-virtual-scrolling.png
Call log:
- Expect "toHaveScreenshot(datagrid-virtual-scrolling.png)" with timeout 5000ms
- verifying given screenshot expectation
- waiting for locator('.mx-page')
- locator resolved to <div data-focusindex="0" class="mx-page layout-atlas layout-atlas-responsive-default">…</div>
- taking element screenshot
- disabled all CSS animations
- waiting for fonts to load...
- fonts loaded
- attempting scroll into view action
- waiting for element to be stable
- 110 pixels (ratio 0.01 of all image pixels) are different.
- waiting 100ms before taking screenshot
- waiting for locator('.mx-page')
- locator resolved to <div data-focusindex="0" class="mx-page layout-atlas layout-atlas-responsive-default">…</div>
- taking element screenshot
- disabled all CSS animations
- waiting for fonts to load...
- fonts loaded
- attempting scroll into view action
- waiting for element to be stable
- captured a stable screenshot
- 110 pixels (ratio 0.01 of all image pixels) are different.
- Error: expect(locator).toHaveScreenshot(expected) failed
Locator: locator('.mx-page')
110 pixels (ratio 0.01 of all image pixels) are different.
Snapshot: datagrid-virtual-scrolling.png
Call log:
- Expect "toHaveScreenshot(datagrid-virtual-scrolling.png)" with timeout 5000ms
- verifying given screenshot expectation
- waiting for locator('.mx-page')
- locator resolved to <div data-focusindex="0" class="mx-page layout-atlas layout-atlas-responsive-default">…</div>
- taking element screenshot
- disabled all CSS animations
- waiting for fonts to load...
- fonts loaded
- attempting scroll into view action
- waiting for element to be stable
- 110 pixels (ratio 0.01 of all image pixels) are different.
- waiting 100ms before taking screenshot
- waiting for locator('.mx-page')
- locator resolved to <div data-focusindex="0" class="mx-page layout-atlas layout-atlas-responsive-default">…</div>
- taking element screenshot
- disabled all CSS animations
- waiting for fonts to load...
- fonts loaded
- attempting scroll into view action
- waiting for element to be stable
- captured a stable screenshot
- 110 pixels (ratio 0.01 of all image pixels) are different.
at /home/runner/work/web-widgets/web-widgets/packages/pluggableWidgets/datagrid-web/e2e/DataGrid.spec.js:194:48
|
|
Plan E2E matrix
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Run automated end-to-end tests (1)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Run code quality check
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Run code quality check:
packages/pluggableWidgets/datagrid-web/src/components/DataCell.tsx#L6
`../typings/CellComponent` import should occur after import of `./CellElement`
|
|
Run code quality check:
packages/pluggableWidgets/datagrid-web/src/components/DataCell.tsx#L1
`@mendix/widget-plugin-grid/keyboard-navigation/useFocusTargetProps` import should occur after import of `react`
|
|
Run code quality check:
packages/pluggableWidgets/datagrid-web/src/components/ColumnResizer.tsx#L2
`react` import should occur before import of `@mendix/widget-plugin-hooks/useEventCallback`
|
|
Run code quality check:
packages/pluggableWidgets/datagrid-web/src/components/ColumnProvider.tsx#L1
`@mendix/widget-plugin-mobx-kit/react/useConst` import should occur after import of `react`
|
|
Run code quality check:
packages/pluggableWidgets/datagrid-web/src/components/CheckboxColumnHeader.tsx#L4
`react` import should occur before import of `@mendix/widget-plugin-component-kit/If`
|
|
Run code quality check:
packages/pluggableWidgets/datagrid-web/src/components/CheckboxColumnHeader.tsx#L3
`mobx-react-lite` import should occur before import of `@mendix/widget-plugin-component-kit/If`
|
|
Run code quality check:
packages/pluggableWidgets/datagrid-web/src/components/CheckboxCell.tsx#L4
`../model/hooks/injection-hooks` import should occur after import of `./CellElement`
|
|
Run code quality check:
packages/pluggableWidgets/datagrid-web/src/components/CheckboxCell.tsx#L1
`@mendix/widget-plugin-grid/keyboard-navigation/useFocusTargetProps` import should occur after import of `react`
|
|
Run code quality check:
packages/pluggableWidgets/datagrid-web/src/Datagrid.editorPreview.tsx#L2
`@mendix/widget-plugin-grid/components/Pagination` import should occur after import of `typings/DatagridProps`
|
|
Run code quality check:
packages/pluggableWidgets/datagrid-web/src/Datagrid.editorPreview.tsx#L1
`@mendix/widget-plugin-component-kit/If` import should occur after import of `typings/DatagridProps`
|
|
Run release task on ubuntu-latest
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Run release task on windows-latest
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Run automated end-to-end tests (0)
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Publish E2E test summary
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6, pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Node.js 20 will be removed from the runner on September 16th, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
ctrf-reports-0
|
5.13 KB |
sha256:acd5c82f9bf17a7578e33076491d691b04e2d101621f2d92c7860e2815f8b978
|
|
|
test-screenshot-results-0
|
17.6 MB |
sha256:67c4aa58eeac3510dcdd5b694a9802e259aacfbbfbc99b7e52c784aa370b214e
|
|