test: add test case (#48724)

This commit is contained in:
lijianan 2024-05-02 12:17:27 +08:00 committed by GitHub
parent 0129115efb
commit 7b30c801cf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -7,16 +7,12 @@ import { fireEvent, render } from '../../../tests/utils';
import type { QRCodeProps } from '../interface';
describe('QRCode test', () => {
mountTest(QRCode as any);
rtlTest(QRCode as any);
mountTest(() => <QRCode value="" />);
rtlTest(() => <QRCode value="" />);
it('should correct render', () => {
const { container } = render(<QRCode value="test" />);
expect(
container
?.querySelector<HTMLDivElement>('.ant-qrcode')
?.querySelector<HTMLCanvasElement>('canvas'),
).toBeTruthy();
expect(container?.querySelector<HTMLCanvasElement>('.ant-qrcode canvas')).toBeTruthy();
expect(container).toMatchSnapshot();
});
@ -31,11 +27,7 @@ describe('QRCode test', () => {
it('support custom icon', () => {
const { container } = render(<QRCode value="test" icon="test" />);
expect(
container
?.querySelector<HTMLDivElement>('.ant-qrcode')
?.querySelector<HTMLImageElement>('img'),
).toBeTruthy();
expect(container?.querySelector<HTMLImageElement>('.ant-qrcode img')).toBeTruthy();
});
it('support custom size', () => {
@ -49,9 +41,7 @@ describe('QRCode test', () => {
const refresh = jest.fn();
const { container } = render(<QRCode value="test" status="expired" onRefresh={refresh} />);
fireEvent.click(
container
?.querySelector<HTMLDivElement>('.ant-qrcode')
?.querySelector<HTMLButtonElement>('button.ant-btn-link')!,
container?.querySelector<HTMLButtonElement>('.ant-qrcode button.ant-btn-link')!,
);
expect(refresh).toHaveBeenCalled();
});
@ -90,10 +80,15 @@ describe('QRCode test', () => {
errSpy.mockRestore();
});
it('correct style order for canvas', () => {
const { container } = render(<QRCode value="test" size={80} style={{ width: '100%' }} />);
expect(container.querySelector<HTMLCanvasElement>('.ant-qrcode > canvas')).toHaveStyle(
'width: 100%',
it('correct style for wrapper & canvas', () => {
const { container } = render(
<QRCode value="test" size={60} style={{ width: '100%', height: '80%' }} />,
);
expect(container.querySelector<HTMLElement>('.ant-qrcode')).toHaveStyle(
'width: 100%; height: 80%;',
);
expect(container.querySelector<HTMLElement>('.ant-qrcode canvas')).toHaveStyle(
'width: 100%; height: 80%;',
);
});
});