slotify.js
Version:
A video slot game session framework for JavaScript
37 lines (29 loc) • 1.39 kB
text/typescript
import {IGameSession} from "../session/IGameSession";
import {GameSessionSimulationModel} from "./GameSessionSimulationModel";
describe("GameSessionSimulationModel", () => {
// noinspection DuplicatedCode
it("computes session values properly", () => {
const sessionMock = {
getBet(): number {
return 10;
},
getWinningAmount(): number {
return 100;
}
} as unknown as IGameSession;
const model = new GameSessionSimulationModel(sessionMock);
expect(model.getTotalBetAmount()).toBe(0);
expect(model.getTotalReturnAmount()).toBe(0);
expect(model.getRtp()).toBe(0);
model.updateTotalBetBeforePlay();
model.updateTotalReturnAfterPlay();
expect(model.getTotalBetAmount()).toBe(sessionMock.getBet());
expect(model.getTotalReturnAmount()).toBe(sessionMock.getWinningAmount());
expect(model.getRtp()).toBe(model.getTotalReturnAmount() / model.getTotalBetAmount());
model.updateTotalBetBeforePlay();
model.updateTotalReturnAfterPlay();
expect(model.getTotalBetAmount()).toBe(sessionMock.getBet() * 2);
expect(model.getTotalReturnAmount()).toBe(sessionMock.getWinningAmount() * 2);
expect(model.getRtp()).toBe(model.getTotalReturnAmount() / model.getTotalBetAmount());
});
});