forked from angus-c/just
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
64 lines (58 loc) · 1.79 KB
/
Copy pathindex.js
File metadata and controls
64 lines (58 loc) · 1.79 KB
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
var test = require('../util/test')(__filename);
var insert = require('../../packages/array-insert');
test('adds array elements at given index', function(t) {
t.plan(2);
var arr1 = [1, 2, 3, 4, 5, 6];
var arr2 = ['a', 'b', 'c'];
t.deepEqual(insert(arr1, arr2, 0), ['a', 'b', 'c', 1, 2, 3, 4, 5, 6]);
t.deepEqual(insert(arr1, arr2, 2), [1, 2, 'a', 'b', 'c', 3, 4, 5, 6]);
t.end();
});
test('adds array elements at start if no index supplied', function(t) {
t.plan(1);
var arr1 = [1, 2, 3, 4, 5, 6];
var arr2 = ['a', 'b', 'c'];
t.deepEqual(insert(arr1, arr2), ['a', 'b', 'c', 1, 2, 3, 4, 5, 6]);
t.end();
});
test('adds array elements at end if index too big', function(t) {
t.plan(1);
var arr1 = [1, 2, 3, 4, 5, 6];
var arr2 = ['a', 'b', 'c'];
t.deepEqual(insert(arr1, arr2, 99), [1, 2, 3, 4, 5, 6, 'a', 'b', 'c']);
t.end();
});
test('adds non array values at given index', function(t) {
t.plan(3);
var arr1 = [1, 2, 3, 4, 5, 6];
t.deepEqual(insert(arr1, 2.5, 2), [1, 2, 2.5, 3, 4, 5, 6]);
t.deepEqual(insert(arr1, {a: 4}, 2), [1, 2, {a: 4}, 3, 4, 5, 6]);
t.deepEqual(insert(arr1, 'x'), ['x', 1, 2, 3, 4, 5, 6]);
t.end();
});
test('throws if first argument is not an array', function(t) {
t.plan(3);
t.throws(function() {
insert(undefined, [1, 2, 3, 4, 5], 4);
});
t.throws(function() {
insert(null, [1, 2, 3, 4, 5], 3);
});
t.throws(function() {
insert({}, [1, 2, 3], 'x');
});
t.end();
});
test('throws if third argument is present and not a number', function(t) {
t.plan(3);
t.throws(function() {
insert([1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5], '4');
});
t.throws(function() {
insert([1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5], {});
});
t.throws(function() {
insert([1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5], undefined);
});
t.end();
});