mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-11 15:04:52 +09:00
Show the instance ID when its details can't be fetched
InstanceDetailsGetRequest needs core.instance.get, which the player-sync list and show commands are not documented to require. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
004fb13f1c
commit
1d14148606
2 files changed
+17
-2
No files matched your search
@@ -13,8 +13,13 @@ async function instanceName(ctl: Ctl, instanceId: number | undefined) {
|
||||
if (instanceId === undefined) {
|
||||
return "-";
|
||||
}
|
||||
let instance = await ctl.send(new lib.InstanceDetailsGetRequest(instanceId));
|
||||
return `${instance.name} (${instanceId})`;
|
||||
try {
|
||||
let instance = await ctl.send(new lib.InstanceDetailsGetRequest(instanceId));
|
||||
return `${instance.name} (${instanceId})`;
|
||||
} catch (err) {
|
||||
// Viewing player data does not require core.instance.get
|
||||
return String(instanceId);
|
||||
}
|
||||
}
|
||||
|
||||
const playerSyncCommands = new lib.CommandTree({
|
||||
|
||||
@@ -181,6 +181,16 @@ describe("player_sync plugin", function() {
|
||||
` 1 exported item ${lib.formatBytes(4)}`,
|
||||
]);
|
||||
});
|
||||
it("should show the instance ID when details can't be fetched", async function() {
|
||||
responses.set(lib.InstanceDetailsGetRequest, () => {
|
||||
throw new lib.PermissionError("Permission denied");
|
||||
});
|
||||
await run("list");
|
||||
assert.equal(printed[2], "bob | - | - | 1");
|
||||
printed = [];
|
||||
await run("show", { player: "alice" });
|
||||
assert.equal(printed[0], "acquired by: 1");
|
||||
});
|
||||
it("show should handle players without data", async function() {
|
||||
await run("show", { player: "carol" });
|
||||
assert.deepEqual(printed, ["acquired by: -", "No player data stored for carol"]);
|
||||
|
||||
Reference in new issue
Block a user