1
0
Fork 0
spacetac/src/ui/character/CharacterSlot.spec.ts

49 lines
2.5 KiB
TypeScript
Raw Normal View History

2017-09-24 22:23:22 +00:00
module TK.SpaceTac.UI.Specs {
2017-10-26 21:47:13 +00:00
testing("CharacterSlot", test => {
2017-10-29 21:08:55 +00:00
let testgame = setupEmptyView(test);
2017-10-26 21:47:13 +00:00
test.case("allows dragging equipment", check => {
2017-10-09 21:13:56 +00:00
let view = testgame.view;
let ship = new Ship();
ship.addSlot(SlotType.Hull);
let sheet = new CharacterSheet(view);
sheet.show(ship);
let source = new CharacterLootSlot(sheet, 0, 0);
sheet.addChild(source);
let equipment = new CharacterEquipment(sheet, new Equipment(SlotType.Engine), source);
let slot = new CharacterSlot(sheet, 0, 0, SlotType.Engine);
2017-10-26 21:47:13 +00:00
check.equals(slot.addEquipment(equipment, source, true), { success: false, info: 'equip in engine slot', error: 'no free slot' });
check.equals(slot.removeEquipment(equipment, source, true), { success: false, info: 'unequip from engine slot', error: 'not equipped!' });
ship.addSlot(SlotType.Engine);
2017-10-26 21:47:13 +00:00
check.equals(slot.addEquipment(equipment, source, true), { success: true, info: 'equip in engine slot' });
equipment.item.requirements["skill_time"] = 1;
2017-10-26 21:47:13 +00:00
check.equals(slot.addEquipment(equipment, source, true), { success: false, info: 'equip in engine slot', error: 'missing skills' });
ship.upgradeSkill("skill_time");
2017-10-26 21:47:13 +00:00
check.equals(slot.addEquipment(equipment, source, true), { success: true, info: 'equip in engine slot' });
ship.critical = true;
2017-10-26 21:47:13 +00:00
check.equals(slot.addEquipment(equipment, source, true), { success: false, info: 'equip in engine slot', error: 'not a fleet member' });
ship.critical = false;
2017-10-26 21:47:13 +00:00
check.equals(ship.listEquipment(SlotType.Engine), []);
let result = slot.addEquipment(equipment, source, false);
2017-10-26 21:47:13 +00:00
check.equals(result, { success: true, info: 'equip in engine slot' });
check.equals(ship.listEquipment(SlotType.Engine), [equipment.item]);
2017-10-26 21:47:13 +00:00
check.equals(slot.removeEquipment(equipment, source, true), { success: true, info: 'unequip from engine slot' });
ship.critical = true;
2017-10-26 21:47:13 +00:00
check.equals(slot.removeEquipment(equipment, source, true), { success: false, info: 'unequip from engine slot', error: 'not a fleet member' });
ship.critical = false;
result = slot.removeEquipment(equipment, source, false);
2017-10-26 21:47:13 +00:00
check.equals(result, { success: true, info: 'unequip from engine slot' });
check.equals(ship.listEquipment(SlotType.Engine), []);
});
});
}