diff --git a/web/app/components/datasets/create-from-pipeline/list/template-card/actions.tsx b/web/app/components/datasets/create-from-pipeline/list/template-card/actions.tsx
index 34b0673c59..b6e3fc63a4 100644
--- a/web/app/components/datasets/create-from-pipeline/list/template-card/actions.tsx
+++ b/web/app/components/datasets/create-from-pipeline/list/template-card/actions.tsx
@@ -59,7 +59,7 @@ const Actions = ({
aria-label={t('operation.more', { ns: 'common' })}
className={cn(
'flex size-8 cursor-pointer items-center justify-center rounded-lg p-0 shadow-xs shadow-shadow-shadow-3',
- isMoreOperationsOpen && 'bg-state-base-hover',
+ 'data-popup-open:bg-state-base-hover',
)}
onClick={e => e.stopPropagation()}
>
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/index.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/index.spec.tsx
index d57e8340e9..d93de876e7 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/index.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/index.spec.tsx
@@ -368,9 +368,9 @@ describe('Dropdown', () => {
// Act - Open dropdown
fireEvent.click(button)
- // Assert - Open state: should have bg-state-base-hover
+ // Assert - Open state is exposed declaratively via data-popup-open
await waitFor(() => {
- expect(button)!.toHaveClass('bg-state-base-hover')
+ expect(button).toHaveAttribute('data-popup-open')
})
})
})
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/item.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/item.spec.tsx
index 4437305ad4..fd582a3bae 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/item.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/item.spec.tsx
@@ -1,7 +1,19 @@
+import type { ReactElement } from 'react'
+import { DropdownMenu, DropdownMenuContent } from '@langgenius/dify-ui/dropdown-menu'
import { fireEvent, render, screen } from '@testing-library/react'
import { beforeEach, describe, expect, it, vi } from 'vitest'
import Item from '../item'
+const renderItem = (ui: ReactElement) => {
+ return render(
+
+
+ {ui}
+
+ ,
+ )
+}
+
describe('Item', () => {
const defaultProps = {
name: 'Documents',
@@ -16,7 +28,7 @@ describe('Item', () => {
// Rendering: verify the breadcrumb name is displayed
describe('Rendering', () => {
it('should render breadcrumb name', () => {
- render(
)
+ renderItem(
)
expect(screen.getByText('Documents')).toBeInTheDocument()
})
@@ -25,7 +37,7 @@ describe('Item', () => {
// User interactions: clicking triggers callback with correct index
describe('User Interactions', () => {
it('should call onBreadcrumbClick with correct index on click', () => {
- render(
)
+ renderItem(
)
fireEvent.click(screen.getByText('Documents'))
@@ -34,7 +46,7 @@ describe('Item', () => {
})
it('should pass different index values correctly', () => {
- render(
)
+ renderItem(
)
fireEvent.click(screen.getByText('Documents'))
diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/menu.spec.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/menu.spec.tsx
index c8c6b8fec3..80c6f7bfb0 100644
--- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/menu.spec.tsx
+++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/header/breadcrumbs/dropdown/__tests__/menu.spec.tsx
@@ -1,7 +1,19 @@
+import type { ReactElement } from 'react'
+import { DropdownMenu, DropdownMenuContent } from '@langgenius/dify-ui/dropdown-menu'
import { fireEvent, render, screen } from '@testing-library/react'
import { beforeEach, describe, expect, it, vi } from 'vitest'
import Menu from '../menu'
+const renderMenu = (ui: ReactElement) => {
+ return render(
+
+
+ {ui}
+
+ ,
+ )
+}
+
describe('Menu', () => {
const defaultProps = {
breadcrumbs: ['Folder A', 'Folder B', 'Folder C'],
@@ -16,7 +28,7 @@ describe('Menu', () => {
// Rendering: verify all breadcrumb items are displayed
describe('Rendering', () => {
it('should render all breadcrumb items', () => {
- render(
)
+ renderMenu(
)
expect(screen.getByText('Folder A')).toBeInTheDocument()
expect(screen.getByText('Folder B')).toBeInTheDocument()
@@ -36,7 +48,7 @@ describe('Menu', () => {
// Index mapping: startIndex offsets are applied correctly
describe('Index Mapping', () => {
it('should pass correct index (startIndex + offset) to each item', () => {
- render(
)
+ renderMenu(
)
fireEvent.click(screen.getByText('Folder A'))
expect(defaultProps.onBreadcrumbClick).toHaveBeenCalledWith(1)
@@ -49,7 +61,7 @@ describe('Menu', () => {
})
it('should offset from startIndex of zero', () => {
- render(
+ renderMenu(