-
-
Notifications
You must be signed in to change notification settings - Fork 214
/
index.test.js
77 lines (62 loc) 路 2.17 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
import { contains, determinePropertyMessage, isJestMockOrSpy } from 'src/utils';
let equals;
try {
// eslint-disable-next-line import/no-unresolved
equals = require('@jest/expect-utils').equals;
} catch (error) {
if (error.code === 'MODULE_NOT_FOUND') {
// eslint-disable-next-line import/no-unresolved
equals = require('expect/build/jasmineUtils').equals;
} else {
throw error;
}
}
describe('Utils', () => {
describe('.contains', () => {
const fn = () => {};
const array = [1, 0, '', 'hello', false, true, undefined, null, NaN, fn, { foo: 'bar' }, ['foo']];
const testRows = array.map(item => [item]);
test.each(testRows)('returns true when array contains given value: %s', value => {
expect(contains(equals, array, value)).toBe(true);
});
test.each(testRows)('returns false when array does not contain given value: %s', value => {
expect(contains(equals, [], value)).toBe(false);
});
});
describe('.determinePropertyMessage', () => {
test("returns error message 'Not Accessible' if the value doesn't have a length property", () => {
const un = undefined;
expect(determinePropertyMessage(un, 'length')).toBe('Not Accessible');
});
{
const length = 5;
const arr = new Array(length).fill(0);
test('returns property when it has one', () => {
expect(determinePropertyMessage(arr, 'length')).toBe(length);
});
}
{
const arr = new Array();
test('returns property when it has a falsy one', () => {
expect(determinePropertyMessage(arr, 'length')).toBe(0);
});
}
{
const date = new Date();
const errorMessage = 'bob';
test('returns custom error message when it is passed one', () => {
expect(determinePropertyMessage(date, 'length', errorMessage)).toBe(errorMessage);
});
}
});
describe('.isJestMockOrSpy', () => {
test('returns true if value is a jest mock', () => {
const spy = jest.fn();
expect(isJestMockOrSpy(spy)).toBe(true);
});
test('returns false if value is not a jest mock', () => {
const fn = () => {};
expect(isJestMockOrSpy(fn)).toBe(false);
});
});
});