forked from bloominstituteoftechnology/node-testing1-project
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.test.js
104 lines (97 loc) · 3.02 KB
/
index.test.js
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
const utils = require('./index')
describe('[Exercise 1] trimProperties', () => {
it('[1] returns an object with the properties trimmed', () => {
// EXAMPLE
const input = { foo: ' foo ', bar: 'bar ', baz: ' baz' }
const expected = { foo: 'foo', bar: 'bar', baz: 'baz' }
const actual = utils.trimProperties(input)
expect(actual).toEqual(expected)
})
it('[2] returns a copy, leaving the original object intact', () => {
// ✨ test away
})
})
describe('[Exercise 2] trimPropertiesMutation', () => {
it('[3] returns an object with the properties trimmed', () => {
// ✨ test away
})
it('[4] the object returned is the exact same one we passed in', () => {
// ✨ test away
})
})
describe('[Exercise 3] findLargestInteger', () => {
it('[5] returns the largest number in an array of numbers', () => {
// ✨ test away
})
})
describe('[Exercise 4] Counter', () => {
let counter
beforeEach(() => {
counter = new utils.Counter(3) // each test must start with a fresh couter
})
it('[6] the FIRST CALL of counter.countDown returns the initial count', () => {
// ✨ test away
})
it('[7] the SECOND CALL of counter.countDown returns the initial count minus one', () => {
// ✨ test away
})
it('[8] the count eventually reaches zero but does not go below zero', () => {
// ✨ test away
})
})
describe('[Exercise 5] Seasons', () => {
let seasons
beforeEach(() => {
seasons = new utils.Seasons() // each test must start with fresh seasons
})
it('[9] the FIRST call of seasons.next returns "summer"', () => {
// ✨ test away
})
it('[10] the SECOND call of seasons.next returns "fall"', () => {
// ✨ test away
})
it('[11] the THIRD call of seasons.next returns "winter"', () => {
// ✨ test away
})
it('[12] the FOURTH call of seasons.next returns "spring"', () => {
// ✨ test away
})
it('[13] the FIFTH call of seasons.next returns again "summer"', () => {
// ✨ test away
})
it('[14] the 40th call of seasons.next returns "spring"', () => {
// ✨ test away
})
})
describe('[Exercise 6] Car', () => {
let focus
beforeEach(() => {
focus = new utils.Car('focus', 20, 30) // each test must start with a fresh car
})
it('[15] driving the car returns the updated odometer', () => {
// ✨ test away
})
it('[16] driving the car uses gas', () => {
// ✨ test away
})
it('[17] refueling allows to keep driving', () => {
// ✨ test away
})
it('[18] adding fuel to a full tank has no effect', () => {
// ✨ test away
})
})
describe('[Exercise 7] isEvenNumberAsync', () => {
it('[19] resolves true if passed an even number', () => {
// ✨ test away
})
it('[20] resolves false if passed an odd number', () => {
// ✨ test away
})
it('[21] rejects an error with the message "number must be a number" if passed a non-number type', () => {
// ✨ test away
})
it('[22] rejects an error with the message "number must be a number" if passed NaN', () => {
// ✨ test away
})
})