Improve MaxCtrl test coverage
Added tests that cover areas that weren't tested before.
This commit is contained in:
51
maxctrl/test/api.js
Normal file
51
maxctrl/test/api.js
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
require('../test_utils.js')()
|
||||||
|
|
||||||
|
describe("API", function() {
|
||||||
|
before(startMaxScale)
|
||||||
|
|
||||||
|
it('gets resource', function() {
|
||||||
|
return doCommand('api get servers')
|
||||||
|
.should.be.fulfilled
|
||||||
|
})
|
||||||
|
|
||||||
|
it('gets resource with path', function() {
|
||||||
|
return doCommand('api get servers data[0].id')
|
||||||
|
.then((res) => {
|
||||||
|
js = JSON.parse(res)
|
||||||
|
js.should.equal("server1")
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('sums integer values', function() {
|
||||||
|
return doCommand('api get servers data[].attributes.statistics.connections --sum')
|
||||||
|
.then((res) => {
|
||||||
|
js = JSON.parse(res)
|
||||||
|
js.should.equal(0)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('does not sum string values', function() {
|
||||||
|
return doCommand('api get servers data[].id --sum')
|
||||||
|
.then((res) => {
|
||||||
|
js = JSON.parse(res)
|
||||||
|
js.should.deep.equal(["server1", "server2", "server3", "server4"])
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('does not sum objects', function() {
|
||||||
|
return doCommand('api get servers --sum')
|
||||||
|
.should.be.fulfilled
|
||||||
|
})
|
||||||
|
|
||||||
|
it('does not sum undefined objects', function() {
|
||||||
|
return doCommand('api get servers asdf --sum')
|
||||||
|
.should.be.fulfilled
|
||||||
|
})
|
||||||
|
|
||||||
|
it('ignores unknown command', function() {
|
||||||
|
return doCommand('api upgrade')
|
||||||
|
.should.be.rejected
|
||||||
|
})
|
||||||
|
|
||||||
|
after(stopMaxScale)
|
||||||
|
});
|
19
maxctrl/test/drain.js
Normal file
19
maxctrl/test/drain.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
require('../test_utils.js')()
|
||||||
|
|
||||||
|
describe("Draining servers", function() {
|
||||||
|
before(startMaxScale)
|
||||||
|
|
||||||
|
it('drains server', function() {
|
||||||
|
return doCommand('drain server server1')
|
||||||
|
.should.be.fulfilled
|
||||||
|
})
|
||||||
|
|
||||||
|
it('checks server is in maintenance', function() {
|
||||||
|
// The maintenance state isn't set instantly
|
||||||
|
return sleepFor(2000)
|
||||||
|
.then(() => doCommand('api get servers/server1 data.attributes.state'))
|
||||||
|
.should.eventually.have.string("Maintenance")
|
||||||
|
})
|
||||||
|
|
||||||
|
after(stopMaxScale)
|
||||||
|
});
|
@ -88,4 +88,12 @@ module.exports = function() {
|
|||||||
return request.get(host + resource, {json: true})
|
return request.get(host + resource, {json: true})
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.sleepFor = function(time) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
var timer = setInterval(() => {
|
||||||
|
resolve()
|
||||||
|
}, time)
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user