-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjestSetup.js
67 lines (52 loc) · 1.49 KB
/
jestSetup.js
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
61
62
63
64
65
66
67
import { loadEnvConfig } from '@next/env'
import { setGlobalConfig } from '@storybook/testing-react'
import * as globalStorybookConfig from './.storybook/preview'
import '@testing-library/jest-dom'
import { server } from './__mocks__/msw/server'
const projectDir = process.cwd()
loadEnvConfig(projectDir)
setGlobalConfig(globalStorybookConfig)
jest.mock('next-i18next', () => ({
useTranslation: () => {
return {
t: (str) => str,
i18n: {
changeLanguage: () => new Promise(() => {}),
},
}
},
}))
jest.mock('next/router', () => require('next-router-mock'))
jest.mock('next/dist/client/router', () => require('next-router-mock'))
const originalWarn = console.warn
const originalLog = console.log
// Mock the server
beforeAll(() => {
server.listen()
console.warn = jest.fn((message) => {
if (message.includes('i18next::backendConnector: No backend was added via i18next.use')) {
return
}
originalWarn(message)
})
console.log = jest.fn((...args) => {
const logMessage = args.join(' ')
// Specify the log message(s) you want to suppress
const suppressedLogs = ['i18next: languageChanged', 'i18next: initialized']
if (suppressedLogs.some((log) => logMessage.includes(log))) {
return
}
originalLog(...args)
})
})
afterEach(() => {
jest.clearAllMocks()
jest.resetModules()
server.resetHandlers()
})
afterAll(() => {
server.close()
console.warn = originalWarn
console.log = originalLog
})
jest.setTimeout(80000)