mirror of
https://github.com/langgenius/dify.git
synced 2026-05-06 02:18:08 +08:00
test(web): add comprehensive unit and integration tests for plugins and tools modules (#32220)
Co-authored-by: CodingOnStar <hanxujiang@dify.com>
This commit is contained in:
@ -0,0 +1,46 @@
|
||||
import { render, screen } from '@testing-library/react'
|
||||
import * as React from 'react'
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
|
||||
vi.mock('@/app/components/base/app-icon', () => ({
|
||||
default: ({ size }: { size: string }) => <div data-testid="app-icon" data-size={size} />,
|
||||
}))
|
||||
|
||||
vi.mock('@/utils/classnames', () => ({
|
||||
cn: (...args: unknown[]) => args.filter(Boolean).join(' '),
|
||||
}))
|
||||
|
||||
describe('AppTrigger', () => {
|
||||
let AppTrigger: (typeof import('../app-trigger'))['default']
|
||||
|
||||
beforeEach(async () => {
|
||||
vi.clearAllMocks()
|
||||
const mod = await import('../app-trigger')
|
||||
AppTrigger = mod.default
|
||||
})
|
||||
|
||||
it('should render placeholder when no app is selected', () => {
|
||||
render(<AppTrigger open={false} />)
|
||||
|
||||
expect(screen.queryByTestId('app-icon')).not.toBeInTheDocument()
|
||||
})
|
||||
|
||||
it('should render app details when appDetail is provided', () => {
|
||||
const appDetail = {
|
||||
name: 'My App',
|
||||
icon_type: 'emoji',
|
||||
icon: '🤖',
|
||||
icon_background: '#fff',
|
||||
}
|
||||
render(<AppTrigger open={false} appDetail={appDetail as never} />)
|
||||
|
||||
expect(screen.getByTestId('app-icon')).toBeInTheDocument()
|
||||
expect(screen.getByText('My App')).toBeInTheDocument()
|
||||
})
|
||||
|
||||
it('should render when open', () => {
|
||||
const { container } = render(<AppTrigger open={true} />)
|
||||
|
||||
expect(container.firstChild).toBeInTheDocument()
|
||||
})
|
||||
})
|
||||
@ -6,12 +6,12 @@ import * as React from 'react'
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { InputVarType } from '@/app/components/workflow/types'
|
||||
import { AppModeEnum } from '@/types/app'
|
||||
import AppInputsForm from './app-inputs-form'
|
||||
import AppInputsPanel from './app-inputs-panel'
|
||||
import AppPicker from './app-picker'
|
||||
import AppTrigger from './app-trigger'
|
||||
import AppInputsForm from '../app-inputs-form'
|
||||
import AppInputsPanel from '../app-inputs-panel'
|
||||
import AppPicker from '../app-picker'
|
||||
import AppTrigger from '../app-trigger'
|
||||
|
||||
import AppSelector from './index'
|
||||
import AppSelector from '../index'
|
||||
|
||||
// ==================== Mock Setup ====================
|
||||
|
||||
Reference in New Issue
Block a user