|
1 | 1 | import { expect } from 'chai';
|
| 2 | +import forEach from 'mocha-each'; |
2 | 3 |
|
3 | 4 | import diff from './';
|
4 | 5 |
|
5 | 6 | describe('.diff', () => {
|
6 | 7 |
|
7 | 8 | describe('base case', () => {
|
8 | 9 | describe('equal', () => {
|
9 |
| - it('returns empty object when given ints are equal', () => { |
10 |
| - expect(diff(1, 1)).to.deep.equal({}); |
11 |
| - }); |
12 |
| - |
13 |
| - it('returns empty object when given strings are equal', () => { |
14 |
| - expect(diff('a', 'a')).to.deep.equal({}); |
15 |
| - }); |
16 |
| - |
17 |
| - it('returns empty object when given booleans are equal', () => { |
18 |
| - expect(diff(true, true)).to.deep.equal({}); |
19 |
| - }); |
20 |
| - |
21 |
| - it('returns empty object when given parameters are null', () => { |
22 |
| - expect(diff(null, null)).to.deep.equal({}); |
23 |
| - }); |
24 |
| - |
25 |
| - it('returns empty object when given parameters are undefined', () => { |
26 |
| - expect(diff(undefined, undefined)).to.deep.equal({}); |
27 |
| - }); |
28 |
| - |
29 |
| - it('returns empty object when given objects are equal', () => { |
30 |
| - expect(diff({ a: 1 }, { a: 1 })).to.deep.equal({}); |
31 |
| - }); |
32 |
| - |
33 |
| - it('returns empty object when given arrays are equal', () => { |
34 |
| - expect(diff([1], [1])).to.deep.equal({}); |
| 10 | + forEach([ |
| 11 | + ['int', 1], |
| 12 | + ['string', 'a'], |
| 13 | + ['boolean', true], |
| 14 | + ['null', null], |
| 15 | + ['undefined', undefined], |
| 16 | + ['object', { a: 1 }], |
| 17 | + ['array', [1]], |
| 18 | + ]).it('returns empty object when given values of type %s are equal', (type, value) => { |
| 19 | + expect(diff(value, value)).to.deep.equal({}); |
35 | 20 | });
|
36 | 21 | });
|
37 | 22 |
|
38 | 23 | describe('not equal and not object', () => {
|
39 |
| - it('returns right hand side value when given ints are different', () => { |
40 |
| - expect(diff(1, 2)).to.deep.equal(2); |
41 |
| - }); |
42 |
| - |
43 |
| - it('returns right hand side value when given strings are different', () => { |
44 |
| - expect(diff('a', 'b')).to.deep.equal('b'); |
45 |
| - }); |
46 |
| - |
47 |
| - it('returns right hand side value when given booleans are different', () => { |
48 |
| - expect(diff(true, false)).to.deep.equal(false); |
49 |
| - }); |
50 |
| - |
51 |
| - it('returns right hand side value when given values are not both null', () => { |
52 |
| - expect(diff('hello', null)).to.deep.equal(null); |
53 |
| - }); |
54 |
| - |
55 |
| - it('returns right hand side value when given values are not both undefined', () => { |
56 |
| - expect(diff('hello', undefined)).to.deep.equal(undefined); |
| 24 | + forEach([ |
| 25 | + [1, 2], |
| 26 | + ['a', 'b'], |
| 27 | + [true, false], |
| 28 | + ['hello', null], |
| 29 | + ['hello', undefined], |
| 30 | + [null, undefined], |
| 31 | + [undefined, null] |
| 32 | + ]).it('returns right hand side value when different to left hand side value (%s, %s)', (lhs, rhs) => { |
| 33 | + expect(diff(lhs, rhs)).to.deep.equal(rhs); |
57 | 34 | });
|
58 | 35 | });
|
59 | 36 | });
|
|
0 commit comments