You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.5 KiB
64 lines
1.5 KiB
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); |
|
}, |
|
});
|
|
|