Markus Mäkelä 57471c7baa
Improve MaxCtrl test coverage
A few missing cases that simple to solve were reported by the coverage
tool.
2018-08-13 10:28:03 +03:00

60 lines
1.7 KiB
JavaScript

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 zero integer values', function() {
return doCommand('api get servers data[].attributes.statistics.connections --sum')
.then((res) => {
js = JSON.parse(res)
js.should.equal(0)
})
})
it('sums non-zero integer values', function() {
return doCommand('api get --sum maxscale/threads data[].attributes.stats.reads')
.then((res) => {
js = JSON.parse(res)
js.should.be.a('number')
})
})
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)
});