-
Notifications
You must be signed in to change notification settings - Fork 65
/
Copy pathmock-server.ts
44 lines (35 loc) · 1.28 KB
/
mock-server.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
import { rest } from 'msw'
import { setupServer } from 'msw/node'
const devChallengeApiUrl = process.env.NEXT_PUBLIC_DEV_CHALLENGE_API_URL
import challengesMocked from './fixtures/challenges.json'
import challengeMocked from './fixtures/challenge.json'
import contributorsMocked from './fixtures/contributors.json'
const server = setupServer(
// challenges
rest.get(`${devChallengeApiUrl}/challenges`, (_req, res, ctx) => {
return res(ctx.status(200), ctx.json(challengesMocked))
}),
rest.get(`${devChallengeApiUrl}/challenges/:id`, (_req, res, ctx) => {
return res(ctx.status(200), ctx.json(challengeMocked))
}),
// contributors
rest.get(`${devChallengeApiUrl}/devs`, (_req, res, ctx) => {
return res(ctx.status(200), ctx.json(contributorsMocked))
}),
// newsletter
rest.post(`${devChallengeApiUrl}/newsletter`, (_req, res, ctx) => {
return res(ctx.status(200))
}),
rest.get('*', (req, res, ctx) => {
console.error(`Please add request handler for ${req.url.toString()}`)
return res(
ctx.status(500),
ctx.json({ error: 'You must add request handler.' })
)
})
)
beforeAll(() => server.listen())
afterAll(() => server.close())
afterEach(() => server.resetHandlers())
const urls = { devChallengeApiUrl }
export { server, rest, urls }