初始化项目
This commit is contained in:
64
tests/setupTests.jsx
Normal file
64
tests/setupTests.jsx
Normal file
@@ -0,0 +1,64 @@
|
||||
const localStorageMock = {
|
||||
getItem: jest.fn(),
|
||||
setItem: jest.fn(),
|
||||
removeItem: jest.fn(),
|
||||
clear: jest.fn(),
|
||||
};
|
||||
|
||||
global.localStorage = localStorageMock;
|
||||
|
||||
Object.defineProperty(URL, 'createObjectURL', {
|
||||
writable: true,
|
||||
value: jest.fn(),
|
||||
});
|
||||
|
||||
class Worker {
|
||||
constructor(stringUrl) {
|
||||
this.url = stringUrl;
|
||||
this.onmessage = () => {};
|
||||
}
|
||||
|
||||
postMessage(msg) {
|
||||
this.onmessage(msg);
|
||||
}
|
||||
}
|
||||
window.Worker = Worker;
|
||||
|
||||
/* eslint-disable global-require */
|
||||
if (typeof window !== 'undefined') {
|
||||
// ref: https://github.com/ant-design/ant-design/issues/18774
|
||||
if (!window.matchMedia) {
|
||||
Object.defineProperty(global.window, 'matchMedia', {
|
||||
writable: true,
|
||||
configurable: true,
|
||||
value: jest.fn(() => ({
|
||||
matches: false,
|
||||
addListener: jest.fn(),
|
||||
removeListener: jest.fn(),
|
||||
})),
|
||||
});
|
||||
}
|
||||
if (!window.matchMedia) {
|
||||
Object.defineProperty(global.window, 'matchMedia', {
|
||||
writable: true,
|
||||
configurable: true,
|
||||
value: jest.fn((query) => ({
|
||||
matches: query.includes('max-width'),
|
||||
addListener: jest.fn(),
|
||||
removeListener: jest.fn(),
|
||||
})),
|
||||
});
|
||||
}
|
||||
}
|
||||
const errorLog = console.error;
|
||||
Object.defineProperty(global.window.console, 'error', {
|
||||
writable: true,
|
||||
configurable: true,
|
||||
value: (...rest) => {
|
||||
const logStr = rest.join('');
|
||||
if (logStr.includes('Warning: An update to %s inside a test was not wrapped in act(...)')) {
|
||||
return;
|
||||
}
|
||||
errorLog(...rest);
|
||||
},
|
||||
});
|
Reference in New Issue
Block a user