Improved tests coverage for actions
This commit is contained in:
parent
6b5e058382
commit
18a20a7855
27
src/scripts/game/specs/EndTurnAction.spec.ts
Normal file
27
src/scripts/game/specs/EndTurnAction.spec.ts
Normal file
|
@ -0,0 +1,27 @@
|
|||
/// <reference path="../../definitions/jasmine.d.ts"/>
|
||||
|
||||
module SpaceTac.Game.Specs {
|
||||
describe("EndTurnAction", () => {
|
||||
it("can't be applied to non-playing ship", () => {
|
||||
var battle = Battle.newQuickRandom();
|
||||
var action = new EndTurnAction();
|
||||
|
||||
expect(action.canBeUsed(battle, battle.play_order[0])).toBe(true);
|
||||
expect(action.canBeUsed(battle, battle.play_order[1])).toBe(false);
|
||||
|
||||
var result = action.apply(battle, battle.play_order[1], null);
|
||||
expect(result).toBe(false);
|
||||
});
|
||||
|
||||
it("ends turn when applied", () => {
|
||||
var battle = Battle.newQuickRandom();
|
||||
var action = new EndTurnAction();
|
||||
|
||||
expect(battle.playing_ship_index).toBe(0);
|
||||
|
||||
var result = action.apply(battle, battle.play_order[0], null);
|
||||
expect(result).toBe(true);
|
||||
expect(battle.playing_ship_index).toBe(1);
|
||||
});
|
||||
});
|
||||
}
|
|
@ -32,5 +32,34 @@ module SpaceTac.Game {
|
|||
var result = action.checkTarget(null, ship1, Target.newFromShip(ship2));
|
||||
expect(result).toBeNull();
|
||||
});
|
||||
|
||||
it("applies to ship location, battle log and AP", function(){
|
||||
var battle = new Battle(null, null);
|
||||
var ship = new Ship(null, "Test");
|
||||
ship.ap_current = 5;
|
||||
ship.movement_cost = 1;
|
||||
ship.arena_x = 0;
|
||||
ship.arena_y = 0;
|
||||
var action = new MoveAction();
|
||||
|
||||
var result = action.apply(battle, ship, Target.newFromLocation(10, 10));
|
||||
expect(result).toBe(true);
|
||||
expect(ship.arena_x).toBeCloseTo(3.535533, 0.00001);
|
||||
expect(ship.arena_y).toBeCloseTo(3.535533, 0.00001);
|
||||
expect(ship.ap_current).toEqual(0);
|
||||
|
||||
var result = action.apply(battle, ship, Target.newFromLocation(10, 10));
|
||||
expect(result).toBe(false);
|
||||
expect(ship.arena_x).toBeCloseTo(3.535533, 0.00001);
|
||||
expect(ship.arena_y).toBeCloseTo(3.535533, 0.00001);
|
||||
expect(ship.ap_current).toEqual(0);
|
||||
|
||||
expect(battle.log.events.length).toBe(1);
|
||||
expect(battle.log.events[0].code).toEqual("move");
|
||||
expect(battle.log.events[0].ship).toBe(ship);
|
||||
expect(battle.log.events[0].target.ship).toBeNull();
|
||||
expect(battle.log.events[0].target.x).toBeCloseTo(3.535533, 0.00001);
|
||||
expect(battle.log.events[0].target.y).toBeCloseTo(3.535533, 0.00001);
|
||||
});
|
||||
});
|
||||
}
|
Loading…
Reference in a new issue