Browse Source

elasticsearch tests

pull/4023/head
Martin McKeaveney 5 years ago
parent
commit
2150a47af4
  1. 24
      packages/server/__mocks__/@elastic/elasticsearch.js
  2. 81
      packages/server/src/integrations/tests/elasticsearch.spec.js
  3. 2
      packages/server/src/integrations/tests/mysql.spec.js

24
packages/server/__mocks__/@elastic/elasticsearch.js

@ -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

81
packages/server/src/integrations/tests/elasticsearch.spec.js

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

2
packages/server/src/integrations/tests/mysql.spec.js

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

Loading…
Cancel
Save