mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-12 07:04:52 +09:00
69 lines
2.5 KiB
JavaScript
69 lines
2.5 KiB
JavaScript
"use strict";
|
|
const assert = require("assert").strict;
|
|
|
|
const lib = require("@clusterio/lib");
|
|
const mock = require("../mock");
|
|
|
|
const addr = lib.Address.fromShorthand;
|
|
|
|
|
|
describe("lib/command", function() {
|
|
let testRole = lib.RawRole.fromJSON({ id: 28, name: "Test Role", description: "Test", permissions: [] });
|
|
|
|
let [controlConnector, controllerConnector] = lib.VirtualConnector.makePair(
|
|
addr({ controlId: 1}), addr("controller")
|
|
);
|
|
let testControl = new mock.MockControl(controlConnector);
|
|
let testController = new lib.Link(controllerConnector);
|
|
testController.handle(
|
|
lib.HostListRequest, () => [new lib.HostDetails("test", "0.1", "Test Host", 11, false)]
|
|
);
|
|
testController.handle(
|
|
lib.InstanceDetailsListRequest, () => [new lib.InstanceDetails("Test Instance", 57, 4, undefined, "stopped")]
|
|
);
|
|
testController.handle(lib.RoleListRequest, () => [testRole]);
|
|
|
|
describe("resolveHost", function() {
|
|
it("should pass an integer like string back", async function() {
|
|
assert.equal(await lib.resolveHost(null, "123"), 123);
|
|
});
|
|
it("should resolve a host name with the controller", async function() {
|
|
assert.equal(await lib.resolveHost(testControl, "Test Host"), 11);
|
|
});
|
|
it("should throw if host is not found", async function() {
|
|
await assert.rejects(
|
|
lib.resolveHost(testControl, "invalid"),
|
|
new lib.CommandError("No host named invalid")
|
|
);
|
|
});
|
|
});
|
|
describe("resolveInstance", function() {
|
|
it("should pass an integer like string back", async function() {
|
|
assert.equal(await lib.resolveInstance(null, "123"), 123);
|
|
});
|
|
it("should resolve an instance name with the controller", async function() {
|
|
assert.equal(await lib.resolveInstance(testControl, "Test Instance"), 57);
|
|
});
|
|
it("should throw if instance is not found", async function() {
|
|
await assert.rejects(
|
|
lib.resolveInstance(testControl, "invalid"),
|
|
new lib.CommandError("No instance named invalid")
|
|
);
|
|
});
|
|
});
|
|
describe("retrieveRole", function() {
|
|
it("should retrieve a role by id from an integer like string", async function() {
|
|
assert.deepEqual(await lib.retrieveRole(testControl, "28"), testRole);
|
|
});
|
|
it("should retrieve a role by name from a string", async function() {
|
|
assert.deepEqual(await lib.retrieveRole(testControl, "Test Role"), testRole);
|
|
});
|
|
it("should throw if role is not found", async function() {
|
|
await assert.rejects(
|
|
lib.retrieveRole(testControl, "invalid"),
|
|
new lib.CommandError("No role named invalid")
|
|
);
|
|
});
|
|
});
|
|
});
|