-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathif.js
82 lines (74 loc) · 2.8 KB
/
if.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
78
79
80
81
82
import describe from 'tape-bdd';
import transmute from 'transmutation';
describe('If Operators', (it) => {
it('extends if path exists', assert => transmute({ testing: { parameter: 'roar' } })
.if('testing.parameter',
transmute.extend({ ifTest: 'pass' })
)
.then(value => assert.deepEqual(value, {
ifTest: 'pass',
testing: {
parameter: 'roar',
},
}))
);
it('extends if multiple paths exists', assert => transmute({
testing: { parameter: 'roar' },
second: { path: 'stuff' },
})
.if(['testing.parameter', 'second.path'],
transmute.extend({ ifTest: 'pass' })
)
.then(value => assert.deepEqual(value, {
ifTest: 'pass',
testing: { parameter: 'roar' },
second: { path: 'stuff' },
}))
);
it('does not extend if path does not exist', assert => transmute({ testing: { parameter: 'roar' } })
.if('ifTest.parameter',
transmute.extend({ ifTest: 'fail' })
)
.then(value => assert.deepEqual(value, { testing: { parameter: 'roar' } }))
);
it('does not extend if one of multiple paths is missing', assert => transmute({ testing: { parameter: 'roar' } })
.if(['testing.parameter', 'second.path'],
transmute.extend({ ifTest: 'fail' })
)
.then(value => assert.deepEqual(value, { testing: { parameter: 'roar' } }))
);
it('extends if path does not exists', assert => transmute({ testing: { parameter: 'roar' } })
.ifNo('ifTest.parameter',
transmute.extend({ ifTest: 'pass' })
)
.then(value => assert.deepEqual(value, {
ifTest: 'pass',
testing: {
parameter: 'roar',
},
}))
);
it('extends all paths do not exist', assert => transmute({
testing: { parameter: 'roar' },
second: { path: 'stuff' },
})
.ifNo(['not.existing', 'no.existence'],
transmute.extend({ ifTest: 'pass' })
)
.then(value => assert.deepEqual(value, {
ifTest: 'pass',
testing: { parameter: 'roar' },
second: { path: 'stuff' },
}))
);
it('does not extend if path exists', assert => transmute({ testing: { parameter: 'roar' } })
.ifNo('testing.parameter',
transmute.extend({ ifTest: 'fail' })
)
.then(value => assert.deepEqual(value, { testing: { parameter: 'roar' } }))
);
it('does not extend if any path exists', assert => transmute({ testing: { parameter: 'roar' } })
.ifNo(['testing.parameter', 'no.existence'], transmute.extend({ ifTest: 'pass' }))
.then(value => assert.deepEqual(value, { testing: { parameter: 'roar' } }))
);
});