@jest-mock/express
Version:
A lightweight Jest mock for unit testing Express
57 lines (47 loc) • 1.47 kB
text/typescript
// Types
import type { Request } from 'express'
// Tested Module
import getMockReq from '../../request/request'
describe('request - GitHub Issues', () => {
test('issue #6', () => {
enum AppOS {
Android = '1',
}
const req = getMockReq({
query: {
os: AppOS.Android,
sellerId: '12345',
},
headers: {
Authorization: 'valid-token',
},
})
// req.query has the provided arguments
expect(req.query).toBeDefined()
expect(req.query).toBeInstanceOf(Object)
expect(Object.keys(req.query).length).toBe(2)
expect(req.query['os']).toBe(AppOS.Android)
expect(req.query['sellerId']).toBe('12345')
// req.headers has the provided arguments
expect(req.headers).toBeDefined()
expect(req.headers).toBeInstanceOf(Object)
expect(Object.keys(req.headers).length).toBe(1)
expect(req.headers['Authorization']).toBe('valid-token')
})
test('issue #27', () => {
interface CustomRequest extends Request {
locals: unknown
customProperty: string
}
const req = getMockReq<CustomRequest>({
locals: { var: 'hi there' },
customProperty: 'value',
})
// req.locals has the provided arguments
expect(req.locals).toBeDefined()
expect(req.locals).toEqual({ var: 'hi there' })
// req.customProperty has the provided arguments
expect(req.customProperty).toBeDefined()
expect(req.customProperty).toEqual('value')
})
})