1
0
Fork 0
spacetac/src/core/missions/MissionPartConversation.spec.ts

53 lines
2.2 KiB
TypeScript

module TK.SpaceTac.Specs {
testing("MissionPartConversation", test => {
test.case("advances through conversation", check => {
let universe = new Universe();
let fleet = new Fleet();
let ship1 = new Ship(null, "Tim");
let ship2 = new Ship(null, "Ben");
let part = new MissionPartConversation(new Mission(universe, fleet), [ship1, ship2], "Talk to Tim");
check.equals(part.title, "Talk to Tim");
check.same(part.checkCompleted(), true, "No dialog piece");
part.addPiece(ship1, "Hi !");
part.addPiece(ship2, "Indeed, hi !");
part.addPiece(null, "Hum, hello.");
check.same(part.checkCompleted(), false, "Dialog pieces added");
check.equals(part.getCurrent(), { interlocutor: ship1, message: "Hi !" });
part.next();
check.same(part.checkCompleted(), false, "Second piece");
check.equals(part.getCurrent(), { interlocutor: ship2, message: "Indeed, hi !" });
part.next();
check.same(part.checkCompleted(), false, "Last piece");
check.equals(part.getCurrent(), { interlocutor: null, message: "Hum, hello." });
let ship = fleet.addShip();
check.equals(part.getCurrent(), { interlocutor: ship, message: "Hum, hello." });
part.next();
check.same(part.checkCompleted(), true, "Dialog ended");
check.equals(part.getCurrent(), { interlocutor: null, message: "" });
})
test.case("force completes", check => {
let universe = new Universe();
let fleet = new Fleet();
let ship = new Ship(null, "Tim");
let part = new MissionPartConversation(new Mission(universe, fleet), [ship]);
part.addPiece(null, "Hello !");
part.addPiece(ship, "Hiya !");
check.equals(part.title, "Speak with Tim");
check.equals(part.checkCompleted(), false);
check.equals(part.getCurrent(), { interlocutor: null, message: "Hello !" });
part.forceComplete();
check.equals(part.checkCompleted(), true);
check.equals(part.getCurrent(), { interlocutor: null, message: "" });
});
})
}