import { render, screen, waitFor } from '@testing-library/react'; import { CloudWechatQr } from '@/pages/CloudAgents/CloudWechatQr'; describe('CloudWechatQr', () => { it('generates an SVG QR locally from the provider login URL', async () => { render(); const qr = await screen.findByAltText('个人微信登录二维码'); expect(qr.tagName).toBe('IMG'); expect(qr.getAttribute('src')).toMatch(/^data:image\/svg\+xml;charset=utf-8,/); expect(qr.getAttribute('width')).toBe('192'); expect(qr.getAttribute('height')).toBe('192'); }); it('does not show the previous QR while the value changes', async () => { const view = render(); await screen.findByAltText('个人微信登录二维码'); view.rerender(); expect(screen.queryByAltText('个人微信登录二维码')).toBeNull(); expect(screen.getByRole('status')).toHaveTextContent('正在生成二维码'); await waitFor(() => expect(screen.getByAltText('个人微信登录二维码')).toBeInTheDocument()); }); it('shows a Chinese error when QR generation fails', async () => { render(); expect(await screen.findByRole('alert')).toHaveTextContent('二维码生成失败,请重试'); }); });