1
0
Fork 0
spacetac/src/core/GameSession.spec.ts

41 lines
1.1 KiB
TypeScript
Raw Normal View History

2017-02-09 00:00:35 +00:00
module TS.SpaceTac.Specs {
describe("GameSession", () => {
2017-02-16 22:59:41 +00:00
/**
* Compare two sessions
*/
function compare(session1: GameSession, session2: GameSession) {
expect(session1).toEqual(session2);
}
/**
* Apply deterministic game steps
*/
function applyGameSteps(session: GameSession): void {
2017-03-09 17:11:00 +00:00
var battle = nn(session.getBattle());
2017-02-16 22:59:41 +00:00
battle.advanceToNextShip();
// TODO Make some fixed moves (AI?)
battle.endBattle(battle.fleets[0], true, false);
2017-02-16 22:59:41 +00:00
}
it("serializes to a string", () => {
var session = new GameSession();
2017-02-16 22:59:41 +00:00
session.startQuickBattle();
// Dump and reload
var dumped = session.saveToString();
var loaded_session = GameSession.loadFromString(dumped);
// Check equality
2017-02-16 22:59:41 +00:00
compare(loaded_session, session);
// Apply game steps
applyGameSteps(session);
applyGameSteps(loaded_session);
// Check equality after game steps
2017-02-16 22:59:41 +00:00
compare(loaded_session, session);
});
});
}