-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstring.fizzbuzz.js
More file actions
42 lines (37 loc) · 1.3 KB
/
string.fizzbuzz.js
File metadata and controls
42 lines (37 loc) · 1.3 KB
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
/*
* @title: FizzBuzz
* @description: FizzBuzz possible solution
* @author: Thorsten Kober
* @email: [email protected]
*/
function fizzBuzz(n) {
for (let i = 1; i <= n; i++) {
console.log((i % 3 ? '' : 'fizz') + (i % 5 ? '' : 'buzz') || i);
}
}
// npx jest algorithms/string/string.fizzBuzz.js
beforeEach(() => {
jest.spyOn(console, 'log');
});
afterEach(() => {
console.log.mockRestore();
});
test('fizzbuzz()', () => {
fizzBuzz(15);
expect(console.log.mock.calls[0][0]).toEqual(1);
expect(console.log.mock.calls[1][0]).toEqual(2);
expect(console.log.mock.calls[2][0]).toEqual('fizz');
expect(console.log.mock.calls[3][0]).toEqual(4);
expect(console.log.mock.calls[4][0]).toEqual('buzz');
expect(console.log.mock.calls[5][0]).toEqual('fizz');
expect(console.log.mock.calls[6][0]).toEqual(7);
expect(console.log.mock.calls[7][0]).toEqual(8);
expect(console.log.mock.calls[8][0]).toEqual('fizz');
expect(console.log.mock.calls[9][0]).toEqual('buzz');
expect(console.log.mock.calls[10][0]).toEqual(11);
expect(console.log.mock.calls[11][0]).toEqual('fizz');
expect(console.log.mock.calls[12][0]).toEqual(13);
expect(console.log.mock.calls[13][0]).toEqual(14);
expect(console.log.mock.calls[14][0]).toEqual('fizzbuzz');
expect(console.log.mock.calls.length).toEqual(15);
});