60 lines
1.3 KiB
TypeScript
60 lines
1.3 KiB
TypeScript
import { adjust, Request, RequestType } from '../src'
|
|
|
|
// dumb object to test purity
|
|
const dumb: Request = {
|
|
type: RequestType.Undefined,
|
|
url: 'test',
|
|
fields: {
|
|
scale: 1,
|
|
landscape: true,
|
|
pageRanges: '1-2',
|
|
},
|
|
client: {
|
|
post: () => {
|
|
throw new Error('not implemented')
|
|
},
|
|
},
|
|
}
|
|
|
|
test('Should adjust flat fields', () => {
|
|
expect(adjust({})(dumb)).toEqual({ ...dumb })
|
|
expect(adjust({ url: 'changed' })(dumb)).toEqual({ ...dumb, url: 'changed' })
|
|
})
|
|
|
|
test('Should adjust deep fields', () => {
|
|
expect(adjust({ fields: { landscape: false } })(dumb)).toEqual({
|
|
...dumb,
|
|
fields: {
|
|
...dumb.fields,
|
|
landscape: false,
|
|
},
|
|
})
|
|
expect(adjust({ headers: { Authorization: 'Bearer token' } })(dumb)).toEqual({
|
|
...dumb,
|
|
headers: {
|
|
Authorization: 'Bearer token',
|
|
},
|
|
})
|
|
expect(
|
|
adjust({ headers: { Authorization: 'Bearer token' } })({
|
|
...dumb,
|
|
headers: { 'X-Header': 'test' },
|
|
})
|
|
).toEqual({
|
|
...dumb,
|
|
headers: {
|
|
Authorization: 'Bearer token',
|
|
'X-Header': 'test',
|
|
},
|
|
})
|
|
})
|
|
|
|
test('Should replace deep fields', () => {
|
|
expect(
|
|
adjust({ headers: { Authorization: 'Bearer token' } })({
|
|
...dumb,
|
|
headers: { Authorization: 'Basic dXNlcjpwYXNzd29yZA==' },
|
|
})
|
|
).toEqual({ ...dumb, headers: { Authorization: 'Bearer token' } })
|
|
})
|