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

53 lines
2.2 KiB
TypeScript

module TS.SpaceTac.Specs {
describe("MissionPartDialog", () => {
it("advances through dialog", function () {
let universe = new Universe();
let fleet = new Fleet();
let ship1 = new Ship(null, "Tim");
let ship2 = new Ship(null, "Ben");
let part = new MissionPartDialog(new Mission(universe, fleet), [ship1, ship2], "Talk to Tim");
expect(part.title).toEqual("Talk to Tim");
expect(part.checkCompleted()).toBe(true, "No dialog piece");
part.addPiece(ship1, "Hi !");
part.addPiece(ship2, "Indeed, hi !");
part.addPiece(null, "Hum, hello.");
expect(part.checkCompleted()).toBe(false, "Dialog pieces added");
expect(part.getCurrent()).toEqual({ interlocutor: ship1, message: "Hi !" });
part.next();
expect(part.checkCompleted()).toBe(false, "Second piece");
expect(part.getCurrent()).toEqual({ interlocutor: ship2, message: "Indeed, hi !" });
part.next();
expect(part.checkCompleted()).toBe(false, "Last piece");
expect(part.getCurrent()).toEqual({ interlocutor: null, message: "Hum, hello." });
let ship = fleet.addShip();
expect(part.getCurrent()).toEqual({ interlocutor: ship, message: "Hum, hello." });
part.next();
expect(part.checkCompleted()).toBe(true, "Dialog ended");
expect(part.getCurrent()).toEqual({ interlocutor: null, message: "" });
})
it("force completes", function () {
let universe = new Universe();
let fleet = new Fleet();
let ship = new Ship(null, "Tim");
let part = new MissionPartDialog(new Mission(universe, fleet), [ship]);
part.addPiece(null, "Hello !");
part.addPiece(ship, "Hiya !");
expect(part.title).toEqual("Speak with Tim");
expect(part.checkCompleted()).toBe(false);
expect(part.getCurrent()).toEqual({ interlocutor: null, message: "Hello !" });
part.forceComplete();
expect(part.checkCompleted()).toBe(true);
expect(part.getCurrent()).toEqual({ interlocutor: null, message: "" });
});
})
}