mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-11 23:04:52 +09:00
56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
"use strict";
|
|
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() {
|
|
describe("formatOutputColored()", function() {
|
|
it("should pass the test lines", function() {
|
|
// Ensure tests get uncoloured output.
|
|
let old = chalk.level;
|
|
chalk.level = 0;
|
|
|
|
for (let [reference, output] of testLines) {
|
|
let line = clusterctl._formatOutputColored(output);
|
|
assert.deepEqual(line, reference);
|
|
}
|
|
|
|
chalk.level = old;
|
|
});
|
|
});
|
|
|
|
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, assigned_slave: 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")
|
|
);
|
|
});
|
|
});
|
|
});
|