fix(multiplayer): gate allocated matches on full roster

This commit is contained in:
Josh Creek
2026-09-01 16:03:43 +01:00
parent 498f219ab9
commit bdb3c8f4a7
3 changed files with 19 additions and 0 deletions
+7
View File
@@ -157,3 +157,10 @@ func test_allocated_mode_rejects_missing_or_expired_assignment_manifest_fields()
assert_true(not missing.is_valid(), "client build and expiry are required")
var expired = _parse(["--allocated-mode", "--match-id=m", "--server-id=s", "--playlist-version=v", "--client-build=client", "--assignment-expiry-unix=1", "--server-image-digest=sha256:" + "a".repeat(64), "--transport=enet", "--region=EU"])
assert_true(not expired.is_valid(), "expired assignment is rejected")
func test_allocated_start_floor_is_the_verified_roster_size() -> void:
var boot = preload("res://scripts/server_boot.gd")
assert_eq(boot.required_min_players(true, 6, 1), 6, "allocated six-player roster cannot start with one player")
assert_eq(boot.required_min_players(true, 2, 6), 2, "allocated casual roster uses its complete size")
assert_eq(boot.required_min_players(false, 1, 1), 1, "direct server keeps its configured floor")