31 lines
930 B
TypeScript
31 lines
930 B
TypeScript
import { render, screen } from '@testing-library/react';
|
|
import { describe, expect, it } from 'vitest';
|
|
import { ProjectImage } from '@/pages/Learning/ProjectImage';
|
|
|
|
describe('Learning ProjectImage', () => {
|
|
it('renders a credential-free HTTPS image only when direct loading is allowed', () => {
|
|
const { rerender } = render(
|
|
<ProjectImage
|
|
src="https://images.example.com/diagram.svg"
|
|
alt="项目结构图"
|
|
allowHttps
|
|
/>,
|
|
);
|
|
|
|
expect(screen.getByAltText('项目结构图')).toHaveAttribute(
|
|
'src',
|
|
'https://images.example.com/diagram.svg',
|
|
);
|
|
|
|
rerender(
|
|
<ProjectImage
|
|
src="https://images.example.com/diagram.svg"
|
|
alt="项目结构图"
|
|
/>,
|
|
);
|
|
|
|
expect(screen.queryByAltText('项目结构图')).not.toBeInTheDocument();
|
|
expect(screen.getByRole('img', { name: '项目结构图加载失败' })).toBeInTheDocument();
|
|
});
|
|
});
|