Skip to content

Comments

DataGrid - Keyboard navigation - e2e tests: Fix unstable tests. And remove CardView.filterSync tests#32679

Open
Alyar666 wants to merge 2 commits intoDevExpress:26_1from
Alyar666:datagrid_fix_blinking_test_26_1
Open

DataGrid - Keyboard navigation - e2e tests: Fix unstable tests. And remove CardView.filterSync tests#32679
Alyar666 wants to merge 2 commits intoDevExpress:26_1from
Alyar666:datagrid_fix_blinking_test_26_1

Conversation

@Alyar666
Copy link
Contributor

No description provided.

@Alyar666 Alyar666 self-assigned this Feb 24, 2026
@Alyar666 Alyar666 requested a review from a team as a code owner February 24, 2026 09:39
Copilot AI review requested due to automatic review settings February 24, 2026 09:39
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates DevExtreme e2e coverage to reduce DataGrid keyboard-navigation test instability and removes obsolete CardView FilterSync API tests (feature disabled).

Changes:

  • Reworks DataGrid keyboard navigation e2e scenarios (adds new focus/navigation regressions and restructures quick-navigation tests to run for both scrolling.useNative modes).
  • Adds dedicated e2e coverage for Tab / Shift+Tab behavior through interactive elements inside editCellTemplate in row/batch edit modes (T1299278).
  • Removes the skipped CardView FilterSync API test suite.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/keyboardNavigation.functional.ts Adds/adjusts keyboard navigation cases and parameterizes End/Ctrl+End focus-event scenarios for useNative true/false to reduce flakiness.
e2e/testcafe-devextreme/tests/cardView/filterSync/api.functional.ts Removes the (previously skipped) FilterSync API tests for CardView since the feature is disabled.
Comments suppressed due to low confidence (2)

e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/keyboardNavigation.functional.ts:6228

  • The 1000ms hard wait after Ctrl+End adds noticeable runtime (and this block runs twice for useNative=true/false) and may still be insufficient under load. Consider replacing it with a condition-based wait (e.g., wait until the expected cell becomes focused) so the test is both faster and more stable.
    // act
    await t.pressKey('ctrl+end');
    await t.wait(1000);

e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/keyboardNavigation.functional.ts:5392

  • The fixed delay used to “wait for the focus to be set” can still be timing-sensitive across environments and adds unnecessary runtime. Prefer waiting on an observable condition (e.g., expect the clicked cell to become focused with a timeout) instead of t.wait(100).
    // act
    await t.click(dataGrid.getDataCell(0, 0).element);
    await t.wait(100); // wait for the focus to be set in the grid

@Alyar666 Alyar666 force-pushed the datagrid_fix_blinking_test_26_1 branch from 752d059 to 7a001a2 Compare February 24, 2026 10:04
@Alyar666 Alyar666 force-pushed the datagrid_fix_blinking_test_26_1 branch from 7a001a2 to af91898 Compare February 25, 2026 08:57
Copilot AI review requested due to automatic review settings February 25, 2026 08:57
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/keyboardNavigation.functional.ts:5386

  • Inside the [true, false].forEach((useNativeScrolling) => { ... }) block, the section header comments and the test(...) calls are indented differently than other statements in the same block (e.g., the // # Quick navigation... lines are not indented at all). Please align indentation for the block so nested statements/comments are consistently indented, to avoid style/lint issues and keep the test section readable.
[true, false].forEach((useNativeScrolling) => {
// # Quick navigation through grid cells
// ## End key
  test(`Focus events should be called when pressing the End key (scrolling.useNative = ${useNativeScrolling})`, async (t) => {

Comment on lines +6227 to +6232
await t.wait(1000);

// assert
await t
.expect(dataGrid.getDataCell(199, 34).element.focused)
.ok()
Copy link

Copilot AI Feb 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test relies on a fixed t.wait(1000) after sending ctrl+end. Fixed sleeps are a common source of e2e flakiness (too short on slow CI) and add unnecessary runtime (too long on fast runs). Prefer waiting on an explicit condition with a timeout (e.g., focused cell/row or expected event call order) instead of a hard-coded delay.

Suggested change
await t.wait(1000);
// assert
await t
.expect(dataGrid.getDataCell(199, 34).element.focused)
.ok()
// assert
await t
.expect(dataGrid.getDataCell(199, 34).element.focused)
.ok({ timeout: 5000 })

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant