MaxScale/maxctrl/test/diagnostics.js
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

83 lines
2.1 KiB
JavaScript

require('../test_utils.js')()
var tests = [
'list servers',
'list services',
'list listeners RW-Split-Router',
'list monitors',
'list sessions',
'list filters',
'list modules',
'list users',
'list commands',
'list threads',
'show servers',
'show services',
'show monitors',
'show sessions',
'show filters',
'show modules',
'show maxscale',
'show logging',
'show threads',
'show thread 0',
'show server server1',
'show service RW-Split-Router',
'show monitor MariaDB-Monitor',
'show session 5',
'show filter Hint',
'show module readwritesplit',
'show maxscale',
'show logging',
'show commands readwritesplit',
]
describe("Diagnostic Commands", function() {
before(startMaxScale)
tests.forEach(function(i) {
it(i, function() {
return doCommand(i)
.should.be.fulfilled
});
})
after(stopMaxScale)
});
describe("MXS-1656: `list servers` with GTIDs", function() {
before(startMaxScale)
doCheck = function() {
return doCommand('list servers --tsv')
.then((res) => {
// Check that at least 5 columns are returned with the last column consisting of
// empty strings. This is because the test setup uses file and position based
// replication.
res = res.split('\n').map(i => i.split('\t')).map(i => i[5])
var pos = _.uniq(res)[0]
if (pos.length) {
pos.should.match(/[0-9]*-[0-9]*-[0-9]*/)
} else {
pos.should.equal('')
}
})
}
it('Lists monitored servers', function() {
return doCheck()
});
it('Lists unmonitored servers', function() {
return doCommand('unlink monitor MariaDB-Monitor server1 server2 server3 server4')
.then(() => doCheck())
});
it('Lists partially monitored servers', function() {
return doCommand('link monitor MariaDB-Monitor server1 server3')
.then(() => doCheck())
});
after(stopMaxScale)
});