Skip to content

Commit ff113de

Browse files
committed
Replace mocha tests with jest
1 parent 309ac3c commit ff113de

File tree

9 files changed

+406
-411
lines changed

9 files changed

+406
-411
lines changed

src/added/index.spec.js

Lines changed: 0 additions & 86 deletions
This file was deleted.

src/added/index.test.js

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
import forEach from 'jest-each';
2+
3+
import addedDiff from './';
4+
5+
describe('.addedDiff', () => {
6+
7+
describe('base case', () => {
8+
describe('equal', () => {
9+
forEach([
10+
['int', 1],
11+
['string', 'a'],
12+
['boolean', true],
13+
['null', null],
14+
['undefined', undefined],
15+
['object', { a: 1 }],
16+
['array', [1]],
17+
['function', () => ({})],
18+
['date', new Date()],
19+
]).test('returns empty object when given values of type %s are equal', (type, value) => {
20+
expect(addedDiff(value, value)).toEqual({});
21+
});
22+
});
23+
24+
describe('not equal and not object', () => {
25+
forEach([
26+
[1, 2],
27+
['a', 'b'],
28+
[true, false],
29+
['hello', null],
30+
['hello', undefined],
31+
[null, undefined],
32+
[undefined, null],
33+
[null, { a: 1 }],
34+
['872983', { areaCode: '+44', number: '872983' }],
35+
[100, () => ({})],
36+
[() => ({}), 100],
37+
[new Date('2017-01-01'), new Date('2017-01-02')],
38+
]).test('returns empty object when values are not equal (%s, %s)', (lhs, rhs) => {
39+
expect(addedDiff(lhs, rhs)).toEqual({});
40+
});
41+
});
42+
});
43+
44+
describe('recursive case', () => {
45+
describe('object', () => {
46+
test('returns empty object when given objects are updated', () => {
47+
expect(addedDiff({ a: 1 }, { a: 2 })).toEqual({});
48+
});
49+
50+
test('returns empty object when right hand side has deletion', () => {
51+
expect(addedDiff({ a: 1, b: 2 }, { a: 1 })).toEqual({});
52+
});
53+
54+
test('returns subset of right hand side value when a key value has been added to the root', () => {
55+
expect(addedDiff({ a: 1 }, { a: 1, b: 2 })).toEqual({ b: 2 });
56+
});
57+
58+
test('returns subset of right hand side value when a key value has been added deeply', () => {
59+
expect(addedDiff({ a: { b: 1} }, { a: { b: 1, c: 2 } })).toEqual({ a: { c: 2 } });
60+
});
61+
62+
test('returns subset of right hand side with added date', () => {
63+
expect(addedDiff({}, { date: new Date('2016') })).toEqual({ date: new Date('2016') });
64+
});
65+
});
66+
67+
describe('arrays', () => {
68+
test('returns empty object when array is updated', () => {
69+
expect(addedDiff([1], [2])).toEqual({});
70+
});
71+
72+
test('returns empty object when right hand side array has deletions', () => {
73+
expect(addedDiff([1, 2, 3], [1, 3])).toEqual({});
74+
});
75+
76+
test('returns subset of right hand side array as object of indices to value when right hand side array has additions', () => {
77+
expect(addedDiff([1, 2, 3], [1, 2, 3, 9])).toEqual({ 3: 9 });
78+
});
79+
80+
test('returns subset of right hand side with added date', () => {
81+
expect(addedDiff([], [new Date('2016')])).toEqual({ 0: new Date('2016') });
82+
});
83+
});
84+
});
85+
});

src/deleted/index.spec.js

Lines changed: 0 additions & 86 deletions
This file was deleted.

src/deleted/index.test.js

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
import forEach from 'jest-each';
2+
3+
import deletedDiff from './';
4+
5+
describe('.deletedDiff', () => {
6+
7+
describe('base case', () => {
8+
describe('equal', () => {
9+
forEach([
10+
['int', 1],
11+
['string', 'a'],
12+
['boolean', true],
13+
['null', null],
14+
['undefined', undefined],
15+
['object', { a: 1 }],
16+
['array', [1]],
17+
['function', () => ({})],
18+
['date', new Date()],
19+
]).test('returns empty object when given values of type %s are equal', (type, value) => {
20+
expect(deletedDiff(value, value)).toEqual({});
21+
});
22+
});
23+
24+
describe('not equal and not object', () => {
25+
forEach([
26+
[1, 2],
27+
['a', 'b'],
28+
[true, false],
29+
['hello', null],
30+
['hello', undefined],
31+
[null, undefined],
32+
[undefined, null],
33+
[null, { a: 1 }],
34+
['872983', { areaCode: '+44', number: '872983' }],
35+
[100, () => ({})],
36+
[() => ({}), 100],
37+
[new Date('2017-01-01'), new Date('2017-01-02')],
38+
]).test('returns empty object when given values are unequal', (lhs, rhs) => {
39+
expect(deletedDiff(lhs, rhs)).toEqual({});
40+
});
41+
});
42+
});
43+
44+
describe('recursive case', () => {
45+
describe('object', () => {
46+
test('returns empty object when rhs has been updated', () => {
47+
expect(deletedDiff({ a: 1 }, { a: 2 })).toEqual({});
48+
});
49+
50+
test('returns empty object when right hand side has been added to', () => {
51+
expect(deletedDiff({ a: 1 }, { a: 1, b: 2 })).toEqual({});
52+
});
53+
54+
test('returns keys as undefined when deleted from right hand side root', () => {
55+
expect(deletedDiff({ a: 1, b: { c: 2 }}, { a: 1 })).toEqual({ b: undefined });
56+
});
57+
58+
test('returns keys as undefined when deeply deleted from right hand side', () => {
59+
expect(deletedDiff({ a: { b: 1 }, c: 2, d: { e: 100 } }, { a: { b: 1 }, c: 2, d: {} })).toEqual({ d: { e: undefined } });
60+
});
61+
62+
test('returns subset of right hand side with deleted date', () => {
63+
expect(deletedDiff({ date: new Date('2016') }, {})).toEqual({ date: undefined });
64+
});
65+
});
66+
67+
describe('arrays', () => {
68+
test('returns empty object when rhs array has been updated', () => {
69+
expect(deletedDiff([1], [2])).toEqual({});
70+
});
71+
72+
test('returns empty object when right hand side array has additions', () => {
73+
expect(deletedDiff([1, 2, 3], [1, 2, 3, 9])).toEqual({});
74+
});
75+
76+
test('returns subset of right hand side array as object of indices to value when right hand side array has deletions', () => {
77+
expect(deletedDiff([1, 2, 3], [1, 3])).toEqual({ 2: undefined });
78+
});
79+
80+
test('returns subset of right hand side with added date', () => {
81+
expect(deletedDiff([new Date('2016')], [])).toEqual({ 0: undefined });
82+
});
83+
});
84+
});
85+
});

0 commit comments

Comments
 (0)