From 2afd7aab387bdafb0a2a1274158f4a108797d15a Mon Sep 17 00:00:00 2001 From: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com> Date: Tue, 24 Mar 2026 18:25:53 +0000 Subject: [PATCH] Fix failing tests --- test/integration/clusterio.js | 18 ++++++++++++++++- test/lib/config/validators.test.js | 31 +++++++++++++++++++++++------- 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/test/integration/clusterio.js b/test/integration/clusterio.js index be234991..6bc7e9b8 100644 --- a/test/integration/clusterio.js +++ b/test/integration/clusterio.js @@ -763,9 +763,25 @@ describe("Integration of Clusterio", function() { describe("instance send-rcon", function() { requiresFactorio(this); + const plugins = [ + "global_chat", "inventory_sync", "player_auth", + "research_sync", "statistics_exporter", "subspace_storage", + ]; + this.beforeAll(async function() { + this.timeout(10000); + // Disable plugins as they interfere with enable_script_commands test + for (const plugin of plugins) { + await execCtl(`instance config set test ${plugin}.load_plugin false`); + } + }); this.afterAll(async function() { + this.timeout(10000); // Prevents cascading failure where enable_script_commands is expected to be true await execCtl("instance config set test factorio.enable_script_commands true"); + // Enable plugins after they were previously disabled + for (const plugin of plugins) { + await execCtl(`instance config set test ${plugin}.load_plugin true`); + } }); it("sends the command", async function() { slowTest(this); @@ -1097,12 +1113,12 @@ describe("Integration of Clusterio", function() { it("starts the instance with the given settings", async function() { slowTest(this); requiresFactorio(this); - await execCtl("instance config set 44 factorio.enable_save_patching false"); await execCtl("instance config set 44 player_auth.load_plugin false"); await execCtl("instance config set 44 research_sync.load_plugin false"); await execCtl("instance config set 44 statistics_exporter.load_plugin false"); await execCtl("instance config set 44 subspace_storage.load_plugin false"); await execCtl("instance config set 44 inventory_sync.load_plugin false"); + await execCtl("instance config set 44 factorio.enable_save_patching false"); await execCtl("instance start 44"); const instance = (await getInstances()).get(44); diff --git a/test/lib/config/validators.test.js b/test/lib/config/validators.test.js index 29869fc9..85bce149 100644 --- a/test/lib/config/validators.test.js +++ b/test/lib/config/validators.test.js @@ -240,16 +240,25 @@ describe("lib/config/definitions/validators", function() { }); describe("plugin.load_plugin", function() { - class TestInstanceConfig extends InstanceConfig { - static fieldDefinitions = { ...InstanceConfig.fieldDefinitions }; - } + const initialConfigFields = { + "global_chat.load_plugin": false, + "inventory_sync.load_plugin": false, + "player_auth.load_plugin": false, + "research_sync.load_plugin": false, + "statistics_exporter.load_plugin": false, + "subspace_storage.load_plugin": false, + }; it("should validate against factorio.enable_save_patching", function() { + class TestInstanceConfig extends InstanceConfig { + static fieldDefinitions = { ...InstanceConfig.fieldDefinitions }; + } + lib.addPluginFieldDefinitions( {name: "save_patching", features: ["SavePatching"] }, "instanceConfigFields", TestInstanceConfig ); - const config = new TestInstanceConfig("controller"); + const config = new TestInstanceConfig("controller", initialConfigFields); // valid: does not require script commands assert.doesNotThrow(() => config.set("factorio.enable_script_commands", false)); @@ -267,12 +276,16 @@ describe("lib/config/definitions/validators", function() { ); }); it("should validate against factorio.enable_script_commands", function() { + class TestInstanceConfig extends InstanceConfig { + static fieldDefinitions = { ...InstanceConfig.fieldDefinitions }; + } + lib.addPluginFieldDefinitions( { name: "script_commands", features: ["ScriptCommands"] }, "instanceConfigFields", TestInstanceConfig ); - const config = new TestInstanceConfig("controller"); + const config = new TestInstanceConfig("controller", initialConfigFields); // valid: does not require save patching assert.doesNotThrow(() => config.set("factorio.enable_save_patching", false)); @@ -290,12 +303,16 @@ describe("lib/config/definitions/validators", function() { ); }); it("should allow when no feature flags are present", function() { + class TestInstanceConfig extends InstanceConfig { + static fieldDefinitions = { ...InstanceConfig.fieldDefinitions }; + } + lib.addPluginFieldDefinitions( { name: "no_features", features: [] }, "instanceConfigFields", TestInstanceConfig ); - const config = new TestInstanceConfig("controller"); + const config = new TestInstanceConfig("controller", initialConfigFields); // valid: does not require save patching assert.doesNotThrow(() => config.set("factorio.enable_save_patching", false)); @@ -304,7 +321,7 @@ describe("lib/config/definitions/validators", function() { assert.doesNotThrow(() => config.set("factorio.enable_script_commands", false)); // valid: can have load disabled - assert.doesNotThrow(() => config.set("script_commands.load_plugin", false)); + assert.doesNotThrow(() => config.set("no_features.load_plugin", false)); // no invalid case });