elasticsearch tests

This commit is contained in:
Martin McKeaveney 2021-03-16 11:46:13 +00:00
parent d5ae0fa2a9
commit 2150a47af4
3 changed files with 106 additions and 1 deletions

View File

@ -0,0 +1,24 @@
const elastic = {}
elastic.Client = function() {
this.index = jest.fn().mockResolvedValue({ body: [] })
this.search = jest.fn().mockResolvedValue({
body: {
hits: {
hits: [
{
_source: {
name: "test",
},
},
],
},
},
})
this.update = jest.fn().mockResolvedValue({ body: [] })
this.delete = jest.fn().mockResolvedValue({ body: [] })
this.close = jest.fn()
}
module.exports = elastic

View File

@ -0,0 +1,81 @@
const elasticsearch = require("@elastic/elasticsearch")
const ElasticSearchIntegration = require("../elasticsearch")
jest.mock("@elastic/elasticsearch")
class TestConfiguration {
constructor(config = {}) {
this.integration = new ElasticSearchIntegration.integration(config)
}
}
describe("Elasticsearch Integration", () => {
let config
let indexName = "Users"
beforeEach(() => {
config = new TestConfiguration()
})
it("calls the create method with the correct params", async () => {
const body = {
name: "Hello"
}
const response = await config.integration.create({
index: indexName,
json: body
})
expect(config.integration.client.index).toHaveBeenCalledWith({
index: indexName,
body
})
})
it("calls the read method with the correct params", async () => {
const body = {
query: {
term: {
name: "kimchy"
}
}
}
const response = await config.integration.read({
index: indexName,
json: body
})
expect(config.integration.client.search).toHaveBeenCalledWith({
index: indexName,
body
})
expect(response).toEqual(expect.any(Array))
})
it("calls the update method with the correct params", async () => {
const body = {
name: "updated"
}
const response = await config.integration.update({
id: "1234",
index: indexName,
json: body
})
expect(config.integration.client.update).toHaveBeenCalledWith({
id: "1234",
index: indexName,
body
})
expect(response).toEqual(expect.any(Array))
})
it("calls the delete method with the correct params", async () => {
const body = {
id: "1234"
}
const response = await config.integration.delete(body)
expect(config.integration.client.delete).toHaveBeenCalledWith(body)
expect(response).toEqual(expect.any(Array))
})
})

View File

@ -8,7 +8,7 @@ class TestConfiguration {
}
}
describe("MySQL Integration", () => {
xdescribe("MySQL Integration", () => {
let config
beforeEach(() => {