-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathjest-setup.ts
60 lines (57 loc) · 1.48 KB
/
jest-setup.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import '@testing-library/jest-dom'
import 'jest-canvas-mock';
import { act, render } from '@testing-library/react'
const localStorageMock = (function () {
let store = {}
return {
getItem: (key) => {
return store[key]
},
setItem: (key, value) => {
store[key] = value
},
clear: () => {
store = {}
},
removeItem: (key) => {
delete store[key]
},
}
})()
Object.defineProperty(window, 'localStorage', { value: localStorageMock })
Object.defineProperty(window, 'fetch', { value: jest.fn((val) => {
return Promise.resolve({
json: () => Promise.resolve({ streams: [{ codec_name: val.includes('loBiqE22EgMhslC_ugn3UfalWZLw') ?'hevc':'h264' }]}),
})
}
)})
Object.defineProperty(window, 'matchMedia', {
writable: true,
value: jest.fn().mockImplementation(query => ({
matches: false,
media: query,
onchange: null,
addListener: jest.fn(), // Deprecated
removeListener: jest.fn(), // Deprecated
addEventListener: jest.fn(),
removeEventListener: jest.fn(),
dispatchEvent: jest.fn(),
})),
})
window.URL.createObjectURL = jest.fn(() => 'details');
export const mountTest = (component) => {
return it('should render mount correctly', function() {
const err = console.error; // 避免异常测试报错
console.error = jest.fn();
let msg = null
try {
act(() => {
render(component)
})
}catch (e) {
msg = e.message
}
expect(msg).toBeNull()
console.error = err
})
}