From 7c5eaf3ba34ce4f6c220dee71bae63275b909b1b Mon Sep 17 00:00:00 2001 From: Phillip Tarrant Date: Thu, 9 Jul 2026 14:42:12 -0500 Subject: [PATCH] =?UTF-8?q?test(client):=20cover=20non-companion=20disposi?= =?UTF-8?q?tion=20routing=20(=C2=A76/=C2=A77=20boundary)=20in=20NewGame?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- client/tests/unit/test_new_game.gd | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/client/tests/unit/test_new_game.gd b/client/tests/unit/test_new_game.gd index 365706a..8e62dee 100644 --- a/client/tests/unit/test_new_game.gd +++ b/client/tests/unit/test_new_game.gd @@ -85,3 +85,16 @@ func test_unresolved_origin_is_rejected(): var res := NewGame.construct(o, world, {"name": "X", "class_id": "sellsword"}, _rng()) assert_false(res["ok"]) assert_true("unresolved ref: location:nowhere" in res["errors"]) + + +func test_non_companion_override_goes_to_state_not_log(): + world.npcs["oda_fenn"] = {"id": "oda_fenn", "name": "Oda Fenn", "role": "npc"} + var o := _deserter() + o["disposition_overrides"] = {"brannoc_thane": 40, "oda_fenn": -25} + var res := NewGame.construct(o, world, {"name": "X", "class_id": "sellsword"}, _rng()) + assert_true(res["ok"], str(res["errors"])) + assert_eq(res["state"].npc_dispositions["oda_fenn"], -25) + assert_null(res["log"].party_member("oda_fenn")) + for m in res["log"].to_dict()["party"]: + assert_ne(m["id"], "oda_fenn") + assert_eq(res["log"].party_member("brannoc_thane").disposition, 40)