Add missing maxctrl test cases

Code coverage revealed that some parts of the code could be easily
tested. Added these missing test cases and removed some dead code.
This commit is contained in:
Markus Mäkelä 2020-03-05 10:16:17 +02:00
parent 68c070c2c4
commit 5b45796da4
No known key found for this signature in database
GPG Key ID: 5CE746D557ACC499
7 changed files with 111 additions and 21 deletions

View File

@ -303,14 +303,6 @@ module.exports = function() {
// Perform a PATCH on a resource
this.updateValue = function(host, resource, key, value) {
var body = {}
// Convert string booleans into JSON booleans
if (value == "true") {
value = true
} else if (value == "false") {
value = false
}
_.set(body, key, value)
return doRequest(host, resource, null, { method: 'PATCH', body: body })
}

View File

@ -171,10 +171,8 @@ exports.builder = function(yargs) {
var err = false;
if (argv.params) {
err = validateParams(argv, argv.params)
monitor.data.attributes.parameters = argv.params.reduce(to_obj, {})
}
err = validateParams(argv, argv.params)
monitor.data.attributes.parameters = argv.params.reduce(to_obj, {})
if (argv.servers) {
for (i = 0; i < argv.servers.length; i++) {
@ -265,14 +263,12 @@ exports.builder = function(yargs) {
}
}
if (argv.params) {
var err = validateParams(argv, argv.params)
if (err) {
return Promise.reject(err)
}
filter.data.attributes.parameters = argv.params.reduce(to_obj, {})
var err = validateParams(argv, argv.params)
if (err) {
return Promise.reject(err)
}
filter.data.attributes.parameters = argv.params.reduce(to_obj, {})
return doRequest(host, 'filters', null, {method: 'POST', body: filter})
})

View File

@ -273,6 +273,18 @@
"integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
"dev": true
},
"@types/geojson": {
"version": "7946.0.7",
"resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz",
"integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==",
"dev": true
},
"@types/node": {
"version": "13.7.7",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.7.tgz",
"integrity": "sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg==",
"dev": true
},
"aggregate-error": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz",
@ -911,6 +923,12 @@
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"denque": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz",
"integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==",
"dev": true
},
"diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
@ -2146,6 +2164,12 @@
"integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
"dev": true
},
"long": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
"dev": true
},
"lru-cache": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
@ -2185,6 +2209,31 @@
"object-visit": "^1.0.0"
}
},
"mariadb": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/mariadb/-/mariadb-2.2.0.tgz",
"integrity": "sha512-YXPF11u4NVgm3FLetJoAbq9Fb0a/RSwNrDHdmAqpqgYErWAOes/IVbOfvWPWZQ0hI88j/81f15AGJZAVuR3bGg==",
"dev": true,
"requires": {
"@types/geojson": "^7946.0.7",
"@types/node": ">=8.0.0",
"denque": "^1.4.1",
"iconv-lite": "^0.5.1",
"long": "^4.0.0",
"moment-timezone": "^0.5.27"
},
"dependencies": {
"iconv-lite": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz",
"integrity": "sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==",
"dev": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
}
}
},
"mem": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
@ -2295,6 +2344,21 @@
"supports-color": "5.4.0"
}
},
"moment": {
"version": "2.24.0",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
"integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
"dev": true
},
"moment-timezone": {
"version": "0.5.28",
"resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz",
"integrity": "sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw==",
"dev": true,
"requires": {
"moment": ">= 2.9.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",

View File

@ -31,6 +31,7 @@
"devDependencies": {
"chai": "^3.5.0",
"chai-as-promised": "^6.0.0",
"mariadb": "^2.2.0",
"mocha": "^5.2.0",
"nyc": "^15.0.0"
},

View File

@ -19,7 +19,7 @@ describe("Create/Destroy Commands", function() {
})
it('monitor without parameters fails due to missing user parameter', function() {
return verifyCommand('create monitor my-monitor mysqlmon', 'monitors/my-monitor')
return doCommand('create monitor my-monitor mysqlmon')
.should.be.rejected
})
@ -273,5 +273,10 @@ describe("Create/Destroy Commands", function() {
.should.be.fulfilled
})
it('create filter with bad parameters', function() {
return doCommand('create filter test-filter qlafilter count 10')
.should.be.rejected
})
after(stopMaxScale)
});

View File

@ -1,4 +1,18 @@
require('../test_utils.js')()
const mariadb = require('mariadb');
var conn
function createConnection() {
return mariadb.createConnection({host: '127.0.0.1', port: 4006, user: 'maxuser', password: 'maxpwd'})
.then(c => {
conn = c
})
}
function closeConnection() {
conn.end()
conn = null
}
var tests = [
'list servers',
@ -15,6 +29,7 @@ var tests = [
'show services',
'show monitors',
'show sessions',
'show session 1',
'show filters',
'show modules',
'show maxscale',
@ -30,10 +45,19 @@ var tests = [
'show maxscale',
'show logging',
'show commands readwritesplit',
'show qc_cache',
'show dbusers RW-Split-Router',
]
var rdns_tests = [
'list sessions',
'show sessions',
'show session 1',
]
describe("Diagnostic Commands", function() {
before(startMaxScale)
before(createConnection)
tests.forEach(function(i) {
it(i, function() {
@ -42,6 +66,14 @@ describe("Diagnostic Commands", function() {
});
})
rdns_tests.forEach(function(i) {
it(i + ' with reverse DNS lookups', function() {
return doCommand(i + ' --rdns')
.should.be.fulfilled
});
})
after(closeConnection)
after(stopMaxScale)
});

View File

@ -17,7 +17,7 @@ describe("Library invocation", function() {
})
it('multiple hosts', function() {
var opts = { extra_args: [ '--quiet', '--hosts', '127.0.0.1:8989', 'localhost:8989'] }
var opts = { extra_args: [ '--quiet', '--hosts', '127.0.0.1:8989,localhost:8989'] }
return ctrl.execute('list servers'.split(' '), opts)
.should.be.fulfilled
})