/**
* StatusBar 组件测试
* 测试覆盖: 时间显示、状态图标、自定义样式
*/
import { render, screen } from '@testing-library/react';
import { describe, it, expect } from 'vitest';
import { StatusBar } from './StatusBar';
describe('StatusBar', () => {
// ==================== 基础渲染测试 ====================
describe('基础渲染', () => {
it('渲染状态栏', () => {
const { container } = render();
expect(container.firstChild).toBeInTheDocument();
});
it('默认显示时间 9:41', () => {
render();
expect(screen.getByText('9:41')).toBeInTheDocument();
});
it('渲染状态图标(信号、WiFi、电池)', () => {
const { container } = render();
const icons = container.querySelectorAll('svg');
expect(icons).toHaveLength(3);
});
});
// ==================== Time 属性测试 ====================
describe('Time 属性', () => {
it('支持自定义时间', () => {
render();
expect(screen.getByText('10:30')).toBeInTheDocument();
});
it('时间使用正确样式', () => {
render();
const timeElement = screen.getByText('12:00');
expect(timeElement).toHaveClass('text-text-primary', 'font-semibold', 'text-[17px]');
});
});
// ==================== 样式测试 ====================
describe('样式', () => {
it('应用固定高度', () => {
const { container } = render();
expect(container.firstChild).toHaveClass('h-[44px]');
});
it('支持自定义 className', () => {
const { container } = render();
expect(container.firstChild).toHaveClass('custom-status');
});
});
});