1
0
Fork 0
spacetac/src/scripts/specs/BattleLog.spec.ts

40 lines
1.4 KiB
TypeScript

module SpaceTac.Specs {
// Check a single game log event
function checkEvent(got: Game.Events.BaseLogEvent, ship: Game.Ship, code: string,
target_ship: Game.Ship = null, target_x: number = null, target_y: number = null): void {
if (target_ship) {
if (target_x === null) {
target_x = target_ship.arena_x;
}
if (target_y === null) {
target_y = target_ship.arena_y;
}
}
expect(got.ship).toBe(ship);
expect(got.code).toEqual(code);
expect(got.target.ship).toBe(target_ship);
if (target_x === null) {
expect(got.target.x).toBeNull();
} else {
expect(got.target.x).toBeCloseTo(target_x, 0.000001);
}
if (target_y === null) {
expect(got.target.y).toBeNull();
} else {
expect(got.target.y).toBeCloseTo(target_y, 0.000001);
}
}
describe("BattleLog", function () {
it("logs ship change events", function () {
var battle = Game.Battle.newQuickRandom();
expect(battle.log.events.length).toBe(0);
battle.advanceToNextShip();
expect(battle.log.events.length).toBe(1);
checkEvent(battle.log.events[0], battle.play_order[0], "ship_change", battle.play_order[1]);
});
});
}