dify/web/app/components/datasets/documents/detail/completed/common/dot.spec.tsx
Coding On Star c8abe1c306
test: add tests for dataset document detail (#31274)
Co-authored-by: CodingOnStar <hanxujiang@dify.ai>
Co-authored-by: CodingOnStar <hanxujiang@dify.com>
2026-01-27 15:43:27 +08:00

61 lines
1.6 KiB
TypeScript

import { render, screen } from '@testing-library/react'
import { describe, expect, it } from 'vitest'
import Dot from './dot'
describe('Dot', () => {
// Rendering tests
describe('Rendering', () => {
it('should render without crashing', () => {
// Arrange & Act
const { container } = render(<Dot />)
// Assert
expect(container.firstChild).toBeInTheDocument()
})
it('should render the dot character', () => {
// Arrange & Act
render(<Dot />)
// Assert
expect(screen.getByText('·')).toBeInTheDocument()
})
it('should render with correct styling classes', () => {
// Arrange & Act
const { container } = render(<Dot />)
// Assert
const dotElement = container.firstChild as HTMLElement
expect(dotElement).toHaveClass('system-xs-medium')
expect(dotElement).toHaveClass('text-text-quaternary')
})
})
// Memoization tests
describe('Memoization', () => {
it('should render consistently across multiple renders', () => {
// Arrange & Act
const { container: container1 } = render(<Dot />)
const { container: container2 } = render(<Dot />)
// Assert
expect(container1.firstChild?.textContent).toBe(container2.firstChild?.textContent)
})
})
// Edge cases
describe('Edge Cases', () => {
it('should maintain structure when rerendered', () => {
// Arrange
const { rerender } = render(<Dot />)
// Act
rerender(<Dot />)
// Assert
expect(screen.getByText('·')).toBeInTheDocument()
})
})
})