Files
gotenberg-js-client/test/gotenberg.spec.ts
T
2020-04-01 17:50:10 +03:00

75 lines
2.1 KiB
TypeScript

import { RequestType } from '../src'
import { gotenberg } from '../src/gotenberg'
test('Test `gotenberg` function without client', () => {
const fn = gotenberg('http://120.0.0.1:3000')
expect(typeof fn).toBe('function')
expect(fn('test')).toMatchObject({
type: RequestType.Undefined,
url: 'http://120.0.0.1:3000',
source: 'test',
fields: {},
})
})
test('Test `gotenberg` function with custom client', () => {
const client = {
get() {}, // tslint:disable-line: no-empty
post() {}, // tslint:disable-line: no-empty
}
const fn = gotenberg('http://120.0.0.1:3000', client)
expect(typeof fn).toBe('function')
expect(fn('test')).toEqual({
type: RequestType.Undefined,
client,
url: 'http://120.0.0.1:3000',
source: 'test',
fields: {},
})
})
test('Test `gotenberg` function with custom functional client', () => {
const mock = jest.fn()
const clientImpl = {
get() {}, // tslint:disable-line: no-empty
post() {}, // tslint:disable-line: no-empty
}
const client = function(arg: any) {
mock(arg)
return clientImpl
}
const fn = gotenberg('http://120.0.0.1:3000', client, { base: 'test' })
expect(typeof fn).toBe('function')
expect(fn('test')).toEqual({
type: RequestType.Undefined,
client: clientImpl,
url: 'http://120.0.0.1:3000',
source: 'test',
fields: {},
})
expect(mock.mock.calls.length).toBe(1)
expect(mock.mock.calls[0][0]).toEqual({ base: 'test' })
})
test('Test `gotenberg` function with custom class client', () => {
const mock = jest.fn()
class Client {
constructor(arg: any) {
mock(arg)
}
get() {} // tslint:disable-line: no-empty
post() {} // tslint:disable-line: no-empty
}
const fn = gotenberg('http://120.0.0.1:3000', Client, { base: 'test' })
expect(typeof fn).toBe('function')
expect(fn('test')).toEqual({
type: RequestType.Undefined,
client: expect.any(Client),
url: 'http://120.0.0.1:3000',
source: 'test',
fields: {},
})
expect(mock.mock.calls.length).toBe(1)
expect(mock.mock.calls[0][0]).toEqual({ base: 'test' })
})