1
0
Fork 0
spacetac/src/ui/battle/BattleView.spec.ts

76 lines
2.8 KiB
TypeScript
Raw Normal View History

/// <reference path="../TestGame.ts"/>
2015-01-08 00:00:00 +00:00
2017-02-09 00:00:35 +00:00
module TS.SpaceTac.UI.Specs {
2017-02-21 22:38:31 +00:00
describe("BattleView", function () {
let testgame = setupBattleview();
it("forwards events in targetting mode", function () {
let battleview = testgame.battleview;
expect(battleview.targetting.active).toBe(false);
battleview.setInteractionEnabled(true);
2015-01-08 00:00:00 +00:00
spyOn(battleview.targetting, "validate").and.stub();
2015-01-08 00:00:00 +00:00
battleview.cursorInSpace(5, 5);
expect(battleview.targetting.active).toBe(false);
2015-01-08 00:00:00 +00:00
// Enter targetting mode
let weapon = TestTools.addWeapon(nn(battleview.battle.playing_ship), 10);
battleview.enterTargettingMode(weapon.action);
2015-01-08 00:00:00 +00:00
expect(battleview.targetting.active).toBe(true);
2015-01-08 00:00:00 +00:00
// Forward selection in space
battleview.cursorInSpace(8, 4);
expect(battleview.ship_hovered).toBeNull();
expect(battleview.targetting.target).toEqual(Target.newFromLocation(8, 4));
2015-01-08 00:00:00 +00:00
// Process a click on space
battleview.cursorClicked();
// Forward ship hovering
battleview.cursorOnShip(battleview.battle.play_order[0]);
2017-03-09 17:11:00 +00:00
expect(battleview.ship_hovered).toEqual(battleview.battle.play_order[0]);
expect(battleview.targetting.target).toEqual(Target.newFromShip(battleview.battle.play_order[0]));
2015-01-08 00:00:00 +00:00
// Don't leave a ship we're not hovering
battleview.cursorOffShip(battleview.battle.play_order[1]);
2017-03-09 17:11:00 +00:00
expect(battleview.ship_hovered).toEqual(battleview.battle.play_order[0]);
expect(battleview.targetting.target).toEqual(Target.newFromShip(battleview.battle.play_order[0]));
2015-01-08 00:00:00 +00:00
// Don't move in space while on ship
battleview.cursorInSpace(1, 3);
2017-03-09 17:11:00 +00:00
expect(battleview.ship_hovered).toEqual(battleview.battle.play_order[0]);
expect(battleview.targetting.target).toEqual(Target.newFromShip(battleview.battle.play_order[0]));
2015-01-08 00:00:00 +00:00
// Process a click on ship
battleview.cursorClicked();
// Leave the ship
battleview.cursorOffShip(battleview.battle.play_order[0]);
expect(battleview.ship_hovered).toBeNull();
expect(battleview.targetting.target).toBeNull();
2015-01-08 00:00:00 +00:00
// Quit targetting
battleview.exitTargettingMode();
expect(battleview.targetting.active).toBe(false);
2015-01-08 00:00:00 +00:00
// Events process normally
battleview.cursorInSpace(8, 4);
expect(battleview.ship_hovered).toBeNull();
battleview.cursorOnShip(battleview.battle.play_order[0]);
2017-03-09 17:11:00 +00:00
expect(battleview.ship_hovered).toEqual(battleview.battle.play_order[0]);
2015-01-08 00:00:00 +00:00
// Quit twice don't do anything
battleview.exitTargettingMode();
});
});
}