Refactored UI view testing
This commit is contained in:
parent
19d7eb4d30
commit
867dd54f10
|
@ -2,7 +2,7 @@
|
|||
|
||||
module TK.SpaceTac.UI.Specs {
|
||||
describe("AssetLoading", () => {
|
||||
let testgame = setupSingleView(testgame => [new AssetLoading(), []]);
|
||||
let testgame = setupSingleView(() => [new AssetLoading(), []]);
|
||||
|
||||
it("loads correctly", function () {
|
||||
expect(testgame.ui.state.current).toEqual("test");
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
module TK.SpaceTac.UI.Specs {
|
||||
describe("Boot", () => {
|
||||
let testgame = setupSingleView(testgame => [new Boot(), []]);
|
||||
let testgame = setupSingleView(() => [new Boot(), []]);
|
||||
|
||||
it("places empty loading background", function () {
|
||||
expect(testgame.ui.world.children.length).toBe(1);
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
module TK.SpaceTac.UI.Specs {
|
||||
describe("Router", () => {
|
||||
let testgame = setupSingleView(testgame => [new Router(), []]);
|
||||
let testgame = setupSingleView(() => [new Router(), []]);
|
||||
|
||||
it("loads correctly", function () {
|
||||
expect(testgame.ui.state.current).toEqual("test");
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
/// <reference path="battle/BattleView.ts"/>
|
||||
/// <reference path="map/UniverseMapView.ts"/>
|
||||
|
||||
module TK.SpaceTac.UI.Specs {
|
||||
let test_ui: MainUI;
|
||||
|
||||
|
@ -9,19 +6,17 @@ module TK.SpaceTac.UI.Specs {
|
|||
*
|
||||
* Attributes should only be accessed from inside corresponding "it" blocks (they are initialized by the setup).
|
||||
*/
|
||||
export class TestGame {
|
||||
export class TestGame<T extends Phaser.State> {
|
||||
ui: MainUI;
|
||||
baseview: BaseView;
|
||||
battleview: BattleView;
|
||||
mapview: UniverseMapView;
|
||||
view: T;
|
||||
multistorage: Multi.FakeRemoteStorage;
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup a headless test UI, with a single view started.
|
||||
*/
|
||||
export function setupSingleView(buildView: (testgame: TestGame) => [Phaser.State, any[]]) {
|
||||
let testgame = new TestGame();
|
||||
export function setupSingleView<T extends Phaser.State>(buildView: () => [T, any[]]) {
|
||||
let testgame = new TestGame<T>();
|
||||
|
||||
beforeEach(function (done) {
|
||||
spyOn(console, "log").and.stub();
|
||||
|
@ -40,7 +35,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
|
||||
testgame.ui = test_ui;
|
||||
|
||||
let [state, stateargs] = buildView(testgame);
|
||||
let [state, stateargs] = buildView();
|
||||
|
||||
if (state instanceof BaseView) {
|
||||
testgame.multistorage = new Multi.FakeRemoteStorage();
|
||||
|
@ -61,6 +56,8 @@ module TK.SpaceTac.UI.Specs {
|
|||
testgame.ui.device.canvas = true;
|
||||
testgame.ui.boot();
|
||||
}
|
||||
|
||||
testgame.view = state;
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
|
@ -73,40 +70,37 @@ module TK.SpaceTac.UI.Specs {
|
|||
/**
|
||||
* Test setup of an empty BaseView
|
||||
*/
|
||||
export function setupEmptyView(): TestGame {
|
||||
return setupSingleView(testgame => {
|
||||
testgame.baseview = new BaseView();
|
||||
return [testgame.baseview, []];
|
||||
export function setupEmptyView(): TestGame<BaseView> {
|
||||
return setupSingleView(() => {
|
||||
return [new BaseView(), []];
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Test setup of a battleview bound to a battle, to be called inside a "describe" block.
|
||||
*/
|
||||
export function setupBattleview(): TestGame {
|
||||
return setupSingleView(testgame => {
|
||||
testgame.battleview = new BattleView();
|
||||
testgame.battleview.splash = false;
|
||||
export function setupBattleview(): TestGame<BattleView> {
|
||||
return setupSingleView(() => {
|
||||
let view = new BattleView();
|
||||
view.splash = false;
|
||||
|
||||
let battle = Battle.newQuickRandom();
|
||||
let player = battle.playing_ship ? battle.playing_ship.getPlayer() : new Player();
|
||||
|
||||
return [testgame.battleview, [player, battle]];
|
||||
return [view, [player, battle]];
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Test setup of a mapview bound to a universe, to be called inside a "describe" block.
|
||||
*/
|
||||
export function setupMapview(): TestGame {
|
||||
return setupSingleView(testgame => {
|
||||
testgame.mapview = new UniverseMapView();
|
||||
|
||||
export function setupMapview(): TestGame<UniverseMapView> {
|
||||
return setupSingleView(() => {
|
||||
let mapview = new UniverseMapView();
|
||||
let session = new GameSession();
|
||||
session.startNewGame();
|
||||
|
||||
return [testgame.mapview, [session.universe, session.player]];
|
||||
return [mapview, [session.universe, session.player]];
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupBattleview();
|
||||
|
||||
it("lists available actions for selected ship", function () {
|
||||
var bar = testgame.battleview.action_bar;
|
||||
var bar = testgame.view.action_bar;
|
||||
|
||||
// Ship not owned by current battleview player
|
||||
var ship = new Ship();
|
||||
|
@ -13,7 +13,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
expect(bar.action_icons.length).toBe(0);
|
||||
|
||||
// Ship with no equipment (only endturn action)
|
||||
testgame.battleview.player = ship.getPlayer();
|
||||
testgame.view.player = ship.getPlayer();
|
||||
bar.setShip(ship);
|
||||
expect(bar.action_icons.length).toBe(1);
|
||||
expect(bar.action_icons[0].action.code).toEqual("endturn");
|
||||
|
@ -32,7 +32,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
});
|
||||
|
||||
it("updates power points display", function () {
|
||||
let bar = testgame.battleview.action_bar;
|
||||
let bar = testgame.view.action_bar;
|
||||
|
||||
function check(available = 0, using = 0, used = 0) {
|
||||
expect(bar.power_icons.children.length).toBe(available + using + used);
|
||||
|
@ -55,13 +55,13 @@ module TK.SpaceTac.UI.Specs {
|
|||
check();
|
||||
|
||||
// owned ship
|
||||
ship.fleet = testgame.battleview.player.fleet;
|
||||
ship.fleet = testgame.view.player.fleet;
|
||||
bar.setShip(ship);
|
||||
check(8);
|
||||
|
||||
// used points
|
||||
ship.setValue("power", 6);
|
||||
testgame.battleview.log_processor.jumpToEnd();
|
||||
testgame.view.log_processor.jumpToEnd();
|
||||
check(6, 0, 2);
|
||||
|
||||
// using points
|
||||
|
@ -70,7 +70,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
|
||||
// decrease
|
||||
ship.setAttribute("power_capacity", 3);
|
||||
testgame.battleview.log_processor.jumpToEnd();
|
||||
testgame.view.log_processor.jumpToEnd();
|
||||
check(3);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -5,7 +5,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupBattleview();
|
||||
|
||||
it("displays power usage", function () {
|
||||
let bar = testgame.battleview.action_bar;
|
||||
let bar = testgame.view.action_bar;
|
||||
let ship = new Ship();
|
||||
let action = new BaseAction("something", "Do something");
|
||||
let icon = new ActionIcon(bar, ship, action, 0);
|
||||
|
@ -21,7 +21,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
})
|
||||
|
||||
it("displays disabled and fading states", function () {
|
||||
let bar = testgame.battleview.action_bar;
|
||||
let bar = testgame.view.action_bar;
|
||||
let ship = new Ship();
|
||||
TestTools.setShipAP(ship, 5);
|
||||
let action = nn(TestTools.addWeapon(ship, 50, 3).action);
|
||||
|
@ -59,7 +59,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
})
|
||||
|
||||
it("displays toggle state", function () {
|
||||
let bar = testgame.battleview.action_bar;
|
||||
let bar = testgame.view.action_bar;
|
||||
let ship = new Ship();
|
||||
TestTools.setShipAP(ship, 5);
|
||||
let equipment = new Equipment(SlotType.Weapon);
|
||||
|
@ -82,7 +82,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
})
|
||||
|
||||
it("displays overheat/cooldown", function () {
|
||||
let bar = testgame.battleview.action_bar;
|
||||
let bar = testgame.view.action_bar;
|
||||
let ship = new Ship();
|
||||
TestTools.setShipAP(ship, 5);
|
||||
let action = nn(TestTools.addWeapon(ship, 50, 3).action);
|
||||
|
@ -112,9 +112,9 @@ module TK.SpaceTac.UI.Specs {
|
|||
})
|
||||
|
||||
it("displays currently targetting", function () {
|
||||
testgame.battleview.animations.setImmediate();
|
||||
testgame.view.animations.setImmediate();
|
||||
|
||||
let bar = testgame.battleview.action_bar;
|
||||
let bar = testgame.view.action_bar;
|
||||
let ship = new Ship();
|
||||
TestTools.setShipAP(ship, 5);
|
||||
let action = nn(TestTools.addWeapon(ship, 50, 3).action);
|
||||
|
|
|
@ -5,7 +5,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("displays action information", () => {
|
||||
let tooltip = new Tooltip(testgame.baseview);
|
||||
let tooltip = new Tooltip(testgame.view);
|
||||
let ship = new Ship();
|
||||
TestTools.setShipAP(ship, 10);
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupBattleview();
|
||||
|
||||
it("adds effects display", function () {
|
||||
let ship = nn(testgame.battleview.battle.playing_ship);
|
||||
let sprite = nn(testgame.battleview.arena.findShipSprite(ship));
|
||||
let ship = nn(testgame.view.battle.playing_ship);
|
||||
let sprite = nn(testgame.view.arena.findShipSprite(ship));
|
||||
|
||||
expect(sprite.effects_messages.children.length).toBe(0);
|
||||
|
||||
|
@ -24,21 +24,21 @@ module TK.SpaceTac.UI.Specs {
|
|||
});
|
||||
|
||||
it("adds sticky effects display", function () {
|
||||
let ship = nn(testgame.battleview.battle.playing_ship);
|
||||
let sprite = nn(testgame.battleview.arena.findShipSprite(ship));
|
||||
let ship = nn(testgame.view.battle.playing_ship);
|
||||
let sprite = nn(testgame.view.arena.findShipSprite(ship));
|
||||
|
||||
expect(sprite.active_effects_display.children.length).toBe(0);
|
||||
|
||||
ship.addStickyEffect(new StickyEffect(new BaseEffect("test")));
|
||||
testgame.battleview.log_processor.jumpToEnd();
|
||||
testgame.view.log_processor.jumpToEnd();
|
||||
expect(sprite.active_effects_display.children.length).toBe(1);
|
||||
|
||||
ship.addStickyEffect(new StickyEffect(new BaseEffect("test")));
|
||||
testgame.battleview.log_processor.jumpToEnd();
|
||||
testgame.view.log_processor.jumpToEnd();
|
||||
expect(sprite.active_effects_display.children.length).toBe(2);
|
||||
|
||||
ship.cleanStickyEffects();
|
||||
testgame.battleview.log_processor.jumpToEnd();
|
||||
testgame.view.log_processor.jumpToEnd();
|
||||
expect(sprite.active_effects_display.children.length).toBe(0);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -5,7 +5,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupBattleview();
|
||||
|
||||
it("handles ship hovering to display tooltip", function () {
|
||||
let battleview = testgame.battleview;
|
||||
let battleview = testgame.view;
|
||||
expect(battleview.ship_hovered).toBeNull("initial state");
|
||||
|
||||
let ship = nn(battleview.battle.playing_ship);
|
||||
|
@ -30,7 +30,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
});
|
||||
|
||||
it("forwards cursor hovering and click to targetting", function () {
|
||||
let battleview = testgame.battleview;
|
||||
let battleview = testgame.view;
|
||||
expect(battleview.targetting.active).toBe(false);
|
||||
battleview.setInteractionEnabled(true);
|
||||
|
||||
|
@ -66,7 +66,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
});
|
||||
|
||||
it("allows to choose an action and a target with shortcut keys", function () {
|
||||
let battleview = testgame.battleview;
|
||||
let battleview = testgame.view;
|
||||
battleview.setInteractionEnabled(true);
|
||||
let action_icon = battleview.action_bar.action_icons[0];
|
||||
|
||||
|
|
|
@ -24,9 +24,9 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupBattleview();
|
||||
|
||||
it("steps forward and backward in time", function () {
|
||||
let battle = testgame.battleview.battle;
|
||||
let battle = testgame.view.battle;
|
||||
battle.log.clear();
|
||||
let processor = new LogProcessor(testgame.battleview);
|
||||
let processor = new LogProcessor(testgame.view);
|
||||
processor.register(event => {
|
||||
event.apply(battle);
|
||||
return 0;
|
||||
|
|
|
@ -5,7 +5,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupBattleview();
|
||||
|
||||
it("handles play position of ships", function () {
|
||||
let battleview = testgame.battleview;
|
||||
let battleview = testgame.view;
|
||||
var list = battleview.ship_list;
|
||||
|
||||
expect(battleview.battle.play_order.length).toBe(10);
|
||||
|
|
|
@ -3,8 +3,8 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupBattleview();
|
||||
|
||||
it("fills ship details", function () {
|
||||
let tooltip = new ShipTooltip(testgame.battleview);
|
||||
let ship = testgame.battleview.battle.play_order[2];
|
||||
let tooltip = new ShipTooltip(testgame.view);
|
||||
let ship = testgame.view.battle.play_order[2];
|
||||
ship.fleet.player.name = "Phil";
|
||||
ship.name = "Fury";
|
||||
ship.model = new ShipModel("fake", "Fury");
|
||||
|
@ -13,7 +13,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
TestTools.setShipAP(ship, 12);
|
||||
TestTools.addWeapon(ship, 50);
|
||||
|
||||
let sprite = nn(testgame.battleview.arena.findShipSprite(ship));
|
||||
let sprite = nn(testgame.view.arena.findShipSprite(ship));
|
||||
sprite.active_effects = new ActiveEffectsEvent(ship,
|
||||
[new AttributeEffect("hull_capacity", 50)],
|
||||
[new StickyEffect(new DamageModifierEffect(-15), 3)],
|
||||
|
|
|
@ -3,16 +3,16 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupBattleview();
|
||||
|
||||
function newTargetting(): Targetting {
|
||||
return new Targetting(testgame.battleview,
|
||||
testgame.battleview.action_bar,
|
||||
testgame.battleview.toggle_tactical_mode,
|
||||
testgame.battleview.arena.range_hint);
|
||||
return new Targetting(testgame.view,
|
||||
testgame.view.action_bar,
|
||||
testgame.view.toggle_tactical_mode,
|
||||
testgame.view.arena.range_hint);
|
||||
}
|
||||
|
||||
it("draws simulation parts", function () {
|
||||
let targetting = newTargetting();
|
||||
|
||||
let ship = nn(testgame.battleview.battle.playing_ship);
|
||||
let ship = nn(testgame.view.battle.playing_ship);
|
||||
ship.setArenaPosition(10, 20);
|
||||
let weapon = TestTools.addWeapon(ship);
|
||||
let engine = TestTools.addEngine(ship, 12);
|
||||
|
@ -43,7 +43,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
|
||||
it("updates impact indicators on ships inside the blast radius", function () {
|
||||
let targetting = newTargetting();
|
||||
let ship = nn(testgame.battleview.battle.playing_ship);
|
||||
let ship = nn(testgame.view.battle.playing_ship);
|
||||
let impacts = targetting.impact_indicators;
|
||||
let action = new TriggerAction(new Equipment(), [], 1, 0, 50);
|
||||
|
||||
|
@ -74,7 +74,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
|
||||
it("updates graphics from simulation", function () {
|
||||
let targetting = newTargetting();
|
||||
let ship = nn(testgame.battleview.battle.playing_ship);
|
||||
let ship = nn(testgame.view.battle.playing_ship);
|
||||
|
||||
let engine = TestTools.addEngine(ship, 8000);
|
||||
let weapon = TestTools.addWeapon(ship, 30, 5, 100, 50);
|
||||
|
@ -113,11 +113,11 @@ module TK.SpaceTac.UI.Specs {
|
|||
|
||||
it("snaps on ships according to targetting mode", function () {
|
||||
let targetting = newTargetting();
|
||||
let playing_ship = nn(testgame.battleview.battle.playing_ship);
|
||||
let playing_ship = nn(testgame.view.battle.playing_ship);
|
||||
let action = TestTools.addWeapon(playing_ship).action;
|
||||
|
||||
let ship1 = testgame.battleview.battle.play_order[1];
|
||||
let ship2 = testgame.battleview.battle.play_order[2];
|
||||
let ship1 = testgame.view.battle.play_order[1];
|
||||
let ship2 = testgame.view.battle.play_order[2];
|
||||
ship1.setArenaPosition(8000, 50);
|
||||
ship2.setArenaPosition(8000, 230);
|
||||
|
||||
|
@ -146,7 +146,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
|
||||
it("updates the range hint display", function () {
|
||||
let targetting = newTargetting();
|
||||
let ship = nn(testgame.battleview.battle.playing_ship);
|
||||
let ship = nn(testgame.view.battle.playing_ship);
|
||||
ship.setArenaPosition(0, 0);
|
||||
ship.listEquipment(SlotType.Engine).forEach(engine => engine.detach());
|
||||
TestTools.setShipAP(ship, 8);
|
||||
|
|
|
@ -3,8 +3,8 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupBattleview();
|
||||
|
||||
function checkEmitters(step: string, expected: number) {
|
||||
expect(testgame.battleview.arena.layer_weapon_effects.children.length).toBe(expected, `${step} - layer children`);
|
||||
expect(keys(testgame.battleview.game.particles.emitters).length).toBe(expected, `${step} - registered emitters`);
|
||||
expect(testgame.view.arena.layer_weapon_effects.children.length).toBe(expected, `${step} - layer children`);
|
||||
expect(keys(testgame.view.game.particles.emitters).length).toBe(expected, `${step} - registered emitters`);
|
||||
}
|
||||
|
||||
function fastForward(milliseconds: number) {
|
||||
|
@ -13,7 +13,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
}
|
||||
|
||||
it("displays shield hit effect", function () {
|
||||
let battleview = testgame.battleview;
|
||||
let battleview = testgame.view;
|
||||
battleview.timer = new Timer();
|
||||
|
||||
let effect = new WeaponEffect(battleview.arena, new Ship(), new Target(0, 0), new Equipment());
|
||||
|
@ -30,7 +30,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
});
|
||||
|
||||
it("displays gatling gun effect", function () {
|
||||
let battleview = testgame.battleview;
|
||||
let battleview = testgame.view;
|
||||
battleview.timer = new Timer();
|
||||
|
||||
let ship = nn(battleview.battle.playing_ship);
|
||||
|
@ -43,7 +43,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
});
|
||||
|
||||
it("displays shield and hull effect on impacted ships", function () {
|
||||
let battleview = testgame.battleview;
|
||||
let battleview = testgame.view;
|
||||
battleview.timer = new Timer();
|
||||
|
||||
let ship = nn(battleview.battle.playing_ship);
|
||||
|
@ -76,7 +76,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
});
|
||||
|
||||
it("removes particle emitters when done", function () {
|
||||
let battleview = testgame.battleview;
|
||||
let battleview = testgame.view;
|
||||
battleview.timer = new Timer();
|
||||
|
||||
let effect = new WeaponEffect(battleview.arena, new Ship(), Target.newFromLocation(50, 50), new Equipment());
|
||||
|
@ -93,7 +93,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
});
|
||||
|
||||
it("adds a laser effect", function () {
|
||||
let battleview = testgame.battleview;
|
||||
let battleview = testgame.view;
|
||||
battleview.timer = new Timer();
|
||||
|
||||
let effect = new WeaponEffect(battleview.arena, new Ship(), Target.newFromLocation(31, 49), new Equipment());
|
||||
|
|
|
@ -3,7 +3,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("checks conditions for adding/removing equipment", function () {
|
||||
let view = testgame.baseview;
|
||||
let view = testgame.view;
|
||||
let sheet = new CharacterSheet(view);
|
||||
let ship = new Ship();
|
||||
sheet.show(ship);
|
||||
|
|
|
@ -46,7 +46,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
}
|
||||
|
||||
it("handles drag-and-drop to move equipment", function () {
|
||||
let view = testgame.baseview;
|
||||
let view = testgame.view;
|
||||
let sheet = new CharacterSheet(view);
|
||||
sheet.show(new Ship());
|
||||
let refresh = spyOn(sheet, "refresh").and.stub();
|
||||
|
|
|
@ -3,7 +3,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("transfers equipment to another ship", function () {
|
||||
let view = testgame.baseview;
|
||||
let view = testgame.view;
|
||||
let sheet = new CharacterSheet(view);
|
||||
|
||||
let fleet = new Fleet();
|
||||
|
|
|
@ -3,7 +3,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("takes or discard loot", function () {
|
||||
let view = testgame.baseview;
|
||||
let view = testgame.view;
|
||||
let sheet = new CharacterSheet(view);
|
||||
|
||||
let fleet = new Fleet();
|
||||
|
|
|
@ -5,7 +5,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("displays fleet and ship information", function () {
|
||||
let view = testgame.baseview;
|
||||
let view = testgame.view;
|
||||
let sheet = new CharacterSheet(view, -1000);
|
||||
|
||||
expect(sheet.x).toEqual(-1000);
|
||||
|
@ -52,7 +52,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let loot = [equ3, equ4];
|
||||
ship.addSlot(SlotType.Weapon);
|
||||
|
||||
let sheet = new CharacterSheet(testgame.baseview);
|
||||
let sheet = new CharacterSheet(testgame.view);
|
||||
sheet.show(ship, false);
|
||||
|
||||
expect(sheet.loot_slots.visible).toBe(false);
|
||||
|
|
|
@ -3,7 +3,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("buys and sell if bound to a shop", function () {
|
||||
let view = testgame.baseview;
|
||||
let view = testgame.view;
|
||||
let sheet = new CharacterSheet(view);
|
||||
|
||||
let fleet = new Fleet();
|
||||
|
|
|
@ -3,7 +3,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("allows dragging equipment", function () {
|
||||
let view = testgame.baseview;
|
||||
let view = testgame.view;
|
||||
let ship = new Ship();
|
||||
ship.addSlot(SlotType.Hull);
|
||||
let sheet = new CharacterSheet(view);
|
||||
|
|
|
@ -5,47 +5,47 @@ module TK.SpaceTac.UI.Specs {
|
|||
it("shows and hides objects", function () {
|
||||
let obj = { visible: false, alpha: 0.5 };
|
||||
|
||||
expect(testgame.baseview.animations.simulate(obj, 'alpha')).toEqual([]);
|
||||
expect(testgame.view.animations.simulate(obj, 'alpha')).toEqual([]);
|
||||
|
||||
testgame.baseview.animations.show(obj);
|
||||
testgame.view.animations.show(obj);
|
||||
|
||||
expect(obj.visible).toBe(true);
|
||||
expect(obj.alpha).toBe(0);
|
||||
expect(testgame.baseview.animations.simulate(obj, 'alpha')).toEqual([0, 0.25, 0.5, 0.75, 1]);
|
||||
expect(testgame.view.animations.simulate(obj, 'alpha')).toEqual([0, 0.25, 0.5, 0.75, 1]);
|
||||
|
||||
obj.alpha = 1;
|
||||
testgame.baseview.animations.hide(obj);
|
||||
testgame.view.animations.hide(obj);
|
||||
|
||||
expect(obj.visible).toBe(true);
|
||||
expect(obj.alpha).toBe(1);
|
||||
expect(testgame.baseview.animations.simulate(obj, 'alpha')).toEqual([1, 0.75, 0.5, 0.25, 0]);
|
||||
expect(testgame.view.animations.simulate(obj, 'alpha')).toEqual([1, 0.75, 0.5, 0.25, 0]);
|
||||
|
||||
obj.alpha = 0.2;
|
||||
testgame.baseview.animations.setVisible(obj, true, 1000, 0.6);
|
||||
testgame.view.animations.setVisible(obj, true, 1000, 0.6);
|
||||
|
||||
expect(obj.visible).toBe(true);
|
||||
expect(obj.alpha).toBe(0.2);
|
||||
expect(testgame.baseview.animations.simulate(obj, 'alpha')).toEqual([0.2, 0.3, 0.4, 0.5, 0.6]);
|
||||
expect(testgame.view.animations.simulate(obj, 'alpha')).toEqual([0.2, 0.3, 0.4, 0.5, 0.6]);
|
||||
|
||||
obj.alpha = 0.6;
|
||||
testgame.baseview.animations.setVisible(obj, false, 1000, 0.6, 0.2);
|
||||
testgame.view.animations.setVisible(obj, false, 1000, 0.6, 0.2);
|
||||
|
||||
expect(obj.visible).toBe(true);
|
||||
expect(obj.alpha).toBe(0.6);
|
||||
expect(testgame.baseview.animations.simulate(obj, 'alpha')).toEqual([0.6, 0.5, 0.4, 0.3, 0.2]);
|
||||
expect(testgame.view.animations.simulate(obj, 'alpha')).toEqual([0.6, 0.5, 0.4, 0.3, 0.2]);
|
||||
});
|
||||
|
||||
it("blocks input while object is hidden", function () {
|
||||
let obj = { visible: true, alpha: 1, input: { enabled: true }, changeStateFrame: jasmine.createSpy("changeStateFrame"), freezeFrames: false };
|
||||
|
||||
testgame.baseview.animations.setVisible(obj, false, 0);
|
||||
testgame.view.animations.setVisible(obj, false, 0);
|
||||
expect(obj.visible).toBe(false);
|
||||
expect(obj.alpha).toBe(0);
|
||||
expect(obj.input.enabled).toBe(false);
|
||||
expect(obj.changeStateFrame).toHaveBeenCalledWith("Out");
|
||||
expect(obj.freezeFrames).toBe(true);
|
||||
|
||||
testgame.baseview.animations.setVisible(obj, true, 0);
|
||||
testgame.view.animations.setVisible(obj, true, 0);
|
||||
expect(obj.visible).toBe(true);
|
||||
expect(obj.alpha).toBe(1);
|
||||
expect(obj.input.enabled).toBe(true);
|
||||
|
|
|
@ -3,7 +3,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("handles hover and click on desktops and mobile targets", function (done) {
|
||||
let inputs = testgame.baseview.inputs;
|
||||
let inputs = testgame.view.inputs;
|
||||
|
||||
let pointer = new Phaser.Pointer(testgame.ui, 0);
|
||||
function newButton(): [Phaser.Button, any] {
|
||||
|
|
|
@ -3,7 +3,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("builds composed particles", function () {
|
||||
let builder = new ParticleBuilder(testgame.baseview);
|
||||
let builder = new ParticleBuilder(testgame.view);
|
||||
let particle = builder.build([
|
||||
new ParticleConfig(ParticleShape.ROUND, ParticleColor.BLUE, 2, 1, 45, 10, -20),
|
||||
new ParticleConfig(ParticleShape.DISK_HALO, ParticleColor.WHITE, 0.5, 1, 0, 5, 0)
|
||||
|
|
|
@ -3,10 +3,10 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("shows near the hovered button", function () {
|
||||
let button = testgame.baseview.add.button();
|
||||
let button = testgame.view.add.button();
|
||||
spyOn(button, "getBounds").and.returnValue({ x: 100, y: 50, width: 50, height: 25 });
|
||||
|
||||
let tooltip = new Tooltip(testgame.baseview);
|
||||
let tooltip = new Tooltip(testgame.view);
|
||||
tooltip.bind(button, filler => true);
|
||||
|
||||
let container = <Phaser.Group>(<any>tooltip).container;
|
||||
|
|
|
@ -3,7 +3,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("controls visibility", function () {
|
||||
let component = new UIComponent(testgame.baseview, 50, 50);
|
||||
let component = new UIComponent(testgame.view, 50, 50);
|
||||
|
||||
let container = <Phaser.Group>(<any>component).container;
|
||||
expect(container.visible).toBe(true);
|
||||
|
@ -17,11 +17,11 @@ module TK.SpaceTac.UI.Specs {
|
|||
// with transition
|
||||
component.setVisible(false, 500);
|
||||
expect(container.visible).toBe(true);
|
||||
expect(testgame.baseview.animations.simulate(container, 'alpha')).toEqual([1, 0.5, 0]);
|
||||
expect(testgame.view.animations.simulate(container, 'alpha')).toEqual([1, 0.5, 0]);
|
||||
});
|
||||
|
||||
it("sets position inside parent", function () {
|
||||
let comp1 = new UIComponent(testgame.baseview, 100, 100);
|
||||
let comp1 = new UIComponent(testgame.view, 100, 100);
|
||||
expect(comp1.getPosition()).toEqual([0, 0]);
|
||||
comp1.setPositionInsideParent(1, 1);
|
||||
expect(comp1.getPosition()).toEqual([1820, 980]);
|
||||
|
|
|
@ -3,7 +3,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("sets up an overlay", function () {
|
||||
let view = testgame.baseview;
|
||||
let view = testgame.view;
|
||||
expect(view.dialogs_layer.children.length).toBe(0);
|
||||
|
||||
let dialog1 = new UIDialog(view, 10, 10, "fake");
|
||||
|
|
|
@ -4,11 +4,11 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("destroys children", function () {
|
||||
let parent = testgame.baseview.add.group();
|
||||
let child1 = testgame.baseview.add.graphics(0, 0, parent);
|
||||
let child2 = testgame.baseview.add.image(0, 0, "", 0, parent);
|
||||
let child3 = testgame.baseview.add.button(0, 0, "", undefined, undefined, undefined, undefined, undefined, undefined, parent);
|
||||
let child4 = testgame.baseview.add.text(0, 0, "", {}, parent);
|
||||
let parent = testgame.view.add.group();
|
||||
let child1 = testgame.view.add.graphics(0, 0, parent);
|
||||
let child2 = testgame.view.add.image(0, 0, "", 0, parent);
|
||||
let child3 = testgame.view.add.button(0, 0, "", undefined, undefined, undefined, undefined, undefined, undefined, parent);
|
||||
let child4 = testgame.view.add.text(0, 0, "", {}, parent);
|
||||
expect(parent.children.length).toBe(4);
|
||||
|
||||
destroyChildren(parent, 1, 2);
|
||||
|
@ -19,7 +19,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
});
|
||||
|
||||
it("keeps objects inside bounds", function () {
|
||||
let image = testgame.baseview.add.graphics(150, 100);
|
||||
let image = testgame.view.add.graphics(150, 100);
|
||||
image.beginFill(0xff0000);
|
||||
image.drawEllipse(50, 25, 50, 25);
|
||||
image.endFill();
|
||||
|
|
|
@ -3,7 +3,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("computes proportional value", function () {
|
||||
var bar = new ValueBar(testgame.baseview, "default", ValueBarOrientation.EAST);
|
||||
var bar = new ValueBar(testgame.view, "default", ValueBarOrientation.EAST);
|
||||
expect(bar.getProportionalValue()).toBe(0);
|
||||
|
||||
bar.setValue(20, 100);
|
||||
|
|
|
@ -3,7 +3,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupEmptyView();
|
||||
|
||||
it("displays active missions", function () {
|
||||
let view = testgame.baseview;
|
||||
let view = testgame.view;
|
||||
let missions = new ActiveMissions();
|
||||
let display = new ActiveMissionsDisplay(view, missions);
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupMapview();
|
||||
|
||||
it("orbits the fleet around its current location", function () {
|
||||
let mapview = testgame.mapview;
|
||||
let mapview = testgame.view;
|
||||
let fleet = mapview.player_fleet;
|
||||
|
||||
fleet.loopOrbit();
|
||||
|
|
|
@ -20,7 +20,7 @@ module TK.SpaceTac.UI.Specs {
|
|||
let shop_missions: Mission[] = [];
|
||||
spyOn(shop, "getMissions").and.callFake(() => shop_missions);
|
||||
|
||||
let missions = new MissionsDialog(testgame.baseview, shop, player);
|
||||
let missions = new MissionsDialog(testgame.view, shop, player);
|
||||
checkTexts(missions, []);
|
||||
|
||||
let mission = new Mission(universe);
|
||||
|
|
|
@ -3,28 +3,30 @@ module TK.SpaceTac.UI.Specs {
|
|||
let testgame = setupMapview();
|
||||
|
||||
it("displays a badge with the current state for a star location", function () {
|
||||
let mapview = testgame.mapview;
|
||||
let mapview = testgame.view;
|
||||
let location = nn(mapview.player.fleet.location);
|
||||
|
||||
let ssdisplay = nn(first(mapview.starsystems, ss => ss.starsystem == location.star));
|
||||
let l1display = nn(first(ssdisplay.locations, loc => loc[0] == location));
|
||||
expect(l1display[2].name).toEqual("map-status-dockyard");
|
||||
|
||||
let l2display = nn(first(ssdisplay.locations, loc => loc[0] != location));
|
||||
expect(l2display[2].name).toEqual("map-status-unvisited");
|
||||
let ldisplay = nn(first(ssdisplay.locations, loc => loc[0] != location));
|
||||
expect(ldisplay[2].name).toEqual("map-status-unvisited");
|
||||
|
||||
l2display[0].setupEncounter();
|
||||
ldisplay[0].setupEncounter();
|
||||
ssdisplay.updateInfo(2, true);
|
||||
expect(l2display[2].name).toEqual("map-status-unvisited");
|
||||
expect(ldisplay[2].name).toEqual("map-status-unvisited");
|
||||
|
||||
mapview.player.setVisited(l2display[0]);
|
||||
mapview.player.setVisited(ldisplay[0]);
|
||||
ssdisplay.updateInfo(2, true);
|
||||
expect(l2display[2].name).toEqual("map-status-enemy");
|
||||
expect(ldisplay[2].name).toEqual("map-status-enemy");
|
||||
|
||||
l2display[0].shop = null;
|
||||
l2display[0].clearEncounter();
|
||||
ldisplay[0].shop = null;
|
||||
ldisplay[0].clearEncounter();
|
||||
ssdisplay.updateInfo(2, true);
|
||||
expect(l2display[2].name).toEqual("map-status-clear");
|
||||
expect(ldisplay[2].name).toEqual("map-status-clear");
|
||||
|
||||
ldisplay[0].shop = new Shop();
|
||||
ssdisplay.updateInfo(2, true);
|
||||
expect(ldisplay[2].name).toEqual("map-status-dockyard");
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
module TK.SpaceTac.UI.Specs {
|
||||
describe("LoadDialog", () => {
|
||||
let testgame = setupSingleView(testgame => [new MainMenu(), []]);
|
||||
let testgame = setupSingleView(() => [new MainMenu(), []]);
|
||||
|
||||
it("joins remote sessions as spectator", function (done) {
|
||||
let view = <MainMenu>testgame.ui.state.getCurrentState();
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
module TK.SpaceTac.UI.Specs {
|
||||
describe("MainMenu", () => {
|
||||
let testgame = setupSingleView(testgame => [new MainMenu(), []]);
|
||||
let testgame = setupSingleView(() => [new MainMenu(), []]);
|
||||
|
||||
it("adds moving stars, a title and three buttons", function () {
|
||||
let view = <MainMenu>testgame.ui.state.getCurrentState();
|
||||
|
|
Loading…
Reference in a new issue