1
0
Fork 0

Refactored UI view testing

This commit is contained in:
Michaël Lemaire 2017-10-09 23:13:56 +02:00
parent 19d7eb4d30
commit 867dd54f10
35 changed files with 121 additions and 125 deletions

View file

@ -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");

View file

@ -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);

View file

@ -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");

View file

@ -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]];
});
}

View file

@ -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);
});
});

View file

@ -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);

View file

@ -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);

View file

@ -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);
});
});

View file

@ -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];

View file

@ -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;

View file

@ -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);

View file

@ -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)],

View file

@ -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);

View file

@ -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());

View file

@ -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);

View file

@ -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();

View file

@ -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();

View file

@ -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();

View file

@ -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);

View file

@ -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();

View file

@ -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);

View file

@ -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);

View file

@ -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] {

View file

@ -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)

View file

@ -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;

View file

@ -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]);

View file

@ -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");

View file

@ -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();

View file

@ -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);

View file

@ -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);

View file

@ -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();

View file

@ -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);

View file

@ -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");
});
});
}

View file

@ -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();

View file

@ -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();