dify/web/app/components/rag-pipeline/hooks/__tests__/use-pipeline-template.spec.ts
Stephen Zhou a84c2d36a3
style: format with vp fmt (#38803)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-07-12 15:57:46 +00:00

69 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')
})
})