mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-15 23:24:52 +09:00
Better handling of mod dependencies (#801)
* Add ModDependency and version types * Add warnings for mod dependencies * Add warning for wrong factorio version * Add fix issues button * Add automatic dependency resolution and download * Add abilty to check for updates * Add extra test coverage * One extra test * Fix copy paste error
This commit is contained in:
1 parent
73cc019d2f
commit
d52931a326
29 files changed
+2763
-403
No files matched your search
@@ -2,9 +2,13 @@
|
||||
const path = require("node:path");
|
||||
const assert = require("assert").strict;
|
||||
const { Controller, HostInfo, InstanceInfo } = require("@clusterio/controller");
|
||||
const { ControllerConfig, Address, RequestError, InstanceConfig, SystemInfo, Role } = require("@clusterio/lib");
|
||||
const { EventEmitter } = require("stream");
|
||||
|
||||
const {
|
||||
ControllerConfig, Address, RequestError,
|
||||
InstanceConfig, SystemInfo, Role, ModPack,
|
||||
} = require("@clusterio/lib");
|
||||
|
||||
class MockEvent {}
|
||||
|
||||
class MockInstanceConfig extends EventEmitter {
|
||||
@@ -373,6 +377,48 @@ describe("controller/src/Controller", function() {
|
||||
]);
|
||||
});
|
||||
});
|
||||
describe("ModPack", function() {
|
||||
it("migrates builtin mod versions to X.Y.Z", function() {
|
||||
const modPacks = Controller.migrateModPacks([{
|
||||
id: 0,
|
||||
name: "name",
|
||||
factorio_version: "2.0",
|
||||
mods: [
|
||||
{ name: "base", version: "2.0" },
|
||||
{ name: "my-mod", version: "1.0.0" },
|
||||
],
|
||||
}]);
|
||||
assert.deepEqual(modPacks, [{
|
||||
id: 0,
|
||||
name: "name",
|
||||
factorio_version: "2.0",
|
||||
mods: [
|
||||
{ name: "base", version: "2.0.0" },
|
||||
{ name: "my-mod", version: "1.0.0" },
|
||||
],
|
||||
}]);
|
||||
});
|
||||
it("does nothing for upto date data", function() {
|
||||
const modPack = ModPack.fromJSON({
|
||||
id: 0,
|
||||
name: "name",
|
||||
factorio_version: "2.0",
|
||||
mods: [
|
||||
{ name: "base", version: "2.0.0" },
|
||||
{ name: "my-mod", version: "1.0.0" },
|
||||
],
|
||||
});
|
||||
const jsonString = JSON.stringify(modPack);
|
||||
const modPackJson = JSON.parse(jsonString);
|
||||
const modPackJsonCopy = JSON.parse(jsonString);
|
||||
const result = Controller.migrateModPacks([
|
||||
modPackJson, modPackJson, modPackJson,
|
||||
]);
|
||||
assert.deepEqual(result, [
|
||||
modPackJsonCopy, modPackJsonCopy, modPackJsonCopy,
|
||||
]);
|
||||
});
|
||||
});
|
||||
describe("Role", function() {
|
||||
it("migrates renamed permissions", function() { // Alpha 17
|
||||
const result = Controller.migrateRoles([
|
||||
|
||||
Reference in new issue
Block a user