mirror of
https://github.com/langgenius/dify.git
synced 2026-04-29 20:48:01 +08:00
62 lines
2.0 KiB
TypeScript
62 lines
2.0 KiB
TypeScript
import { renderHook } from '@testing-library/react'
|
|
import { describe, expect, it, vi } from 'vitest'
|
|
|
|
import { usePipelineTemplate } from '../use-pipeline-template'
|
|
|
|
vi.mock('@/app/components/workflow/constants', () => ({
|
|
START_INITIAL_POSITION: { x: 100, y: 200 },
|
|
}))
|
|
|
|
vi.mock('@/app/components/workflow/nodes/knowledge-base/default', () => ({
|
|
default: {
|
|
metaData: { type: 'knowledge-base' },
|
|
defaultValue: { title: 'Knowledge Base' },
|
|
},
|
|
}))
|
|
|
|
vi.mock('@/app/components/workflow/utils', () => ({
|
|
generateNewNode: ({ id, data, position }: { id: string, data: Record<string, unknown>, position: { x: number, y: number } }) => ({
|
|
newNode: { id, data, position, type: 'custom' },
|
|
}),
|
|
}))
|
|
|
|
describe('usePipelineTemplate', () => {
|
|
it('should return nodes array with one knowledge base node', () => {
|
|
const { result } = renderHook(() => usePipelineTemplate())
|
|
|
|
expect(result.current.nodes).toHaveLength(1)
|
|
expect(result.current.nodes[0].id).toBe('knowledgeBase')
|
|
})
|
|
|
|
it('should return empty edges array', () => {
|
|
const { result } = renderHook(() => usePipelineTemplate())
|
|
|
|
expect(result.current.edges).toEqual([])
|
|
})
|
|
|
|
it('should set node type from knowledge-base default', () => {
|
|
const { result } = renderHook(() => usePipelineTemplate())
|
|
|
|
expect(result.current.nodes[0].data.type).toBe('knowledge-base')
|
|
})
|
|
|
|
it('should set node as selected', () => {
|
|
const { result } = renderHook(() => usePipelineTemplate())
|
|
|
|
expect(result.current.nodes[0].data.selected).toBe(true)
|
|
})
|
|
|
|
it('should position node offset from START_INITIAL_POSITION', () => {
|
|
const { result } = renderHook(() => usePipelineTemplate())
|
|
|
|
expect(result.current.nodes[0].position.x).toBe(600)
|
|
expect(result.current.nodes[0].position.y).toBe(200)
|
|
})
|
|
|
|
it('should translate node title', () => {
|
|
const { result } = renderHook(() => usePipelineTemplate())
|
|
|
|
expect(result.current.nodes[0].data.title).toBe('workflow.blocks.knowledge-base')
|
|
})
|
|
})
|