/* @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', ); });