import React from 'react';
import { Modal } from 'antd';
import Image from '..';
import mountTest from '../../../tests/shared/mountTest';
import rtlTest from '../../../tests/shared/rtlTest';
import { fireEvent, render } from '../../../tests/utils';
import ConfigProvider from '../../config-provider';
const src = 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png';
describe('Image', () => {
mountTest(Image);
rtlTest(Image);
it('Image preview props set false', () => {
const { container } = render();
fireEvent.click(container.querySelector('.ant-image')!);
expect(container.querySelector('.ant-image-preview-root')).toBe(null);
});
it('Group preview props set false', () => {
const { container } = render(
,
);
fireEvent.click(container.querySelector('.ant-image')!);
expect(container.querySelector('.ant-image-preview-root')).toBe(null);
});
it('Default preview props', () => {
const { container, baseElement } = render();
fireEvent.click(container.querySelector('.ant-image')!);
expect(baseElement.querySelector('.ant-image-preview-mask')).toHaveClass('ant-fade');
expect(baseElement.querySelector('.ant-image-preview')).toHaveClass('ant-zoom');
});
it('Default Group preview props', () => {
const { container, baseElement } = render(
,
);
fireEvent.click(container.querySelector('.ant-image')!);
expect(baseElement.querySelector('.ant-image-preview-mask')).toHaveClass('ant-fade');
expect(baseElement.querySelector('.ant-image-preview')).toHaveClass('ant-zoom');
expect(baseElement).toMatchSnapshot();
});
it('Customize preview props', () => {
const { container, baseElement } = render(
,
);
fireEvent.click(container.querySelector('.ant-image')!);
expect(baseElement.querySelector('.ant-image-preview')).toHaveClass('abc');
expect(baseElement.querySelector('.ant-image-preview-mask')).toHaveClass('def');
});
it('Customize Group preview props', () => {
const { container, baseElement } = render(
,
);
fireEvent.click(container.querySelector('.ant-image')!);
expect(baseElement.querySelector('.ant-image-preview')).toHaveClass('abc');
expect(baseElement.querySelector('.ant-image-preview-mask')).toHaveClass('def');
});
it('ConfigProvider getPopupContainer', () => {
const { container, baseElement } = render(
<>
document.querySelector('.container')!}>
>,
);
fireEvent.click(container.querySelector('.ant-image')!);
expect(baseElement.querySelector('.container')?.children.length).not.toBe(0);
});
it('Preview forceRender props', async () => {
const onLoadCb = jest.fn();
const PreviewImage: React.FC = () => (
);
const { baseElement } = render();
expect(baseElement.querySelector('.ant-image-preview-root')).not.toBe(null);
baseElement.querySelector('.ant-image-preview-img')?.addEventListener('load', onLoadCb);
fireEvent.load(baseElement.querySelector('.ant-image-preview-img')!);
expect(onLoadCb).toHaveBeenCalled();
});
it('Preview should support rootClassName', () => {
const { container, baseElement } = render(
,
);
fireEvent.click(container.querySelector('.ant-image')!);
expect(baseElement.querySelector('.test-root-class')).toBeTruthy();
});
it('Image.PreviewGroup preview in a nested modal where z-index Settings should be correct', () => {
const App = () => (
);
const { baseElement } = render();
fireEvent.click(baseElement.querySelector('.ant-image')!);
expect(
(
baseElement.querySelector(
'.test-image-preview-class .ant-image-preview-wrap',
) as HTMLElement
).style.zIndex,
).toBe('1301');
expect(
(
baseElement.querySelector(
'.test-image-preview-class.ant-image-preview-operations-wrapper',
) as HTMLElement
).style.zIndex,
).toBe('1302');
fireEvent.click(baseElement.querySelectorAll('.ant-image')[1]!);
expect(
(
baseElement.querySelector(
'.test-image-preview-group-class .ant-image-preview-wrap',
) as HTMLElement
).style.zIndex,
).toBe('1301');
expect(
(
baseElement.querySelector(
'.test-image-preview-group-class.ant-image-preview-operations-wrapper',
) as HTMLElement
).style.zIndex,
).toBe('1302');
});
});