57 lines
2.1 KiB
TypeScript
57 lines
2.1 KiB
TypeScript
module TK.SpaceTac.UI.Specs {
|
|
testing("CharacterSheet", test => {
|
|
|
|
testing("in UI", test => {
|
|
let testgame = setupEmptyView(test);
|
|
|
|
test.case("displays fleet and ship information", check => {
|
|
let view = testgame.view;
|
|
check.patch(view, "getWidth", () => 1240);
|
|
let sheet = new CharacterSheet(view, CharacterSheetMode.DISPLAY);
|
|
|
|
check.equals(sheet.container.x, -1240);
|
|
|
|
let fleet = new Fleet();
|
|
let ship1 = fleet.addShip();
|
|
ship1.name = "Ship 1";
|
|
let ship2 = fleet.addShip();
|
|
ship2.name = "Ship 2";
|
|
|
|
sheet.show(ship1, false);
|
|
|
|
check.equals(sheet.container.x, 0);
|
|
check.equals(sheet.group_portraits.length, 2);
|
|
|
|
check.equals(sheet.text_name && sheet.text_name.text, "Ship 1");
|
|
|
|
let portrait = as(UIButton, sheet.group_portraits.getAt(1));
|
|
portrait.emit("pointerdown", { buttons: 1 });
|
|
portrait.emit("pointerup", { buttons: 1 });
|
|
|
|
check.equals(sheet.text_name && sheet.text_name.text, "Ship 2");
|
|
});
|
|
|
|
test.case("controls global interactivity state", check => {
|
|
let sheet = new CharacterSheet(testgame.view, CharacterSheetMode.EDITION);
|
|
check.equals(sheet.isInteractive(), false, "no ship");
|
|
|
|
let ship = new Ship();
|
|
ship.critical = true;
|
|
sheet.show(ship);
|
|
check.equals(sheet.isInteractive(), false, "critical ship");
|
|
|
|
ship.critical = false;
|
|
sheet.show(ship);
|
|
check.equals(sheet.isInteractive(), true, "normal ship");
|
|
|
|
sheet = new CharacterSheet(testgame.view, CharacterSheetMode.DISPLAY);
|
|
sheet.show(ship);
|
|
check.equals(sheet.isInteractive(), false, "interactivity disabled");
|
|
|
|
sheet.show(ship);
|
|
check.equals(sheet.isInteractive(), false, "interactivity stays disabled");
|
|
});
|
|
});
|
|
});
|
|
}
|