-
Notifications
You must be signed in to change notification settings - Fork 0
/
rollD20.test.ts
42 lines (35 loc) · 1.38 KB
/
rollD20.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { rollD20 } from './rollD20';
jest.mock('./rollDie', () => ({
rollDie: jest.fn().mockReturnValue(10),
}));
describe('rollD20', () => {
afterEach(() => {
jest.resetAllMocks()
})
it('should return a number within the expected range', () => {
const result = rollD20();
expect(result).toBeGreaterThanOrEqual(1);
expect(result).toBeLessThanOrEqual(20);
});
it(`should roll 2d20's and return the highest value`, () => {
const mockRollDie = require('./rollDie').rollDie;
mockRollDie.mockReturnValueOnce(20);
mockRollDie.mockReturnValueOnce(1);
const result = rollD20({ advantage: true });
expect(result).toBe(20);
});
it(`should roll 2d20's and return the lowest value`, () => {
const mockRollDie = require('./rollDie').rollDie;
mockRollDie.mockReturnValueOnce(20);
mockRollDie.mockReturnValueOnce(1);
const result = rollD20({ disadvantage: true });
expect(result).toBe(1);
});
it(`should return a number within the expected range when both advantage and disadvantage are true`, () => {
const mockRollDie = require('./rollDie').rollDie;
mockRollDie.mockReturnValueOnce(20);
mockRollDie.mockReturnValueOnce(1);
const result = rollD20({ advantage: true, disadvantage: true });
expect(result).toBe(20);
});
});