53 lines
2.2 KiB
TypeScript
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: "" });
|
|
});
|
|
})
|
|
}
|