Repository URL to install this package:
|
Version:
0.0.6 ▾
|
import { fromArrayToCookieString } from './cookieHelpers'
import { config } from './config'
import { toMockLogger } from './loggerMock'
const DEFAULT_EXPRESS_INTERNALS = {
headers: new Headers(),
logger: toMockLogger(),
}
const DEFAULT_EXPRESS_RESPONSE_INTERNALS = {
headers: new Headers(),
// logger: toMockLogger(),
}
// @todo need to pass in the infos
const toMockExpressRequest = (
mockRequestInternals = DEFAULT_EXPRESS_INTERNALS
) => {
const get = (key: string) => {
// console.info('[expressMock] getting from headers: ' + key)
if (mockRequestInternals.headers.has(key)) {
const value = mockRequestInternals.headers.get(key)
// console.debug(`[expressMock] internals has: ${key}=${value}`)
return value
} else if (key === 'Cookie') {
return undefined
return fromArrayToCookieString(config.get('cookies'))
} else {
return undefined
const got = config
.get('cookies')
.find(x => x.includes('x-sk-session-id='))
// console.log('[request] get got: ', got)
return got
}
}
// @fixme may need circular .httpRequest || .req
const mockExpressRequest = {
mockRequestInternals,
// circular
req: undefined,
log: mockRequestInternals.logger || toMockLogger(),
get,
headers: {
get Cookie() {
return fromArrayToCookieString(config.get('cookies'))
// return config.get('cookie')
},
get,
has: (key: string) => !!get(key),
},
get cookies() {
return config.get('cookies')
},
}
mockExpressRequest.req = mockExpressRequest
return mockExpressRequest
}
const toMockExpressResponse = (
internals = DEFAULT_EXPRESS_RESPONSE_INTERNALS
) => {
const mockResponse = {
headers: new Headers(),
header: (key, value) => {
console.debug('[response] header called')
// console.log({ [key]: value })
mockResponse.headers.set(key, value)
return mockResponse
},
cookie(key: string, fixedValue: any, attributes: { [key: string]: any }) {
console.debug('[response] cookies called')
return mockResponse
},
}
return mockResponse
}
const toMockContext = () => {
const mockExpressRequest = toMockExpressRequest()
const mockExpressResponse = toMockExpressResponse()
const context = {
req: mockExpressRequest,
res: mockExpressResponse,
log: toMockLogger(),
// needed?
// correlationId: toCorrelationId(mockExpressRequest)
}
return context
}
export {
toMockExpressRequest,
toMockExpressResponse,
toMockContext,
toMockLogger,
}