MXS-1300: Add server state manipulation test
The test sets and clears server states and verifies it via the REST API. It also checks that only correct arguments are accepted.
This commit is contained in:
parent
18f05578c3
commit
aabbf64991
47
maxctrl/test/states.js
Normal file
47
maxctrl/test/states.js
Normal file
@ -0,0 +1,47 @@
|
||||
require('../test_utils.js')()
|
||||
|
||||
describe("Server states", function() {
|
||||
before(function() {
|
||||
return startMaxScale()
|
||||
.then(function() {
|
||||
return request.put(host + 'monitors/MySQL-Monitor/stop')
|
||||
})
|
||||
})
|
||||
|
||||
var ctrl = require('../core.js')
|
||||
var opts = {
|
||||
extra_args: [ '--quiet']
|
||||
}
|
||||
|
||||
it('set correct state', function() {
|
||||
return ctrl.execute('set server server2 master'.split(' '), opts)
|
||||
.then(function() {
|
||||
return request.get(host + 'servers/server2', {json: true})
|
||||
})
|
||||
.then(function(res) {
|
||||
res.data.attributes.state.should.match(/Master/)
|
||||
})
|
||||
})
|
||||
|
||||
it('clear correct state', function() {
|
||||
return ctrl.execute('clear server server2 master'.split(' '), opts)
|
||||
.then(function() {
|
||||
return request.get(host + 'servers/server2', {json: true})
|
||||
})
|
||||
.then(function(res) {
|
||||
res.data.attributes.state.should.not.match(/Master/)
|
||||
})
|
||||
})
|
||||
|
||||
it('set incorrect state', function() {
|
||||
return ctrl.execute('set server server2 something'.split(' '), opts)
|
||||
.should.be.rejected
|
||||
})
|
||||
|
||||
it('clear incorrect state', function() {
|
||||
return ctrl.execute('clear server server2 something'.split(' '), opts)
|
||||
.should.be.rejected
|
||||
})
|
||||
|
||||
after(stopMaxScale)
|
||||
});
|
@ -1,6 +1,11 @@
|
||||
var child_process = require("child_process")
|
||||
|
||||
module.exports = function() {
|
||||
|
||||
if (process.env.MAXSCALE_DIR == null) {
|
||||
throw new Error("MAXSCALE_DIR is not set");
|
||||
}
|
||||
|
||||
this.request = require("request-promise-native")
|
||||
this.chai = require("chai")
|
||||
this.assert = require("assert")
|
||||
@ -8,19 +13,28 @@ module.exports = function() {
|
||||
chai.use(chaiAsPromised)
|
||||
this.should = chai.should()
|
||||
this.expect = chai.expect
|
||||
this.host = 'http://localhost:8989/v1/'
|
||||
|
||||
this.startMaxScale = function(done) {
|
||||
child_process.execFile("./start_maxscale.sh", function(err, stdout, stderr) {
|
||||
if (process.env.MAXSCALE_DIR == null) {
|
||||
throw new Error("MAXSCALE_DIR is not set");
|
||||
}
|
||||
|
||||
done()
|
||||
this.startMaxScale = function() {
|
||||
return new Promise(function(resolve, reject) {
|
||||
child_process.execFile("./start_maxscale.sh", function(err, stdout, stderr) {
|
||||
if (err) {
|
||||
reject()
|
||||
} else {
|
||||
resolve()
|
||||
}
|
||||
})
|
||||
})
|
||||
};
|
||||
this.stopMaxScale = function(done) {
|
||||
child_process.execFile("./stop_maxscale.sh", function(err, stdout, stderr) {
|
||||
done()
|
||||
this.stopMaxScale = function() {
|
||||
return new Promise(function(resolve, reject) {
|
||||
child_process.execFile("./stop_maxscale.sh", function(err, stdout, stderr) {
|
||||
if (err) {
|
||||
reject()
|
||||
} else {
|
||||
resolve()
|
||||
}
|
||||
})
|
||||
})
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user