41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
module TS.SpaceTac.Specs {
|
|
describe("GameSession", () => {
|
|
/**
|
|
* Compare two sessions
|
|
*/
|
|
function compare(session1: GameSession, session2: GameSession) {
|
|
expect(session1).toEqual(session2);
|
|
|
|
}
|
|
|
|
/**
|
|
* Apply deterministic game steps
|
|
*/
|
|
function applyGameSteps(session: GameSession): void {
|
|
var battle = nn(session.getBattle());
|
|
battle.advanceToNextShip();
|
|
// TODO Make some fixed moves (AI?)
|
|
battle.endBattle(battle.fleets[0]);
|
|
}
|
|
|
|
it("serializes to a string", () => {
|
|
var session = new GameSession();
|
|
session.startQuickBattle();
|
|
|
|
// Dump and reload
|
|
var dumped = session.saveToString();
|
|
var loaded_session = GameSession.loadFromString(dumped);
|
|
|
|
// Check equality
|
|
compare(loaded_session, session);
|
|
|
|
// Apply game steps
|
|
applyGameSteps(session);
|
|
applyGameSteps(loaded_session);
|
|
|
|
// Check equality after game steps
|
|
compare(loaded_session, session);
|
|
});
|
|
});
|
|
}
|