/* @vitest-environment jsdom */
import { render, screen } from '@testing-library/react';
import { expect, test } from 'vitest';
import { PlatformStatGrid } from './PlatformStatGrid';
test('renders platform stat cards with value-first layout', () => {
render(
,
);
const value = screen.getByText('35');
const label = screen.getByText('图案组');
const grid = value.closest('div')?.parentElement?.parentElement;
const card = value.parentElement;
expect(grid?.className).toContain('grid-cols-3');
expect(grid?.className).toContain('text-center');
expect(card?.className).toContain('bg-white/76');
expect(value.className).toContain('text-lg');
expect(label.className).toContain('tracking-[0.14em]');
});
test('supports label-first plain cards and responsive four-column grid', () => {
render(
item.label === '总物品数' ? 'total-item-card' : null
}
/>,
);
const label = screen.getByText('需要消除');
const value = screen.getByText('12 次');
const grid = label.closest('div')?.parentElement?.parentElement;
const totalCard = screen.getByText('总物品数').parentElement;
expect(grid?.className).toContain('grid-cols-2');
expect(grid?.className).toContain('sm:grid-cols-4');
expect(label.nextElementSibling).toBe(value);
expect(totalCard?.className).toContain('border');
expect(totalCard?.className).toContain('total-item-card');
});
test('supports compact stat chips without labels', () => {
render(
,
);
const chip = screen.getByText('6 个');
const card = chip.parentElement;
expect(card?.className).toContain('py-2');
expect(chip.className).toContain('text-sm');
expect(screen.queryByText('状态')).toBeNull();
});