Add tests for direct relationship updating
The tests check that direct updates to the relationships endpoints work.
This commit is contained in:
@ -101,6 +101,54 @@ describe("Monitor Relationships", function() {
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("add relationships via `relationships` endpoint", function() {
|
||||||
|
var old = { data: [
|
||||||
|
{ id: "server2", type: "servers" },
|
||||||
|
{ id: "server3", type: "servers" },
|
||||||
|
{ id: "server4", type: "servers" }
|
||||||
|
]}
|
||||||
|
var created = { data: [
|
||||||
|
{ id: "server1", type: "servers" }
|
||||||
|
]}
|
||||||
|
|
||||||
|
return request.patch(base_url + "/monitors/MySQL-Monitor/relationships/servers", {json: old})
|
||||||
|
.then(() => request.patch(base_url + "/monitors/" + monitor.data.id + "/relationships/servers", {json: created}))
|
||||||
|
.then(() => request.get(base_url + "/monitors/MySQL-Monitor", { json: true }))
|
||||||
|
.then((res) => {
|
||||||
|
res.data.relationships.servers.data.should.have.lengthOf(3)
|
||||||
|
})
|
||||||
|
.then(() => request.get(base_url + "/monitors/" + monitor.data.id , { json: true }))
|
||||||
|
.then((res) => {
|
||||||
|
res.data.relationships.servers.data.should.have.lengthOf(1)
|
||||||
|
.that.deep.includes({ id: "server1", type: "servers" })
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
it("bad request body with `relationships` endpoint should be rejected", function() {
|
||||||
|
return request.patch(base_url + "/monitors/" + monitor.data.id + "/relationships/servers", {json: {data: null}})
|
||||||
|
.should.be.rejected
|
||||||
|
})
|
||||||
|
|
||||||
|
it("remove relationships via `relationships` endpoint", function() {
|
||||||
|
var old = { data: [
|
||||||
|
{ id: "server1", type: "servers" },
|
||||||
|
{ id: "server2", type: "servers" },
|
||||||
|
{ id: "server3", type: "servers" },
|
||||||
|
{ id: "server4", type: "servers" }
|
||||||
|
]}
|
||||||
|
|
||||||
|
return request.patch(base_url + "/monitors/" + monitor.data.id + "/relationships/servers", {json: {data: []}})
|
||||||
|
.then(() => request.patch(base_url + "/monitors/MySQL-Monitor/relationships/servers", {json: old}))
|
||||||
|
.then(() => request.get(base_url + "/monitors/MySQL-Monitor", { json: true }))
|
||||||
|
.then((res) => {
|
||||||
|
res.data.relationships.servers.data.should.have.lengthOf(4)
|
||||||
|
})
|
||||||
|
.then(() => request.get(base_url + "/monitors/" + monitor.data.id , { json: true }))
|
||||||
|
.then((res) => {
|
||||||
|
res.data.relationships.should.not.have.keys("servers")
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
it("destroy created monitor", function() {
|
it("destroy created monitor", function() {
|
||||||
return request.delete(base_url + "/monitors/" + monitor.data.id)
|
return request.delete(base_url + "/monitors/" + monitor.data.id)
|
||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
|
@ -69,6 +69,33 @@ describe("Server Relationships", function() {
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("add relationships with `relationships` endpoint", function() {
|
||||||
|
return request.patch(base_url + "/servers/" + rel_server.data.id + "/relationships/monitors",
|
||||||
|
{ json: { data: [ { "id": "MySQL-Monitor", "type": "monitors" }]}})
|
||||||
|
.then(() => request.get(base_url + "/servers/" + rel_server.data.id, {json: true}))
|
||||||
|
.then((res) => {
|
||||||
|
res.data.relationships.monitors.data.should.have.lengthOf(1)
|
||||||
|
.that.has.deep.include({ "id": "MySQL-Monitor", "type": "monitors" })
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
it("bad request body with `relationships` endpoint should be rejected", function() {
|
||||||
|
var body = {data: null}
|
||||||
|
return request.patch(base_url + "/servers/" + rel_server.data.id + "/relationships/monitors", { json: body })
|
||||||
|
.should.be.rejected
|
||||||
|
});
|
||||||
|
|
||||||
|
it("remove relationships with `relationships` endpoint", function() {
|
||||||
|
var body = {data: []}
|
||||||
|
return request.patch(base_url + "/servers/" + rel_server.data.id + "/relationships/monitors", { json: body })
|
||||||
|
.then(() => request.get(base_url + "/servers/" + rel_server.data.id, {json: true}))
|
||||||
|
.then((res) => {
|
||||||
|
// Only monitor relationship should be undefined
|
||||||
|
res.data.relationships.should.not.have.keys("monitors")
|
||||||
|
res.data.relationships.should.have.keys("services")
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
it("remove relationships", function() {
|
it("remove relationships", function() {
|
||||||
rel_server.data.relationships["services"] = null
|
rel_server.data.relationships["services"] = null
|
||||||
rel_server.data.relationships["monitors"] = null
|
rel_server.data.relationships["monitors"] = null
|
||||||
|
@ -63,6 +63,33 @@ describe("Service", function() {
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("bad request body with `relationships` endpoint should be rejected", function() {
|
||||||
|
return request.patch(base_url + "/services/RW-Split-Router/relationships/servers", {json: {data: null}})
|
||||||
|
.should.be.rejected
|
||||||
|
})
|
||||||
|
|
||||||
|
it("remove service relationship via `relationships` endpoint", function() {
|
||||||
|
return request.patch(base_url + "/services/RW-Split-Router/relationships/servers", { json: {data: []}})
|
||||||
|
.then(() => request.get(base_url + "/services/RW-Split-Router", { json: true }))
|
||||||
|
.then((res) => {
|
||||||
|
res.data.relationships.should.not.have.keys("servers")
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
it("add service relationship via `relationships` endpoint", function() {
|
||||||
|
return request.patch(base_url + "/services/RW-Split-Router/relationships/servers",
|
||||||
|
{ json: { data: [
|
||||||
|
{id: "server1", type: "servers"},
|
||||||
|
{id: "server2", type: "servers"},
|
||||||
|
{id: "server3", type: "servers"},
|
||||||
|
{id: "server4", type: "servers"},
|
||||||
|
]}})
|
||||||
|
.then(() => request.get(base_url + "/services/RW-Split-Router", { json: true}))
|
||||||
|
.then((res) => {
|
||||||
|
res.data.relationships.servers.data.should.have.lengthOf(4)
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
const listener = {
|
const listener = {
|
||||||
"links": {
|
"links": {
|
||||||
"self": "http://localhost:8989/v1/services/RW-Split-Router/listeners"
|
"self": "http://localhost:8989/v1/services/RW-Split-Router/listeners"
|
||||||
|
Reference in New Issue
Block a user