/** * CurrentEmploymentStatus组件测试 */ import React from 'react' import { render, screen } from '@testing-library/react' import '@testing-library/jest-dom' import Taro from '@tarojs/taro' import { CurrentEmploymentStatus } from '@/components/CurrentEmploymentStatus' import { WorkStatus } from '@/types/employment' describe('CurrentEmploymentStatus组件', () => { const mockStatus = { companyName: '测试科技有限公司', orderId: 1, orderName: '数据标注员', positionName: '数据标注员', joinDate: '2023-08-15', workStatus: WorkStatus.WORKING, salaryLevel: 4800, actualStartDate: '2023-08-15' } beforeEach(() => { // 清理 Taro API mock ;(Taro.showToast as jest.Mock).mockClear() }) it('应该渲染当前就业状态', () => { render() expect(screen.getByText('当前就业状态')).toBeInTheDocument() expect(screen.getByText('测试科技有限公司')).toBeInTheDocument() expect(screen.getByText('数据标注员')).toBeInTheDocument() }) it('应该显示在职状态为绿色标签', () => { const { container } = render( ) const statusElements = container.querySelectorAll('.bg-green-100') expect(statusElements.length).toBeGreaterThan(0) }) it('应该显示离职状态为灰色标签', () => { const resignedStatus = { ...mockStatus, workStatus: WorkStatus.RESIGNED } const { container } = render( ) const statusElements = container.querySelectorAll('.bg-gray-100') expect(statusElements.length).toBeGreaterThan(0) }) it('应该显示加载状态', () => { render() expect(screen.getByText('加载中...')).toBeInTheDocument() }) it('应该显示无数据状态', () => { render() expect(screen.getByText('暂无就业记录')).toBeInTheDocument() }) it('应该显示订单编号和薪资水平', () => { render() expect(screen.getByText('#1')).toBeInTheDocument() expect(screen.getByText('¥4,800/月')).toBeInTheDocument() }) it('应该显示入职日期', () => { render() expect(screen.getByText('2023-08-15')).toBeInTheDocument() }) })