From e54b292fce27a2914ad97eca9d3ee94393b3ed0c Mon Sep 17 00:00:00 2001 From: Cooldude2606 <25043174+Cooldude2606@users.noreply.github.com> Date: Fri, 29 May 2026 18:38:07 +0100 Subject: [PATCH] Fix tests relating to permissions --- packages/lib/src/data/Permission.ts | 5 +++-- test/integration/clusterio.js | 9 +++++---- test/lib/config/validators.test.js | 18 ++++++++++-------- test/lib/subscriptions.test.js | 2 +- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/packages/lib/src/data/Permission.ts b/packages/lib/src/data/Permission.ts index 28ace0ca..2fc3363c 100644 --- a/packages/lib/src/data/Permission.ts +++ b/packages/lib/src/data/Permission.ts @@ -8,16 +8,17 @@ export default class Permission { public name: string, public title: string, public description: string, - public grantByDefault?: boolean, + public grantByDefault: boolean = false, ) { } static jsonSchema = Type.Object({ name: Type.String(), title: Type.String(), description: Type.String(), + grantByDefault: Type.Optional(Type.Boolean()), }); static fromJSON(json: Static) { - return new this(json.name, json.title, json.description); + return new this(json.name, json.title, json.description, Boolean(json.grantByDefault)); } } diff --git a/test/integration/clusterio.js b/test/integration/clusterio.js index 480f4b46..e44f673d 100644 --- a/test/integration/clusterio.js +++ b/test/integration/clusterio.js @@ -1655,12 +1655,13 @@ describe("Integration of Clusterio", function() { }); it("should grant default permissions with --grant-default", async function() { await execCtl("role edit new --grant-default"); - let roles = await getControl().send(new lib.RoleListRequest()); + const control = getControl(); + let roles = await control.send(new lib.RoleListRequest()); let newRole = roles.find(role => role.name === "new"); - let defaultPermissions = [...lib.permissions.values()] + const permissions = await control.send(new lib.PermissionListRequest()); + const defaultPermissions = permissions .filter(p => p.grantByDefault) - .map(p => p.name) - ; + .map(p => p.name); assert.deepEqual(new Set(newRole.permissions), new Set(defaultPermissions)); }); }); diff --git a/test/lib/config/validators.test.js b/test/lib/config/validators.test.js index 85bce149..949f3d0f 100644 --- a/test/lib/config/validators.test.js +++ b/test/lib/config/validators.test.js @@ -240,14 +240,16 @@ describe("lib/config/definitions/validators", function() { }); describe("plugin.load_plugin", function() { - 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, - }; + const initialConfigFields = {}; + + before(function() { + for (const fieldName of Object.keys(InstanceConfig.fieldDefinitions)) { + if (fieldName.endsWith("load_plugin")) { + initialConfigFields[fieldName] = false; + } + } + }); + it("should validate against factorio.enable_save_patching", function() { class TestInstanceConfig extends InstanceConfig { static fieldDefinitions = { ...InstanceConfig.fieldDefinitions }; diff --git a/test/lib/subscriptions.test.js b/test/lib/subscriptions.test.js index 33dcfca8..0af0dd35 100644 --- a/test/lib/subscriptions.test.js +++ b/test/lib/subscriptions.test.js @@ -586,7 +586,7 @@ describe("lib/subscriptions", function() { }); it("should throw if action is not supported", async function() { - const request = new lib.SubscriptionRequest(StringPermissionEvent.name, "invalid action"); + const request = new lib.SubscriptionRequest(RegisteredEvent.name, "invalid action"); await assert.rejects(subscriptions.handleRequest( getLink(0), request, connectorSetupDate[0].dst, connectorSetupDate[0].src ), /unreachable case: invalid action/);