Just going over some exercises so I can get more proficient at jest and I'm a little confused about something.
Here is the test subject:
function createRange(start, end) {
let range = [];
for (i = start; i <= end; i++) {
range.push(i);
}
return range;
}
function sumRange(start, end) {
const range = createRange(start, end);
let sum = 0;
range.forEach((el) => (sum += el));
return sum;
}
module.exports = createRange;
module.exports = sumRange;
And this is the test:
const sumRange = require('./sumRange');
const createRange = require('./sumRange');
describe('sumRange()', () => {
it('sums a given range', () => {
expect(sumRange(1, 3)).toEqual(6);
});
});
describe('createRange()', () => {
it('creates a range between given arguments 1-3', () => {
expect(createRange(1, 3)).toEqual([1, 2, 3]);
});
it('creates a range between given arguments 7-17', () => {
expect(createRange(7, 11)).toEqual([7, 8, 9, 10, 11]);
});
});
I first started testing the createRange function and tests were passing. Then moved on to the sumRange function. Once I started testing sumRange the createRange test started failing and were showing the results for sumRange. The results are below:
FAIL ./sumRange.spec.js sumRange()
? sums a given range (4 ms) createRange()
? creates a range between given arguments 1-3 (3 ms)
? creates a range between given arguments 7-17 (1 ms)
● createRange() ? creates a range between given arguments 1-3
expect(received).toEqual(expected) // deep equality
Expected: [1, 2, 3]
Received: 6
10 | describe('createRange()', () => {
11 | it('creates a range between given arguments 1-3', () => {
> 12 | expect(createRange(1, 3)).toEqual([1, 2, 3]);
| ^
13 | });
14 |
15 | it('creates a range between given arguments 7-17', () => {
at Object.it (ch4_DataStructures/sumRange.spec.js:12:35)
● createRange() ? creates a range between given arguments 7-17
expect(received).toEqual(expected) // deep equality
Expected: [7, 8, 9, 10, 11]
Received: 45
14 |
15 | it('creates a range between given arguments 7-17', () => {
> 16 | expect(createRange(7, 11)).toEqual([7, 8, 9, 10, 11]);
| ^
17 | });
18 | });
19 |
at Object.it (ch4_DataStructures/sumRange.spec.js:16:36)
Test Suites: 1 failed, 1 total Tests: 2 failed, 1 passed, 3
total Snapshots: 0 total Time: 0.856 s, estimated 1 s Ran all
test suites matching /sumRange.spec.js/i.