mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-14 15:24:52 +09:00
Add tests for resolveInstance
Add tests for the resolveInstance function in clusterctl.
This commit is contained in:
1 parent
bfff297d9a
commit
f8aa947a98
3 files changed
+41
-1
No files matched your search
@@ -436,6 +436,8 @@ module.exports = {
|
||||
// for testing only
|
||||
_formatOutputColored: formatOutputColored,
|
||||
_formatOutput: formatOutput,
|
||||
_resolveInstance: resolveInstance,
|
||||
_Control: Control,
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
const assert = require('assert').strict;
|
||||
const chalk = require('chalk');
|
||||
|
||||
const errors = require('lib/errors');
|
||||
const { testLines } = require('./lib/factorio/lines');
|
||||
const clusterctl = require('../clusterctl.js');
|
||||
const mock = require('./mock');
|
||||
|
||||
|
||||
describe("clusterctl", function() {
|
||||
@@ -28,4 +30,33 @@ describe("clusterctl", function() {
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
let mockConnector = new mock.MockConnector();
|
||||
mockConnector.on('send', function(message) {
|
||||
if (message.type === 'list_instances_request') {
|
||||
this.emit('message', {
|
||||
seq: 1, type: 'list_instances_response',
|
||||
data: {
|
||||
seq: message.seq,
|
||||
list: [{ id: 57, slave_id: 4, name: 'Test Instance' }],
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
let testControl = new clusterctl._Control(mockConnector);
|
||||
|
||||
describe("resolveInstance", function() {
|
||||
it("should pass an integer like string back", async function() {
|
||||
assert.equal(await clusterctl._resolveInstance(null, "123"), 123);
|
||||
});
|
||||
it("should resolve an instance name with the master server", async function() {
|
||||
assert.equal(await clusterctl._resolveInstance(testControl, "Test Instance"), 57);
|
||||
});
|
||||
it("should throw if instance is not found", async function() {
|
||||
await assert.rejects(
|
||||
clusterctl._resolveInstance(testControl, "invalid"),
|
||||
new errors.CommandError("No instance named invalid")
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
+8
-1
@@ -36,10 +36,17 @@ class MockConnector extends events.EventEmitter {
|
||||
}
|
||||
|
||||
send(type, data) {
|
||||
this.sentMessages.push({ seq: this._seq, type, data });
|
||||
let message = { seq: this._seq, type, data };
|
||||
this.sentMessages.push(message);
|
||||
setImmediate(() => this.emit('send', message));
|
||||
return this._seq++;
|
||||
}
|
||||
|
||||
close(reason) {
|
||||
this.send('close', { reason });
|
||||
this.disconnect();
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
this.disconnectCalled = true;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user