Skip to content

DataGrid - AI Assistant: request lifecycle e2e tests#33806

Open
Alyar666 wants to merge 2 commits into
DevExpress:26_1from
Alyar666:ai_assistant_e2e_request_lifecycle_26_1
Open

DataGrid - AI Assistant: request lifecycle e2e tests#33806
Alyar666 wants to merge 2 commits into
DevExpress:26_1from
Alyar666:ai_assistant_e2e_request_lifecycle_26_1

Conversation

@Alyar666
Copy link
Copy Markdown
Contributor

@Alyar666 Alyar666 commented Jun 2, 2026

What does the PR change?

Adds e2e TestCafe tests for the DataGrid AI Assistant — the in-flight lock — input, clear-chat and suggestions disabled while an LLM request or command runs, re-enabled afterwards, plus rapid sequential prompts (plan §3.8–§3.11).

Part of splitting the AI Assistant e2e suite into per-area pull requests.

Copilot AI review requested due to automatic review settings June 2, 2026 22:30
@Alyar666 Alyar666 requested a review from a team as a code owner June 2, 2026 22:30
@Alyar666 Alyar666 self-assigned this Jun 2, 2026
Copy link
Copy Markdown
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

Adds new end-to-end (TestCafe) coverage for the DataGrid AI Assistant “request in-flight” lifecycle, verifying that user interactions (input, clear-chat, suggestions) are disabled while an LLM request/command is running and restored afterward, including rapid sequential prompts.

Changes:

  • Added a new DataGrid AI Assistant request lifecycle functional test suite (sequential prompts + in-flight disabled state checks).
  • Extended devextreme-testcafe-models POMs for DataGrid AI Assistant chat and base Chat widget to support new assertions.
  • Introduced shared AI Assistant test helpers for the suite.

Reviewed changes

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

Show a summary per file
File Description
packages/testcafe-models/dataGrid/index.ts Adds DataGrid POM helpers used by AI Assistant-related tests (data source sort access + focusing the AI Assistant button).
packages/testcafe-models/dataGrid/aiAssistantChat.ts Extends the AI Assistant chat POM with input/messages/suggestions helpers and in-flight disabled-state checks.
packages/testcafe-models/chat.ts Adds a reusable accessor for chat message bubbles and reuses it in getMessage.
e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/testHelpers.ts Adds common constants and client-side helpers for AI Assistant DataGrid e2e tests.
e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/requestLifecycle.functional.ts New functional e2e tests validating AI Assistant request lifecycle UI locking/unlocking behavior.

Comment on lines +141 to +145
isClearChatDisabled(): Promise<boolean> {
return this.getClearChatButton()
.parent('.dx-button')
.hasClass('dx-state-disabled');
}
Copilot AI review requested due to automatic review settings June 4, 2026 21:48
@Alyar666 Alyar666 force-pushed the ai_assistant_e2e_request_lifecycle_26_1 branch from 32f0b88 to 738c67f Compare June 4, 2026 21:48
the in-flight lock — input, clear-chat and suggestions disabled while an LLM request or command runs, re-enabled afterwards, plus rapid sequential prompts (plan §3.8–§3.11)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Alyar666 Alyar666 force-pushed the ai_assistant_e2e_request_lifecycle_26_1 branch from 738c67f to 6959ed4 Compare June 4, 2026 21:49
Copy link
Copy Markdown
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 5 out of 5 changed files in this pull request and generated 3 comments.

Comment on lines +56 to +59
// eslint-disable-next-line class-methods-use-this
getAbortConfirmYesButton(): Selector {
return Selector(`.${CLASS.abortConfirmDialog} .dx-button`).withExactText('Yes');
}
Comment on lines 61 to 63
getClearChatButton(): Selector {
return this.element.find(`.${CLASS.clearChatButton}`);
}
Comment on lines +141 to +145
isClearChatDisabled(): Promise<boolean> {
return this.getClearChatButton()
.parent('.dx-button')
.hasClass('dx-state-disabled');
}
- Add shared mocked sendRequest queue with unexpected-call guard
- Verify commands apply to grid state and no second request leaks
- Split 3.10.3 into fulfillment/failure/abort re-enable cases
- Check grid state unchanged after clear-chat (3.10.4)
- Remove unused POM methods and test helpers

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.

2 participants