REST integration tests
This commit is contained in:
parent
a16c05ecb0
commit
d2699a2755
|
@ -1,6 +1,6 @@
|
|||
const fetch = jest.requireActual("node-fetch")
|
||||
|
||||
module.exports = async (url, opts) => {
|
||||
module.exports = async url , opts=> {
|
||||
// mocked data based on url
|
||||
if (url.includes("api/apps")) {
|
||||
return {
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
const fetch = require("node-fetch")
|
||||
const RestIntegration = require("../rest")
|
||||
jest.mock("node-fetch", () => jest.fn(() => ({ json: jest.fn() })))
|
||||
|
||||
class TestConfiguration {
|
||||
constructor(config = {}) {
|
||||
this.integration = new RestIntegration.integration(config)
|
||||
}
|
||||
}
|
||||
|
||||
describe("REST Integration", () => {
|
||||
const BASE_URL = "https://myapi.com"
|
||||
let config
|
||||
|
||||
beforeEach(() => {
|
||||
config = new TestConfiguration({
|
||||
url: BASE_URL
|
||||
})
|
||||
})
|
||||
|
||||
it("calls the create method with the correct params", async () => {
|
||||
const query = {
|
||||
path: "/api",
|
||||
queryString: "?test=1",
|
||||
headers: {
|
||||
Accept: "application/json"
|
||||
},
|
||||
json: {
|
||||
name: "test"
|
||||
}
|
||||
}
|
||||
const response = await config.integration.create(query)
|
||||
expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api?test=1`, {
|
||||
method: "POST",
|
||||
body: "{\"name\":\"test\"}",
|
||||
headers: {
|
||||
Accept: "application/json"
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
it("calls the read method with the correct params", async () => {
|
||||
const query = {
|
||||
path: "/api",
|
||||
queryString: "?test=1",
|
||||
headers: {
|
||||
Accept: "application/json"
|
||||
}
|
||||
}
|
||||
const response = await config.integration.read(query)
|
||||
expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api?test=1`, {
|
||||
headers: {
|
||||
Accept: "application/json"
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
it("calls the update method with the correct params", async () => {
|
||||
const query = {
|
||||
path: "/api",
|
||||
queryString: "?test=1",
|
||||
headers: {
|
||||
Accept: "application/json"
|
||||
},
|
||||
json: {
|
||||
name: "test"
|
||||
}
|
||||
}
|
||||
const response = await config.integration.update(query)
|
||||
expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api?test=1`, {
|
||||
method: "POST",
|
||||
body: "{\"name\":\"test\"}",
|
||||
headers: {
|
||||
Accept: "application/json"
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
it("calls the delete method with the correct params", async () => {
|
||||
const query = {
|
||||
path: "/api",
|
||||
queryString: "?test=1",
|
||||
headers: {
|
||||
Accept: "application/json"
|
||||
},
|
||||
json: {
|
||||
name: "test"
|
||||
}
|
||||
}
|
||||
const response = await config.integration.delete(query)
|
||||
expect(fetch).toHaveBeenCalledWith(`${BASE_URL}/api?test=1`, {
|
||||
method: "DELETE",
|
||||
headers: {
|
||||
Accept: "application/json"
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
Loading…
Reference in New Issue