import React from 'react';
import { mount } from 'enzyme';
import { WaterMark } from '@ant-design/pro-layout';
import { waitForComponentToPaint } from '../util';
import { act } from 'react-dom/test-utils';
describe('WaterMark', () => {
it('test image watermark', async () => {
let onloadRef: Function | undefined;
Object.defineProperty(Image.prototype, 'onload', {
get() {
// eslint-disable-next-line no-underscore-dangle
return this._onload;
},
set(onload: Function) {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onloadRef = onload;
// eslint-disable-next-line no-underscore-dangle
this._onload = onload;
},
});
const wrapper = mount(
123
,
);
await waitForComponentToPaint(wrapper, 100);
wrapper.update();
act(() => {
onloadRef?.();
});
expect(wrapper).toMatchSnapshot();
wrapper.unmount();
});
it('test text watermark', () => {
const wrapper = mount(
,
);
wrapper.update();
expect(wrapper).toMatchSnapshot();
wrapper.unmount();
});
it('test image watermark', async () => {
const spy = jest.spyOn(global.console, 'error').mockImplementation();
const createElement = document.createElement.bind(document);
// @ts-ignore
document.createElement = (tagName: string) => {
if (tagName === 'canvas') {
return {
setAttribute: () => null,
getContext: () => null,
measureText: () => ({}),
};
}
return createElement(tagName);
};
const wrapper = mount(
123
,
);
await waitForComponentToPaint(wrapper, 100);
wrapper.update();
// @ts-ignore
expect(console.error.mock.calls).toEqual([['当前环境不支持Canvas']]);
wrapper.unmount();
spy.mockRestore();
});
});