Test the download race and cleared requests without inventories

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
bbassieandClaude Opus 5.5 committed 2026-10-17 15:25:06 +00:00
1 parent 905560d17b
commit 923ba10d2a
2 files changed
+17 -3

No files matched your search

+9
View File
@@ -148,5 +148,14 @@ describe("player_sync components", function() {
const merged = mergePlayerData(storedSlots, withComponents(noSlots, []));
assert.equal("personal_logistic_slots" in merged, false);
});
it("should take cleared logistic requests from an upload without inventories", function() {
const storedSlots = { ...stored, personal_logistic_slots: [{ name: "stored" }] };
// Factorio 1.1 serializes a character without requests as an empty table
const cleared = { ...uploaded, personal_logistic_slots: {} };
delete cleared.character;
delete cleared.crafting_queue;
const merged = mergePlayerData(storedSlots, withComponents(cleared, ["inventories"]));
assert.deepEqual(merged.personal_logistic_slots, {});
});
});
});
+8 -3
View File
@@ -135,9 +135,14 @@ describe("player_sync", function() {
const expected = { generation: 1, name: "test", tag: "tag" };
assert.deepEqual(instance.server.rconCommands, [downloadCommand(expected)]);
});
it("should ignore config changes made after the download was started", async function() {
instance.mockConfigEntries.set("player_sync.sync_force", false);
respondWith({ generation: 1, name: "test", force: "enemy", tag: "tag" });
it("should ignore config changes made while the controller responds", async function() {
instance.connector.once("send", message => {
instance.mockConfigEntries.set("player_sync.sync_force", false);
instance.connector.emit("message", new lib.MessageResponse(
1, message.dst, message.src,
new DownloadResponse({ generation: 1, name: "test", force: "enemy", tag: "tag" }),
));
});
await download({ player_name: "test", components: { force: true } });
const expected = { generation: 1, name: "test", force: "enemy" };
assert.deepEqual(instance.server.rconCommands, [downloadCommand(expected)]);