Support for Elasticsearch 7.7 (#1192)
This commit is contained in:
committed by
GitHub
parent
be6257380e
commit
51169d5efa
@ -4,8 +4,13 @@
|
||||
|
||||
'use strict'
|
||||
|
||||
const assert = require('assert')
|
||||
const { Connection } = require('../../index')
|
||||
const { TimeoutError } = require('../../lib/errors')
|
||||
const {
|
||||
ConnectionError,
|
||||
RequestAbortedError,
|
||||
TimeoutError
|
||||
} = require('../../lib/errors')
|
||||
const intoStream = require('into-stream')
|
||||
|
||||
class MockConnection extends Connection {
|
||||
@ -22,6 +27,8 @@ class MockConnection extends Connection {
|
||||
process.nextTick(() => {
|
||||
if (!aborted) {
|
||||
callback(null, stream)
|
||||
} else {
|
||||
callback(new RequestAbortedError(), null)
|
||||
}
|
||||
})
|
||||
return {
|
||||
@ -36,6 +43,8 @@ class MockConnectionTimeout extends Connection {
|
||||
process.nextTick(() => {
|
||||
if (!aborted) {
|
||||
callback(new TimeoutError('Request timed out', params), null)
|
||||
} else {
|
||||
callback(new RequestAbortedError(), null)
|
||||
}
|
||||
})
|
||||
return {
|
||||
@ -49,7 +58,9 @@ class MockConnectionError extends Connection {
|
||||
var aborted = false
|
||||
process.nextTick(() => {
|
||||
if (!aborted) {
|
||||
callback(new Error('Kaboom'), null)
|
||||
callback(new ConnectionError('Kaboom'), null)
|
||||
} else {
|
||||
callback(new RequestAbortedError(), null)
|
||||
}
|
||||
})
|
||||
return {
|
||||
@ -92,6 +103,8 @@ class MockConnectionSniff extends Connection {
|
||||
} else {
|
||||
callback(null, stream)
|
||||
}
|
||||
} else {
|
||||
callback(new RequestAbortedError(), null)
|
||||
}
|
||||
})
|
||||
return {
|
||||
@ -99,6 +112,41 @@ class MockConnectionSniff extends Connection {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function buildMockConnection (opts) {
|
||||
assert(opts.onRequest, 'Missing required onRequest option')
|
||||
|
||||
class MockConnection extends Connection {
|
||||
request (params, callback) {
|
||||
var { body, statusCode } = opts.onRequest(params)
|
||||
if (typeof body !== 'string') {
|
||||
body = JSON.stringify(body)
|
||||
}
|
||||
var aborted = false
|
||||
const stream = intoStream(body)
|
||||
stream.statusCode = statusCode || 200
|
||||
stream.headers = {
|
||||
'content-type': 'application/json;utf=8',
|
||||
date: new Date().toISOString(),
|
||||
connection: 'keep-alive',
|
||||
'content-length': Buffer.byteLength(body)
|
||||
}
|
||||
process.nextTick(() => {
|
||||
if (!aborted) {
|
||||
callback(null, stream)
|
||||
} else {
|
||||
callback(new RequestAbortedError(), null)
|
||||
}
|
||||
})
|
||||
return {
|
||||
abort: () => { aborted = true }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return MockConnection
|
||||
}
|
||||
|
||||
function setStatusCode (path) {
|
||||
const statusCode = Number(path.slice(1))
|
||||
if (Number.isInteger(statusCode)) {
|
||||
@ -111,5 +159,6 @@ module.exports = {
|
||||
MockConnection,
|
||||
MockConnectionTimeout,
|
||||
MockConnectionError,
|
||||
MockConnectionSniff
|
||||
MockConnectionSniff,
|
||||
buildMockConnection
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user