diff --git a/packages/pro/tree/__tests__/proTree.spec.ts b/packages/pro/tree/__tests__/proTree.spec.ts
index 1127a4d2b..e00e41c19 100644
--- a/packages/pro/tree/__tests__/proTree.spec.ts
+++ b/packages/pro/tree/__tests__/proTree.spec.ts
@@ -408,13 +408,19 @@ describe('ProTree', () => {
expect(wrapper.find('.ix-icon-uncollapse').exists()).toBe(false)
})
- test('searchValue work', async () => {
+ test('searchValue.sync work', async () => {
+ const onSearch = vi.fn()
+ const onUpdateSearch = vi.fn()
const wrapper = ProTreeMount({
props: {
searchValue: 'Node 0-0',
+ onSearch,
+ 'onUpdate:searchValue': onUpdateSearch,
},
})
+ const input = wrapper.find('.ix-pro-tree-search-wrapper .ix-input-inner')
+
const allNodes = wrapper.findAll('.ix-tree-node')
expect(allNodes[1].find('.ix-tree-node-content-label-highlight').exists()).toBe(true)
@@ -424,6 +430,11 @@ describe('ProTree', () => {
})
expect(allNodes[1].find('.ix-tree-node-content-label-highlight').exists()).toBe(false)
+
+ await input.setValue('search text')
+
+ expect(onSearch).toBeCalledWith('search text')
+ expect(onUpdateSearch).toBeCalledWith('search text')
})
test('expandAll and collapseAll work', async () => {
diff --git a/packages/pro/tree/demo/Basic.vue b/packages/pro/tree/demo/Basic.vue
index dc5b319ec..8738bbeef 100644
--- a/packages/pro/tree/demo/Basic.vue
+++ b/packages/pro/tree/demo/Basic.vue
@@ -9,6 +9,7 @@
:style="{ height: '400px' }"
:checkable="true"
:dataSource="treeData"
+ :onSearch="onSearch"
>
@@ -26,7 +27,7 @@