From 08c19ece4efb33291477da74ef31cd3c622a7108 Mon Sep 17 00:00:00 2001 From: Ryan Barlow <7389646+ryanbarlow97@users.noreply.github.com> Date: Wed, 27 May 2026 00:40:36 +0100 Subject: [PATCH] test --- .../PercentageTilesOwnedToWin.test.ts | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tests/core/configuration/PercentageTilesOwnedToWin.test.ts diff --git a/tests/core/configuration/PercentageTilesOwnedToWin.test.ts b/tests/core/configuration/PercentageTilesOwnedToWin.test.ts new file mode 100644 index 000000000..575d44fd4 --- /dev/null +++ b/tests/core/configuration/PercentageTilesOwnedToWin.test.ts @@ -0,0 +1,57 @@ +import { describe, expect, it } from "vitest"; +import { Config } from "../../../src/core/configuration/Config"; +import { + Difficulty, + GameMapSize, + GameMapType, + GameMode, + GameType, +} from "../../../src/core/game/Game"; +import { UserSettings } from "../../../src/core/game/UserSettings"; +import { GameConfig } from "../../../src/core/Schemas"; + +function makeConfig(overrides: Partial = {}): Config { + const gameConfig: GameConfig = { + gameMap: GameMapType.Iceland, + gameMapSize: GameMapSize.Compact, + gameMode: GameMode.FFA, + gameType: GameType.Singleplayer, + difficulty: Difficulty.Easy, + nations: "disabled", + donateGold: false, + donateTroops: false, + bots: 0, + infiniteGold: false, + infiniteTroops: false, + instantBuild: false, + randomSpawn: true, + ...overrides, + }; + return new Config(gameConfig, new UserSettings(), false); +} + +describe("Config.percentageTilesOwnedToWin", () => { + it("returns the override when set", () => { + expect( + makeConfig({ percentageTilesOwnedToWin: 99 }).percentageTilesOwnedToWin(), + ).toBe(99); + }); + + it("returns the override even when it is 0 (falsy but valid)", () => { + expect( + makeConfig({ percentageTilesOwnedToWin: 0 }).percentageTilesOwnedToWin(), + ).toBe(0); + }); + + it("falls back to 80 for FFA when override is undefined", () => { + expect( + makeConfig({ gameMode: GameMode.FFA }).percentageTilesOwnedToWin(), + ).toBe(80); + }); + + it("falls back to 95 for Team when override is undefined", () => { + expect( + makeConfig({ gameMode: GameMode.Team }).percentageTilesOwnedToWin(), + ).toBe(95); + }); +});