MXS-1220: Extend and fix REST API tests
Fixed a few broken tests and extended the monitor tests.
This commit is contained in:
@ -9,7 +9,7 @@ test -z "$MAXSCALE_DIR" && exit 1
|
|||||||
|
|
||||||
maxscaledir=$MAXSCALE_DIR
|
maxscaledir=$MAXSCALE_DIR
|
||||||
|
|
||||||
for ((i=0;i<60;i++))
|
for ((i=0;i<10;i++))
|
||||||
do
|
do
|
||||||
pkill maxscale || break
|
pkill maxscale || break
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
"repository": "https://github.com/mariadb-corporation/MaxScale",
|
"repository": "https://github.com/mariadb-corporation/MaxScale",
|
||||||
"description": "MaxScale REST API tests",
|
"description": "MaxScale REST API tests",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "mocha --timeout 60000 --slow 10000"
|
"test": "mocha --timeout 30000 --slow 10000"
|
||||||
},
|
},
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "SEE LICENSE IN ../../../../LICENSE.txt",
|
"license": "SEE LICENSE IN ../../../../LICENSE.txt",
|
||||||
|
@ -10,7 +10,7 @@ var monitor = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
describe("Creating a Monitor", function() {
|
describe("Monitor", function() {
|
||||||
before(startMaxScale)
|
before(startMaxScale)
|
||||||
|
|
||||||
it("create new monitor", function() {
|
it("create new monitor", function() {
|
||||||
@ -24,7 +24,9 @@ describe("Creating a Monitor", function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("alter monitor", function() {
|
it("alter monitor", function() {
|
||||||
monitor.data.attributes.parameters.monitor_interval = 1000
|
monitor.data.attributes.parameters = {
|
||||||
|
monitor_interval: 1000
|
||||||
|
}
|
||||||
return request.put(base_url + "/monitors/" + monitor.data.id, {json:monitor})
|
return request.put(base_url + "/monitors/" + monitor.data.id, {json:monitor})
|
||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
});
|
});
|
||||||
@ -35,9 +37,9 @@ describe("Creating a Monitor", function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
after(stopMaxScale)
|
after(stopMaxScale)
|
||||||
}
|
})
|
||||||
|
|
||||||
describe("Modifying Existing Monitor", function() {
|
describe("Monitor Relationships", function() {
|
||||||
before(startMaxScale)
|
before(startMaxScale)
|
||||||
|
|
||||||
it("create new monitor", function() {
|
it("create new monitor", function() {
|
||||||
@ -50,7 +52,7 @@ describe("Modifying Existing Monitor", function() {
|
|||||||
return request.get(base_url + "/monitors/MySQL-Monitor")
|
return request.get(base_url + "/monitors/MySQL-Monitor")
|
||||||
.then(function(resp) {
|
.then(function(resp) {
|
||||||
var mon = JSON.parse(resp)
|
var mon = JSON.parse(resp)
|
||||||
delete mon.data.relationships
|
delete mon.data.relationships.servers
|
||||||
return request.put(base_url + "/monitors/MySQL-Monitor", {json: mon})
|
return request.put(base_url + "/monitors/MySQL-Monitor", {json: mon})
|
||||||
})
|
})
|
||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
@ -72,5 +74,34 @@ describe("Modifying Existing Monitor", function() {
|
|||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("move relationships back to old monitor", function() {
|
||||||
|
|
||||||
|
return request.get(base_url + "/monitors/" + monitor.data.id)
|
||||||
|
.then(function(resp) {
|
||||||
|
var mon = JSON.parse(resp)
|
||||||
|
delete mon.data.relationships.servers
|
||||||
|
return request.put(base_url + "/monitors/" + monitor.data.id, {json: mon})
|
||||||
|
})
|
||||||
|
.then(function() {
|
||||||
|
return request.get(base_url + "/monitors/MySQL-Monitor")
|
||||||
|
})
|
||||||
|
.then(function(resp) {
|
||||||
|
var mon = JSON.parse(resp)
|
||||||
|
mon.data.relationships.servers = [
|
||||||
|
{id: "server1", type: "servers"},
|
||||||
|
{id: "server2", type: "servers"},
|
||||||
|
{id: "server3", type: "servers"},
|
||||||
|
{id: "server4", type: "servers"},
|
||||||
|
]
|
||||||
|
return request.put(base_url + "/monitors/MySQL-Monitor", {json: mon})
|
||||||
|
})
|
||||||
|
.should.be.fulfilled
|
||||||
|
});
|
||||||
|
|
||||||
|
it("destroy created monitor", function() {
|
||||||
|
return request.delete(base_url + "/monitors/" + monitor.data.id)
|
||||||
|
.should.be.fulfilled
|
||||||
|
});
|
||||||
|
|
||||||
after(stopMaxScale)
|
after(stopMaxScale)
|
||||||
}
|
})
|
||||||
|
@ -2,9 +2,8 @@
|
|||||||
|
|
||||||
require("../utils.js")()
|
require("../utils.js")()
|
||||||
|
|
||||||
before(startMaxScale)
|
|
||||||
|
|
||||||
describe("Resource Collections", function() {
|
describe("Resource Collections", function() {
|
||||||
|
before(startMaxScale)
|
||||||
|
|
||||||
var tests = [
|
var tests = [
|
||||||
"/servers/",
|
"/servers/",
|
||||||
@ -15,19 +14,22 @@ describe("Resource Collections", function(){
|
|||||||
]
|
]
|
||||||
|
|
||||||
tests.forEach(function(endpoint) {
|
tests.forEach(function(endpoint) {
|
||||||
it(endpoint + ': resource should be found', function() {
|
it(endpoint + ': resource found', function() {
|
||||||
return request(base_url + endpoint)
|
return request(base_url + endpoint)
|
||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
});
|
});
|
||||||
|
|
||||||
it(endpoint + ': resource schema should be valid', function() {
|
it(endpoint + ': resource schema is valid', function() {
|
||||||
return request(base_url + endpoint)
|
return request(base_url + endpoint)
|
||||||
.should.eventually.satisfy(validate)
|
.should.eventually.satisfy(validate)
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
|
after(stopMaxScale)
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("Individual Resources", function() {
|
describe("Individual Resources", function() {
|
||||||
|
before(startMaxScale)
|
||||||
|
|
||||||
var tests = [
|
var tests = [
|
||||||
"/servers/server1",
|
"/servers/server1",
|
||||||
@ -39,16 +41,16 @@ describe("Individual Resources", function(){
|
|||||||
]
|
]
|
||||||
|
|
||||||
tests.forEach(function(endpoint) {
|
tests.forEach(function(endpoint) {
|
||||||
it(endpoint + ': resource should be found', function() {
|
it(endpoint + ': resource found', function() {
|
||||||
return request(base_url + endpoint)
|
return request(base_url + endpoint)
|
||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
});
|
});
|
||||||
|
|
||||||
it(endpoint + ': resource schema should be valid', function() {
|
it(endpoint + ': resource schema is valid', function() {
|
||||||
return request(base_url + endpoint)
|
return request(base_url + endpoint)
|
||||||
.should.eventually.satisfy(validate)
|
.should.eventually.satisfy(validate)
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
});
|
|
||||||
|
|
||||||
after(stopMaxScale)
|
after(stopMaxScale)
|
||||||
|
});
|
||||||
|
@ -23,26 +23,26 @@ var rel = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
describe("Creating a Server", function(){
|
describe("Server", function() {
|
||||||
before(startMaxScale)
|
before(startMaxScale)
|
||||||
|
|
||||||
it("create the server", function(){
|
it("create new server", function() {
|
||||||
return request.post(base_url + "/servers/", {json: server })
|
return request.post(base_url + "/servers/", {json: server })
|
||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
});
|
});
|
||||||
|
|
||||||
it("request the created server", function(){
|
it("request server", function() {
|
||||||
return request.get(base_url + "/servers/" + server.data.id)
|
return request.get(base_url + "/servers/" + server.data.id)
|
||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
});
|
});
|
||||||
|
|
||||||
it("update the created server", function(){
|
it("update server", function() {
|
||||||
server.data.attributes.parameters.weight = 10
|
server.data.attributes.parameters.weight = 10
|
||||||
return request.put(base_url + "/servers/" + server.data.id, { json: server})
|
return request.put(base_url + "/servers/" + server.data.id, { json: server})
|
||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
});
|
});
|
||||||
|
|
||||||
it("destroy the server", function(){
|
it("destroy server", function() {
|
||||||
return request.delete(base_url + "/servers/" + server.data.id)
|
return request.delete(base_url + "/servers/" + server.data.id)
|
||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
});
|
});
|
||||||
@ -50,19 +50,19 @@ describe("Creating a Server", function(){
|
|||||||
after(stopMaxScale)
|
after(stopMaxScale)
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("Creating a Server With Relationships", function(){
|
describe("Server Relationships", function() {
|
||||||
before(startMaxScale)
|
before(startMaxScale)
|
||||||
|
|
||||||
// We need a deep copy of the original server
|
// We need a deep copy of the original server
|
||||||
var rel_server = JSON.parse(JSON.stringify(server))
|
var rel_server = JSON.parse(JSON.stringify(server))
|
||||||
rel_server.data.relationships = rel
|
rel_server.data.relationships = rel
|
||||||
|
|
||||||
it("create the server", function(){
|
it("create new server", function() {
|
||||||
return request.post(base_url + "/servers/", {json: rel_server})
|
return request.post(base_url + "/servers/", {json: rel_server})
|
||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
});
|
});
|
||||||
|
|
||||||
it("request the server", function(){
|
it("request server", function() {
|
||||||
return request.get(base_url + "/servers/" + rel_server.data.id)
|
return request.get(base_url + "/servers/" + rel_server.data.id)
|
||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
});
|
});
|
||||||
@ -73,7 +73,7 @@ describe("Creating a Server With Relationships", function(){
|
|||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
});
|
});
|
||||||
|
|
||||||
it("destroy the server", function(){
|
it("destroy server", function() {
|
||||||
return request.delete(base_url + "/servers/" + rel_server.data.id)
|
return request.delete(base_url + "/servers/" + rel_server.data.id)
|
||||||
.should.be.fulfilled
|
.should.be.fulfilled
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user