diff --git a/src/components/common/__tests__/TreeExplorerTreeNode.spec.ts b/src/components/common/__tests__/TreeExplorerTreeNode.spec.ts new file mode 100644 index 000000000..10ae5d574 --- /dev/null +++ b/src/components/common/__tests__/TreeExplorerTreeNode.spec.ts @@ -0,0 +1,35 @@ +import { describe, it, expect, vi } from 'vitest' +import { mount } from '@vue/test-utils' +import TreeExplorerTreeNode from '@/components/common/TreeExplorerTreeNode.vue' +import EditableText from '@/components/common/EditableText.vue' +import Badge from 'primevue/badge' +import { RenderedTreeExplorerNode } from '@/types/treeExplorerTypes' + +describe('TreeExplorerTreeNode', () => { + const mockNode = { + key: '1', + label: 'Test Node', + leaf: false, + totalLeaves: 3, + icon: 'pi pi-folder', + type: 'folder' + } as RenderedTreeExplorerNode + + it('renders correctly', () => { + const wrapper = mount(TreeExplorerTreeNode, { + props: { node: mockNode }, + global: { + components: { EditableText, Badge }, + provide: { renameEditingNode: { value: null } } + } + }) + + expect(wrapper.find('.tree-node').exists()).toBe(true) + expect(wrapper.find('.tree-folder').exists()).toBe(true) + expect(wrapper.find('.tree-leaf').exists()).toBe(false) + expect(wrapper.findComponent(EditableText).props('modelValue')).toBe( + 'Test Node' + ) + expect(wrapper.findComponent(Badge).props()['value']).toBe(3) + }) +}) diff --git a/src/types/treeExplorerTypes.ts b/src/types/treeExplorerTypes.ts index c0ad20c0e..cb6b64dd9 100644 --- a/src/types/treeExplorerTypes.ts +++ b/src/types/treeExplorerTypes.ts @@ -1,8 +1,8 @@ export interface TreeExplorerNode { key: string label: string - data: T leaf: boolean + data?: T children?: TreeExplorerNode[] icon?: string getIcon?: (node: TreeExplorerNode) => string diff --git a/vitest.config.ts b/vitest.config.ts index b7b282a9b..cfa1e18cd 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -11,5 +11,10 @@ export default defineConfig({ coverage: { reporter: ['text', 'json', 'html'] } + }, + resolve: { + alias: { + '@': '/src' + } } })