Files
factorio-clusterio/test/lib/data/SystemInfo.js
T
2026-10-27 21:32:51 +00:00

49 lines
1.2 KiB
JavaScript

import assert from "node:assert/strict";
import { PluginDetails, SystemInfo } from "@clusterio/lib";
import { testRoundTripJsonSerialisable } from "../../common.js";
describe("lib/data/SystemInfo", function() {
describe("class SystemInfo", function() {
it("correctly calculates derived metrics", function() {
const system = new SystemInfo(
"controller",
"server",
"v18.0.0",
"Linux",
"x86_64",
"x86 CPU",
[0.5, 0.25, 0, 1],
1024,
768,
2048,
512,
false,
false,
0,
false
);
assert.equal(system.cpuCapacity, 4);
assert.equal(system.cpuUsed, 1.75);
assert.equal(system.cpuAvailable, 2.25);
assert.equal(system.cpuRatio, 0.4375);
assert.equal(system.memoryUsed, 256);
assert.equal(system.memoryRatio, 0.25);
assert.equal(system.diskUsed, 1536);
assert.equal(system.diskRatio, 0.75);
});
it("has round trip json serialisation", function() {
const base = [
1, "host", "v22.0.0", "Linux", "x86_64", "CPU", [0.5],
1024, 768, 2048, 512, true, false, 0, 0, 0, false,
];
testRoundTripJsonSerialisable(SystemInfo, [
base,
[...base, []],
[...base, [new PluginDetails("name", "Title", "1.0.0", true, true, undefined, "name", "1.1.0")]],
]);
});
});
});