@jest-mock/express
Version:
A lightweight Jest mock for unit testing Express
45 lines (37 loc) • 1.03 kB
text/typescript
// Types
import type { Request } from 'express'
// Tested Module
import getMockReq from '../../../request/request'
describe('request - Provided (accepts arguments and returns expected values)', () => {
test('it allows custom properties', () => {
interface User {
id: string
name: string
}
interface CustomRequest extends Request {
user: User
}
const mockUser: User = {
id: '123',
name: 'Bob',
}
const req = getMockReq<CustomRequest>({
user: mockUser,
query: {
id: '123',
limit: '10',
page: '2',
},
})
// req.user has the provided arguments
expect(req.user).toBeDefined()
expect(req.user).toBe(mockUser)
// req.query has the provided arguments
expect(req.query).toBeDefined()
expect(req.query).toBeInstanceOf(Object)
expect(Object.keys(req.query).length).toBe(3)
expect(req.query['id']).toBe('123')
expect(req.query['limit']).toBe('10')
expect(req.query['page']).toBe('2')
})
})