import { fireEvent, render } from '@testing-library/react' import BrandLogo from '@/components/BrandLogo' describe('BrandLogo', () => { test('远端失败只回退一次,本地也失败后显示稳定文字且不再生成图片', () => { const handleError = jest.fn() const { container } = render( , ) const remoteImage = container.querySelector('img') expect(remoteImage).toHaveAttribute('alt', '') fireEvent.error(remoteImage!) const localImage = container.querySelector('img') expect(localImage?.getAttribute('src')).toMatch(/\/brand\/header-logo\.png$/) fireEvent.error(localImage!) expect(container.querySelector('img')).not.toBeInTheDocument() expect(container.querySelector('[data-brand-logo-fallback="text"]')).toHaveTextContent('由壹点') expect(handleError).toHaveBeenCalledTimes(2) }) test('传入地址变化后会重新尝试新地址', () => { const { container, rerender } = render( , ) fireEvent.error(container.querySelector('img')!) expect(container.querySelector('[data-brand-logo-fallback="text"]')).toBeInTheDocument() rerender( , ) expect(container.querySelector('img')?.getAttribute('src')).toMatch(/\/brand\/login-logo\.png$/) }) })