/**
* MonthSelector组件测试
*/
import React from 'react'
import { render, screen } from '@testing-library/react'
import '@testing-library/jest-dom'
import { MonthSelector } from '@/components/MonthSelector'
describe('MonthSelector组件', () => {
const mockOnPrevious = jest.fn()
const mockOnNext = jest.fn()
beforeEach(() => {
jest.clearAllMocks()
})
test('应该渲染当前月份显示', () => {
render(
)
expect(screen.getByText('考勤记录')).toBeInTheDocument()
expect(screen.getByText('2023年11月')).toBeInTheDocument()
})
test('应该渲染左右箭头按钮', () => {
const { container } = render(
)
// 检查左右箭头图标是否存在
const leftArrow = container.querySelector('.i-heroicons-chevron-left-20-solid')
const rightArrow = container.querySelector('.i-heroicons-chevron-right-20-solid')
expect(leftArrow).toBeInTheDocument()
expect(rightArrow).toBeInTheDocument()
})
test('应该调用上个月处理函数', () => {
const { container } = render(
)
const leftArrow = container.querySelector('.i-heroicons-chevron-left-20-solid')
if (leftArrow) {
leftArrow.dispatchEvent(new MouseEvent('click', { bubbles: true }))
}
expect(mockOnPrevious).toHaveBeenCalledTimes(1)
})
test('应该调用下个月处理函数', () => {
const { container } = render(
)
const rightArrow = container.querySelector('.i-heroicons-chevron-right-20-solid')
if (rightArrow) {
rightArrow.dispatchEvent(new MouseEvent('click', { bubbles: true }))
}
expect(mockOnNext).toHaveBeenCalledTimes(1)
})
})