import React from 'react';
import Steps from '..';
import mountTest from '../../../tests/shared/mountTest';
import rtlTest from '../../../tests/shared/rtlTest';
import { fireEvent, render, screen } from '../../../tests/utils';
import { resetWarned } from '../../_util/warning';
import ConfigProvider from '../../config-provider';
describe('Steps', () => {
mountTest(Steps);
rtlTest(Steps);
const description = 'This is a description.';
it('should render correct', () => {
const { container } = render(
,
);
expect(container.firstChild).toMatchSnapshot();
});
it('items out of render function', () => {
const items = [
{
title: '已完成',
},
{
title: '进行中',
},
{
title: '待运行',
description: 'Hello World!',
},
{
title: '待运行',
},
];
const ControlSteps = () => {
const [current, setCurrent] = React.useState(0);
return (
{
// eslint-disable-next-line no-console
console.log('Change:', val);
setCurrent(val);
}}
items={items}
/>
);
};
const { container } = render();
expect(
container.querySelectorAll('.ant-steps-item')[1].classList.contains('ant-steps-item-process'),
).toBe(false);
fireEvent.click(screen.getByText(/进行中/i));
expect(
container.querySelectorAll('.ant-steps-item')[1].classList.contains('ant-steps-item-process'),
).toBe(true);
});
it('should render correct when use Step', () => {
const { container } = render(
,
);
expect(container.firstChild).toMatchSnapshot();
});
it('should render correct when use null', () => {
const { container } = render(null);
expect(container.firstChild).toMatchSnapshot();
});
it('deprecated warning', () => {
resetWarned();
const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
const { container } = render(
,
);
expect(container.querySelectorAll('.ant-steps-item')).toHaveLength(1);
expect(errorSpy).toHaveBeenCalledWith(
'Warning: [antd: Steps] Step is deprecated. Please use `items` directly.',
);
errorSpy.mockRestore();
});
it('Steps should inherit the size from ConfigProvider if the componentSize is set ', () => {
const { container } = render(
,
);
expect(container.querySelectorAll('.ant-steps-small')).toHaveLength(1);
});
});