Files
gotenberg-js-client/test/adjust.spec.ts
T
2021-02-07 20:38:49 +03:00

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' } })
})