From b3c89b4d3258b9078c46fa7452e7e25cf7ad6c6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20R=C3=BCmpelein?= Date: Wed, 30 Dec 2020 23:03:08 +0100 Subject: [PATCH] Add missing cases for test <20. --- spec/support/ds4rolls.spec.ts | 54 +++++++++++++++++++++++++++++++ src/module/rolls/roll-executor.ts | 2 +- 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/spec/support/ds4rolls.spec.ts b/spec/support/ds4rolls.spec.ts index be0f7147..c351c165 100644 --- a/spec/support/ds4rolls.spec.ts +++ b/spec/support/ds4rolls.spec.ts @@ -61,4 +61,58 @@ describe("DS4 Rolls", () => { new RollResult(0, RollResultStatus.CRITICAL_FAILURE, [20]), ); }); + + it("Should do a proper crit success with changed bounds, lower bound", () => { + const rollProvider: RollProvider = jasmine.createSpyObj("rollProvider", ["getNextRoll"]); + + rollProvider.getNextRoll = jasmine.createSpy("getNextRoll").and.returnValue(1); + expect(rollCheckSingleDie(4, { maxCritSucc: 2, minCritFail: 19 }, rollProvider)).toEqual( + new RollResult(4, RollResultStatus.CRITICAL_SUCCESS, [1]), + ); + }); + + it("Should do a proper crit success with changed bounds, upper bound", () => { + const rollProvider: RollProvider = jasmine.createSpyObj("rollProvider", ["getNextRoll"]); + + rollProvider.getNextRoll = jasmine.createSpy("getNextRoll").and.returnValue(2); + expect(rollCheckSingleDie(4, { maxCritSucc: 2, minCritFail: 19 }, rollProvider)).toEqual( + new RollResult(4, RollResultStatus.CRITICAL_SUCCESS, [2]), + ); + }); + + it("Should do a proper success with changed bounds, lower bound", () => { + const rollProvider: RollProvider = jasmine.createSpyObj("rollProvider", ["getNextRoll"]); + + rollProvider.getNextRoll = jasmine.createSpy("getNextRoll").and.returnValue(3); + expect(rollCheckSingleDie(4, { maxCritSucc: 2, minCritFail: 19 }, rollProvider)).toEqual( + new RollResult(3, RollResultStatus.SUCCESS, [3]), + ); + }); + + it("Should do a proper success with changed bounds, lower bound", () => { + const rollProvider: RollProvider = jasmine.createSpyObj("rollProvider", ["getNextRoll"]); + + rollProvider.getNextRoll = jasmine.createSpy("getNextRoll").and.returnValue(18); + expect(rollCheckSingleDie(4, { maxCritSucc: 2, minCritFail: 19 }, rollProvider)).toEqual( + new RollResult(0, RollResultStatus.FAILURE, [18]), + ); + }); + + it("Should do a proper crit fail with changed bounds, lower bound", () => { + const rollProvider: RollProvider = jasmine.createSpyObj("rollProvider", ["getNextRoll"]); + + rollProvider.getNextRoll = jasmine.createSpy("getNextRoll").and.returnValue(19); + expect(rollCheckSingleDie(4, { maxCritSucc: 2, minCritFail: 19 }, rollProvider)).toEqual( + new RollResult(0, RollResultStatus.CRITICAL_FAILURE, [19]), + ); + }); + + it("Should do a proper crit fail with changed bounds, upper bound", () => { + const rollProvider: RollProvider = jasmine.createSpyObj("rollProvider", ["getNextRoll"]); + + rollProvider.getNextRoll = jasmine.createSpy("getNextRoll").and.returnValue(20); + expect(rollCheckSingleDie(4, { maxCritSucc: 2, minCritFail: 19 }, rollProvider)).toEqual( + new RollResult(0, RollResultStatus.CRITICAL_FAILURE, [20]), + ); + }); }); diff --git a/src/module/rolls/roll-executor.ts b/src/module/rolls/roll-executor.ts index 1cf680f6..a4b67e32 100644 --- a/src/module/rolls/roll-executor.ts +++ b/src/module/rolls/roll-executor.ts @@ -75,7 +75,7 @@ function rollCheckMultipleDice(testValue: number, rollOptions: RollOptions): Rol } export class RollOptions { - constructor(public minCritFail: number = 20, public maxCritSucc: number = 1) {} + constructor(public maxCritSucc: number = 1, public minCritFail: number = 20) {} } export class RollResult {