1 | const test = require('tape');
|
2 | const {
|
3 | asArray,
|
4 | removeFromArray,
|
5 | isPopulatedArray,
|
6 | toggleItem,
|
7 | } = require('./array');
|
8 |
|
9 | const MAGIC_ANSWER = 42;
|
10 |
|
11 | test('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 |
|
30 | test('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 |
|
41 | test('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 |
|
70 | test('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 | });
|