UNPKG

2.22 kBJavaScriptView Raw
1const test = require('tape');
2const {
3 asArray,
4 removeFromArray,
5 isPopulatedArray,
6 toggleItem,
7} = require('./array');
8
9const MAGIC_ANSWER = 42;
10
11test('asArray()', assert => {
12 {
13 const actual = asArray(MAGIC_ANSWER);
14 const expected = [MAGIC_ANSWER];
15 const message = 'wraps a value that is not an array in an array';
16
17 assert.deepEqual(actual, expected, message);
18 }
19 {
20 const expected = [MAGIC_ANSWER];
21 const actual = asArray(expected);
22 const message = 'passes through a value that is an array itself';
23
24 assert.equal(actual, expected, message);
25 }
26
27 assert.end();
28});
29
30test('removeFromArray()', assert => {
31 const actual = ['foo', 'bar', 'quux'];
32 const expected = ['foo', 'quux'];
33 const message = 'exports a `removeFromArray` function that';
34
35 removeFromArray(actual, 'bar');
36
37 assert.deepEqual(actual, expected, message);
38 assert.end();
39});
40
41test('isPopulatedArray()', assert => {
42 {
43 const actual = isPopulatedArray([]);
44 const expected = false;
45 const message =
46 'evaluates whether the value is an array and has at least one entry';
47
48 assert.equal(actual, expected, message);
49 }
50 {
51 const actual = isPopulatedArray(['a', 'b', 'c']);
52 const expected = true;
53 const message =
54 'evaluates whether the value is an array and has at least one entry';
55
56 assert.equal(actual, expected, message);
57 }
58 {
59 const actual = isPopulatedArray(MAGIC_ANSWER);
60 const expected = false;
61 const message =
62 'evaluates whether the value is an array and has at least one entry';
63
64 assert.equal(actual, expected, message);
65 }
66
67 assert.end();
68});
69
70test('toggleItem()', assert => {
71 {
72 const actual = toggleItem(['foo', 'bar', 'quux'], 'bar');
73 const expected = ['foo', 'quux'];
74 const message =
75 'returns array with the value removed when the value exist in the array';
76
77 assert.deepEqual(actual, expected, message);
78 }
79 {
80 const actual = toggleItem(['foo', 'bar', 'quux'], 'baz');
81 const expected = ['foo', 'bar', 'quux', 'baz'];
82 const message =
83 'returns array with the value added when the value does not exist in the array';
84
85 assert.deepEqual(actual, expected, message);
86 }
87
88 assert.end();
89});