The agent function should take the Connection contructor options as argument (#1332)

This commit is contained in:
Tomas Della Vedova
2020-10-12 10:47:10 +02:00
committed by GitHub
parent ea009da3b6
commit 8ec40547fb
5 changed files with 43 additions and 23 deletions

View File

@ -20,22 +20,35 @@
import { expectType } from 'tsd'
import { URL } from 'url'
import { Connection } from '../../'
import { ConnectionOptions } from '../../lib/Connection'
const conn = new Connection({
url: new URL('http://localhost:9200'),
ssl: { ca: 'string' },
id: 'id',
headers: {},
agent: { keepAlive: false },
status: 'alive',
roles: { master: true },
auth: { username: 'username', password: 'password' }
})
{
const conn = new Connection({
url: new URL('http://localhost:9200'),
ssl: { ca: 'string' },
id: 'id',
headers: {},
agent: { keepAlive: false },
status: 'alive',
roles: { master: true },
auth: { username: 'username', password: 'password' }
})
expectType<Connection>(conn)
expectType<URL>(conn.url)
expectType<string>(conn.id)
expectType<Record<string, any>>(conn.headers)
expectType<number>(conn.deadCount)
expectType<number>(conn.resurrectTimeout)
expectType<string>(conn.status)
expectType<Connection>(conn)
expectType<URL>(conn.url)
expectType<string>(conn.id)
expectType<Record<string, any>>(conn.headers)
expectType<number>(conn.deadCount)
expectType<number>(conn.resurrectTimeout)
expectType<string>(conn.status)
}
{
const conn = new Connection({
url: new URL('http://localhost:9200'),
agent (opts) {
expectType<ConnectionOptions>(opts)
return 'the agent'
}
})
}

View File

@ -152,7 +152,7 @@ test('Basic (https with ssl agent)', t => {
})
test('Custom http agent', t => {
t.plan(5)
t.plan(6)
function handler (req, res) {
t.match(req.headers, {
@ -172,7 +172,12 @@ test('Custom http agent', t => {
agent.custom = true
const connection = new Connection({
url: new URL(`http://localhost:${port}`),
agent: () => agent
agent: opts => {
t.match(opts, {
url: new URL(`http://localhost:${port}`)
})
return agent
}
})
t.true(connection.agent.custom)
connection.request({