mirror of
https://github.com/langgenius/dify.git
synced 2026-03-23 07:17:55 +08:00
47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import { render, screen } from '@testing-library/react'
|
|
import userEvent from '@testing-library/user-event'
|
|
import * as React from 'react'
|
|
import ToggleButton from '../toggle-button'
|
|
|
|
vi.mock('@/app/components/workflow/shortcuts-name', () => ({
|
|
default: ({ keys }: { keys: string[] }) => (
|
|
<span data-testid="shortcuts">{keys.join('+')}</span>
|
|
),
|
|
}))
|
|
|
|
describe('ToggleButton', () => {
|
|
it('should render collapse arrow when expanded', () => {
|
|
render(<ToggleButton expand handleToggle={vi.fn()} />)
|
|
const button = screen.getByRole('button')
|
|
expect(button).toBeInTheDocument()
|
|
})
|
|
|
|
it('should render expand arrow when collapsed', () => {
|
|
render(<ToggleButton expand={false} handleToggle={vi.fn()} />)
|
|
const button = screen.getByRole('button')
|
|
expect(button).toBeInTheDocument()
|
|
})
|
|
|
|
it('should call handleToggle when clicked', async () => {
|
|
const user = userEvent.setup()
|
|
const handleToggle = vi.fn()
|
|
render(<ToggleButton expand handleToggle={handleToggle} />)
|
|
|
|
await user.click(screen.getByRole('button'))
|
|
|
|
expect(handleToggle).toHaveBeenCalledTimes(1)
|
|
})
|
|
|
|
it('should apply custom className', () => {
|
|
render(<ToggleButton expand handleToggle={vi.fn()} className="custom-class" />)
|
|
const button = screen.getByRole('button')
|
|
expect(button).toHaveClass('custom-class')
|
|
})
|
|
|
|
it('should have rounded-full style', () => {
|
|
render(<ToggleButton expand handleToggle={vi.fn()} />)
|
|
const button = screen.getByRole('button')
|
|
expect(button).toHaveClass('rounded-full')
|
|
})
|
|
})
|