92 lines
2.5 KiB
JavaScript
92 lines
2.5 KiB
JavaScript
import { ref } from 'vue';
|
|
import { mount } from '@vue/test-utils';
|
|
import QRCode from '..';
|
|
|
|
describe('QRCode test', () => {
|
|
it('should correct render', () => {
|
|
const wrapper = mount({
|
|
render() {
|
|
return <QRCode value="test" />;
|
|
},
|
|
});
|
|
expect(wrapper.find('.ant-qrcode')).toBeTruthy();
|
|
expect(wrapper.find('canvas')).toBeTruthy();
|
|
expect(wrapper).toMatchSnapshot();
|
|
});
|
|
|
|
it('support custom icon', () => {
|
|
const wrapper = mount({
|
|
render() {
|
|
return <QRCode value="test" icon="test" />;
|
|
},
|
|
});
|
|
expect(wrapper.find('.ant-qrcode')).toBeTruthy();
|
|
expect(wrapper.find('image')).toBeTruthy();
|
|
});
|
|
|
|
it('support custom size', () => {
|
|
const wrapper = mount({
|
|
render() {
|
|
return <QRCode value="test" size={100} />;
|
|
},
|
|
});
|
|
expect(wrapper.vm.$el.style.width).toBe('100px');
|
|
expect(wrapper.vm.$el.style.height).toBe('100px');
|
|
});
|
|
|
|
it('support refresh', async () => {
|
|
const refresh = jest.fn();
|
|
const wrapper = mount({
|
|
render() {
|
|
return <QRCode value="test" status="expired" onRefresh={refresh} />;
|
|
},
|
|
});
|
|
await wrapper.find('.ant-btn-link').trigger('click');
|
|
expect(refresh).toHaveBeenCalled();
|
|
});
|
|
|
|
it('support loading', async () => {
|
|
const Demo = () => {
|
|
const status = ref('active');
|
|
const setStatus = val => (status.value = val);
|
|
return (
|
|
<>
|
|
<QRCode value="test" status={status.value} />
|
|
<button type="button" onClick={() => setStatus('loading')}>
|
|
set loading
|
|
</button>
|
|
</>
|
|
);
|
|
};
|
|
const wrapper = mount({
|
|
render() {
|
|
return <Demo />;
|
|
},
|
|
});
|
|
await wrapper.find('button').trigger('click');
|
|
expect(wrapper.find('.ant-spin-spinning')).toBeTruthy();
|
|
});
|
|
|
|
it('support bordered', () => {
|
|
const wrapper = mount({
|
|
render() {
|
|
return <QRCode value="test" bordered={false} />;
|
|
},
|
|
});
|
|
expect(wrapper.vm.$el.__vnode.el.className).toContain('-borderless');
|
|
});
|
|
|
|
it('should console Error when icon exist && errorLevel is `L`', () => {
|
|
const errSpy = jest.spyOn(console, 'error').mockImplementation(() => {});
|
|
mount({
|
|
render() {
|
|
return <QRCode value="test" icon="test" errorLevel="L" />;
|
|
},
|
|
});
|
|
expect(errSpy).toHaveBeenCalledWith(
|
|
'Warning: [ant-design-vue: QRCode] ErrorLevel `L` is not recommended to be used with `icon`, for scanning result would be affected by low level.',
|
|
);
|
|
errSpy.mockRestore();
|
|
});
|
|
});
|