TreeList - AI Assistant: parity e2e tests#33811
Open
Alyar666 wants to merge 2 commits into
Open
Conversation
Adds e2e TestCafe tests verifying the AI Assistant behaves identically on TreeList (it reuses grid_core): toolbar/popup/chat, sorting, searching, paging, column visibility, selection, row focusing, error paths and the in-flight lock; plus the TreeList-only schema differences (grouping/summary commands absent) and hierarchical-data cases (plan §6). Includes the AI Assistant testcafe-models POM accessors the tests depend on. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds TreeList-focused e2e parity coverage for the Grid AI Assistant (TreeList reuses grid_core) and extends the TestCafe Page Object Models to support the new scenarios (chat accessors, suggestions, schema checks, focus helpers).
Changes:
- Added a new TestCafe suite that verifies AI Assistant parity on TreeList (toolbar/popup/chat, sorting/searching/paging/visibility/selection/focus, error and in-flight lock behavior, plus TreeList-specific schema exclusions and hierarchy cases).
- Extended
devextreme-testcafe-modelsAI Assistant chat POM with additional accessors (input, suggestions, confirm dialog hooks, message bubble helpers, disabled-state checks). - Added DataGrid POM helpers to query current DataSource sort params and programmatically focus the AI Assistant toolbar button.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| packages/testcafe-models/dataGrid/index.ts | Adds DataGrid POM helpers for DataSource sort params and focusing the AI Assistant button. |
| packages/testcafe-models/dataGrid/aiAssistantChat.ts | Expands AI Assistant chat POM to support new e2e assertions (input, suggestions, confirm dialog, message accessors, disabled states). |
| packages/testcafe-models/chat.ts | Introduces a reusable getMessageBubbles() accessor and refactors getMessage() to use it. |
| e2e/testcafe-devextreme/tests/common/treeList/aiAssistant/functional.ts | New TreeList AI Assistant parity/schema/hierarchy functional e2e coverage with mocked AIIntegration responses. |
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
+141
to
+145
| isClearChatDisabled(): Promise<boolean> { | ||
| return this.getClearChatButton() | ||
| .parent('.dx-button') | ||
| .hasClass('dx-state-disabled'); | ||
| } |
…tests Wait for the AI integration global before creating the widget (fixes the CI page-load race) via a local createWidgetWithAIIntegration helper. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does the PR change?
Adds e2e TestCafe tests verifying the AI Assistant on TreeList behaves identically to DataGrid (TreeList reuses
grid_core): toolbar/popup/chat, sorting, searching, paging, column visibility, selection, row focusing, error paths and the in-flight lock — plus the TreeList-only differences (thegrouping/summarycommands are absent from the response schema) and hierarchical-data cases (test plan §6).Part of splitting the AI Assistant e2e suite into per-area pull requests.
How did you achieve this?
aiAssistant.aiIntegration.sendRequestis mocked to return deterministic responses; theTreeListPOM inherits the AI Assistant accessors fromDataGrid. The PR includes the AI Assistanttestcafe-modelsPOM accessors the tests depend on.columnsReorder(issue 4294) andsummary(unsupported on TreeList) are documented as not exercised.How can we verify these changes?