Files
OpenFrontIO/tests/PlayerImpl.test.ts
T
evanpelle 513fcb0944 upgrade unit when building a unit of same type (#1328)
## Description:

When building a structure in the same location as a nearby structure, it
will update the existing structure instead of creating a new one.

Also fix ctrl+click shortcut to bring up the build menu.

## Please complete the following:

- [x] I have added screenshots for all UI updates
- [x] I process any text displayed to the user through translateText()
and I've added it to the en.json file
- [x] I have added relevant tests to the test directory
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors

## Please put your Discord username so you can be contacted if a bug or
regression is found:

evan
2025-07-03 18:34:18 -07:00

49 lines
1.2 KiB
TypeScript

import {
Game,
Player,
PlayerInfo,
PlayerType,
UnitType,
} from "../src/core/game/Game";
import { setup } from "./util/Setup";
let game: Game;
let player: Player;
describe("PlayerImpl", () => {
beforeEach(async () => {
game = await setup(
"plains",
{
infiniteGold: true,
instantBuild: true,
},
[new PlayerInfo("player", PlayerType.Human, null, "player_id")],
);
while (game.inSpawnPhase()) {
game.executeNextTick();
}
player = game.player("player_id");
});
test("City can be upgraded", () => {
const city = player.buildUnit(UnitType.City, game.ref(0, 0), {});
const buCity = player
.buildableUnits(game.ref(0, 0))
.find((bu) => bu.type === UnitType.City);
expect(buCity).toBeDefined();
expect(buCity!.canUpgrade).toBe(city.id());
});
test("DefensePost cannot be upgraded", () => {
player.buildUnit(UnitType.DefensePost, game.ref(0, 0), {});
const buDefensePost = player
.buildableUnits(game.ref(0, 0))
.find((bu) => bu.type === UnitType.DefensePost);
expect(buDefensePost).toBeDefined();
expect(buDefensePost!.canUpgrade).toBeFalsy();
});
});