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

55 lines
2.1 KiB
TypeScript
Raw Normal View History

2019-05-13 22:38:58 +00:00
module TK.SpaceTac.UI.Specs {
2019-05-16 16:39:56 +00:00
testing("TurnPlanDisplay", test => {
2019-05-13 22:38:58 +00:00
let testgame = setupEmptyView(test);
2019-05-16 16:39:56 +00:00
function compareDisplay(check: TestContext, plan: TurnPlan, display: TurnPlanDisplay): void {
2019-05-13 22:38:58 +00:00
const container = display.container;
const children = cfilter(container.list, UIContainer);
check.equals(children.length, plan.fleets.length, "fleet containers count");
zip(plan.fleets, children).forEach(([plan, container], idx) => {
check.in(`fleet ${idx}`, check => {
const children = cfilter(container.list, UIContainer);
check.equals(children.length, plan.ships.length, "ship containers count");
zip(plan.ships, children).forEach(([plan, container], idx) => {
});
});
});
}
2019-05-16 16:39:56 +00:00
test.case("updates from a turn plan", check => {
2019-05-13 22:38:58 +00:00
let battle = new Battle();
battle.fleets[0].addShip();
battle.fleets[1].addShip();
battle.fleets[1].addShip();
2019-05-16 16:39:56 +00:00
const display = new TurnPlanDisplay(testgame.view.getLayer("test").getBuilder());
2019-05-13 22:38:58 +00:00
check.in("initial state", check => {
compareDisplay(check, { fleets: [] }, display);
});
2019-05-16 16:39:56 +00:00
let planning = new TurnPlanning(battle);
display.update(planning.getTurnPlan());
2019-05-13 22:38:58 +00:00
check.in("initial update", check => {
2019-05-16 16:39:56 +00:00
compareDisplay(check, planning.getTurnPlan(), display);
2019-05-13 22:38:58 +00:00
});
2019-05-16 16:39:56 +00:00
display.update(planning.getTurnPlan());
2019-05-13 22:38:58 +00:00
check.in("no change", check => {
// TODO Check that no object was added/removed
2019-05-16 16:39:56 +00:00
compareDisplay(check, planning.getTurnPlan(), display);
2019-05-13 22:38:58 +00:00
});
battle = new Battle();
battle.fleets[0].addShip();
battle.fleets[1].addShip();
battle.fleets[1].addShip();
2019-05-16 16:39:56 +00:00
display.update(planning.getTurnPlan());
2019-05-13 22:38:58 +00:00
check.in("update whole", check => {
2019-05-16 16:39:56 +00:00
compareDisplay(check, planning.getTurnPlan(), display);
2019-05-13 22:38:58 +00:00
});
});
});
}