From e62552d4820390996ef174a1b5632b551b249985 Mon Sep 17 00:00:00 2001 From: Idriss Sbaaoui <112825897+6ba3i@users.noreply.github.com> Date: Sat, 28 Feb 2026 15:13:47 +0800 Subject: [PATCH] Added some React IDs for playwright e2e tests (#13265) ### What problem does this PR solve? Necessary ids for implementing the new testing suite with playwright for UI ### Type of change - [x] Other (please describe): Testing IDs Co-authored-by: Liu An --- web/src/components/empty/empty.tsx | 5 +- .../components/file-upload-dialog/index.tsx | 4 +- web/src/components/home-card.tsx | 6 +- web/src/components/knowledge-base-item.tsx | 3 + web/src/components/message-input/next.tsx | 3 +- .../originui/select-with-search.tsx | 5 + web/src/components/rename-dialog/index.tsx | 4 +- .../components/rename-dialog/rename-form.tsx | 1 + web/src/components/ui/modal/modal.tsx | 7 + web/src/components/ui/multi-select.tsx | 14 +- web/src/layouts/next-header.tsx | 20 +- web/src/pages/agent/chat/box.tsx | 1 + web/src/pages/agent/chat/chat-sheet.tsx | 1 + web/src/pages/agent/index.tsx | 4 +- web/src/pages/agents/agent-card.tsx | 1 + web/src/pages/agents/create-agent-dialog.tsx | 4 +- web/src/pages/agents/index.tsx | 8 +- web/src/pages/agents/name-form-field.tsx | 2 +- .../agents/upload-agent-dialog/index.tsx | 4 +- .../upload-agent-dialog/upload-agent-form.tsx | 1 + .../dataset/dataset/dataset-action-cell.tsx | 1 + .../pages/dataset/dataset/dataset-table.tsx | 2 + .../dataset/dataset/parsing-status-cell.tsx | 15 +- web/src/pages/login-next/card.tsx | 30 +- web/src/pages/login-next/index.tsx | 397 ++++++++++-------- .../chat/app-settings/saving-button.tsx | 2 +- web/src/pages/next-chats/chat/index.tsx | 2 +- web/src/pages/next-chats/index.tsx | 6 +- web/src/pages/next-search/index.tsx | 2 +- web/src/pages/next-search/search-setting.tsx | 5 +- web/src/pages/next-searches/index.tsx | 5 +- .../setting-model/components/modal-card.tsx | 2 +- .../components/system-setting.tsx | 5 + .../setting-model/components/un-add-model.tsx | 5 +- .../setting-model/components/used-model.tsx | 2 +- .../modal/api-key-modal/index.tsx | 3 + web/src/pages/user-setting/sidebar/index.tsx | 1 + 37 files changed, 365 insertions(+), 218 deletions(-) diff --git a/web/src/components/empty/empty.tsx b/web/src/components/empty/empty.tsx index 44f46e0dd0..c6f6f1f6c9 100644 --- a/web/src/components/empty/empty.tsx +++ b/web/src/components/empty/empty.tsx @@ -79,8 +79,9 @@ export const EmptyAppCard = (props: { isSearch?: boolean; size?: 'small' | 'large'; children?: React.ReactNode; + testId?: string; }) => { - const { type, showIcon, className, isSearch, children } = props; + const { type, showIcon, className, isSearch, children, testId } = props; let defaultClass = ''; let style = {}; switch (props.size) { @@ -97,7 +98,7 @@ export const EmptyAppCard = (props: { break; } return ( -
+
{(field) => ( @@ -77,6 +78,7 @@ function UploadForm({ submit, showParseOnCreation }: UploadFormProps) { value={field.value} onValueChange={field.onChange} accept={{ '*': [] }} + data-testid="dataset-upload-dropzone" /> )} @@ -97,7 +99,7 @@ export function FileUploadDialog({ return ( - + {t('fileManager.uploadFile')} diff --git a/web/src/components/home-card.tsx b/web/src/components/home-card.tsx index d5099756ce..06edff0454 100644 --- a/web/src/components/home-card.tsx +++ b/web/src/components/home-card.tsx @@ -14,6 +14,7 @@ interface IProps { moreDropdown: React.ReactNode; sharedBadge?: ReactNode; icon?: React.ReactNode; + testId?: string; } export function HomeCard({ data, @@ -21,9 +22,12 @@ export function HomeCard({ moreDropdown, sharedBadge, icon, + testId, }: IProps) { return ( { // navigateToSearch(data?.id); onClick?.(); @@ -40,7 +44,7 @@ export function HomeCard({
-
+
{data.name}
{icon} diff --git a/web/src/components/knowledge-base-item.tsx b/web/src/components/knowledge-base-item.tsx index e3958853a1..35df932f6b 100644 --- a/web/src/components/knowledge-base-item.tsx +++ b/web/src/components/knowledge-base-item.tsx @@ -122,6 +122,7 @@ export function KnowledgeBaseFormField({ { handleDatasetSelectChange(value, field.onChange); @@ -131,6 +132,8 @@ export function KnowledgeBaseFormField({ maxCount={100} defaultValue={field.value} showSelectAll={false} + popoverTestId="datasets-options" + optionTestIdPrefix="datasets" {...field} /> diff --git a/web/src/components/message-input/next.tsx b/web/src/components/message-input/next.tsx index 7dafe52c1d..186bf34bab 100644 --- a/web/src/components/message-input/next.tsx +++ b/web/src/components/message-input/next.tsx @@ -211,6 +211,7 @@ export function NextMessageInput({