/* @vitest-environment jsdom */
import { render, screen } from '@testing-library/react';
import { expect, test } from 'vitest';
import { PlatformStatusMessage } from './PlatformStatusMessage';
test('renders platform error status with shared tone classes', () => {
render(
保存失败
,
);
const message = screen.getByText('保存失败');
expect(message.className).toContain('platform-status-message');
expect(message.className).toContain('border-rose-200');
expect(message.className).toContain('bg-rose-50');
expect(message.className).toContain('mt-4');
});
test('renders success, info, warning, and neutral status tones', () => {
const { rerender } = render(
已保存,
);
expect(screen.getByText('已保存').className).toContain('border-emerald-200');
rerender(处理中);
expect(screen.getByText('处理中').className).toContain(
'border-[var(--platform-cool-border)]',
);
rerender(
请确认,
);
expect(screen.getByText('请确认').className).toContain('border-amber-200');
rerender(
暂无内容,
);
expect(screen.getByText('暂无内容').className).toContain(
'border-[var(--platform-subpanel-border)]',
);
});
test('supports tinted surface and medium spacing for dark platform areas', () => {
render(
暗色区域错误
,
);
const message = screen.getByText('暗色区域错误');
expect(message.className).toContain('border-rose-400/20');
expect(message.className).toContain('bg-rose-500/10');
expect(message.className).toContain('px-4');
expect(message.className).toContain('leading-6');
});
test('supports platform surface tokens for result pages', () => {
const { rerender } = render(
发布阻断
,
);
expect(screen.getByText('发布阻断').className).toContain(
'border-[var(--platform-warm-border)]',
);
expect(screen.getByText('发布阻断').className).toContain(
'bg-[var(--platform-warm-bg)]',
);
rerender(
已满足发布条件
,
);
expect(screen.getByText('已满足发布条件').className).toContain(
'border-[var(--platform-success-border)]',
);
});
test('supports profile surface tokens for account modals', () => {
const { rerender } = render(
充值失败
,
);
expect(screen.getByText('充值失败').className).toContain(
'border-[var(--platform-button-danger-border)]',
);
expect(screen.getByText('充值失败').className).toContain(
'bg-[var(--platform-button-danger-fill)]',
);
expect(screen.getByText('充值失败').className).toContain('text-xs');
rerender(
已到账
,
);
expect(screen.getByText('已到账').className).toContain(
'border-[var(--platform-success-border)]',
);
expect(screen.getByText('已到账').className).toContain(
'text-[var(--platform-success-text)]',
);
});
test('supports editor dark surface for RPG panels', () => {
const { rerender } = render(
QA 提示
,
);
expect(screen.getByText('QA 提示').className).toContain(
'border-amber-300/15',
);
expect(screen.getByText('QA 提示').className).toContain('bg-amber-500/10');
expect(screen.getByText('QA 提示').className).toContain('text-amber-50/90');
rerender(
暗色中性
,
);
expect(screen.getByText('暗色中性').className).toContain('border-white/10');
expect(screen.getByText('暗色中性').className).toContain('bg-black/20');
});
test('supports platform remap surface wrapper class', () => {
render(
正在处理
,
);
expect(screen.getByText('正在处理').className).toContain(
'platform-remap-surface',
);
});