forked from formio/formio.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoperators.spec.js
124 lines (116 loc) · 3.9 KB
/
operators.spec.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import { expect } from 'chai';
import { jsonLogic } from '../utils';
describe('Lodash operators', () => {
describe('Arrays', () => {
});
describe('Collection', () => {
});
describe('Date', () => {
});
describe('Function', () => {
});
describe('Lang', () => {
it('isEqual', () => {
const logicTrue = { _isEqual: [[2, 3], [2, 3]] };
const logicFalse = { _isEqual: [[2, 3], [2, 4]] };
expect(jsonLogic.apply(logicTrue)).to.be.equal(true);
expect(jsonLogic.apply(logicFalse)).to.be.equal(false);
});
});
describe('Math', () => {
it('add', () => {
const logic = { _add: [2, 3] };
expect(jsonLogic.apply(logic)).to.be.equal(5);
});
it('ceil', () => {
const logic = { _ceil: [4.006] };
expect(jsonLogic.apply(logic)).to.be.equal(5);
});
it('divide', () => {
const logic = { _divide: [6, 3] };
expect(jsonLogic.apply(logic)).to.be.equal(2);
});
it('floor', () => {
const logic = { _floor: [4.906] };
expect(jsonLogic.apply(logic)).to.be.equal(4);
});
it('max', () => {
const logic = { _max: [[2, 5, 6, 3]] };
expect(jsonLogic.apply(logic)).to.be.equal(6);
});
it('maxBy', () => {
const data = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }];
const logic1 = { _maxBy: [{ 'var': '' }, 'n'] };
const logic2 = { _maxBy: [{ 'var': '' }, { _property: 'n' }] };
expect(jsonLogic.apply(logic1, data)).to.be.equal(data[2]);
expect(jsonLogic.apply(logic2, data)).to.be.equal(data[2]);
});
it('mean', () => {
const logic = { _mean: [[2, 5, 6, 3]] };
expect(jsonLogic.apply(logic)).to.be.equal(4);
});
it('meanBy', () => {
const data = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }];
const logic1 = { _meanBy: [{ 'var': '' }, 'n'] };
const logic2 = { _meanBy: [{ 'var': '' }, { _property: 'n' }] };
expect(jsonLogic.apply(logic1, data)).to.be.equal(5);
expect(jsonLogic.apply(logic2, data)).to.be.equal(5);
});
it('min', () => {
const logic = { _min: [[2, 5, 6, 3]] };
expect(jsonLogic.apply(logic)).to.be.equal(2);
});
it('minBy', () => {
const data = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }];
const logic1 = { _minBy: [{ 'var': '' }, 'n'] };
const logic2 = { _minBy: [{ 'var': '' }, { _property: 'n' }] };
expect(jsonLogic.apply(logic1, data)).to.be.equal(data[1]);
expect(jsonLogic.apply(logic2, data)).to.be.equal(data[1]);
});
it('multiply', () => {
const logic = { _multiply: [2, 3] };
expect(jsonLogic.apply(logic)).to.be.equal(6);
});
it('round', () => {
const logic1 = { _round: [4.006] };
const logic2 = { _round: [4.906] };
expect(jsonLogic.apply(logic1)).to.be.equal(4);
expect(jsonLogic.apply(logic2)).to.be.equal(5);
});
it('multiply', () => {
const logic = { _multiply: [2, 3] };
expect(jsonLogic.apply(logic)).to.be.equal(6);
});
it('subtract', () => {
const logic = { _subtract: [2, 3] };
expect(jsonLogic.apply(logic)).to.be.equal(-1);
});
it('sum', () => {
const logic = { _sum: [[2, 3]] };
expect(jsonLogic.apply(logic)).to.be.equal(5);
});
it('sumBy', () => {
const data = [{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }];
const logic1 = { _sumBy: [{ 'var': '' }, 'n'] };
const logic2 = { _sumBy: [{ 'var': '' }, { _property: 'n' }] };
expect(jsonLogic.apply(logic1, data)).to.be.equal(20);
expect(jsonLogic.apply(logic2, data)).to.be.equal(20);
});
});
describe('Number', () => {
});
describe('Object', () => {
});
describe('String', () => {
});
describe('Util', () => {
it('property', () => {
const data = [
{ 'a': { 'b': 2 } },
{ 'a': { 'b': 1 } }
];
const logic = { _sumBy: [{ 'var': '' }, { _property: 'a.b' }] };
expect(jsonLogic.apply(logic, data)).to.be.equal(3);
});
});
});