| 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 |
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
| "use strict";
var chai_1 = require('chai');
var tester_1 = require('immutable-class/build/tester');
var colors_1 = require('./colors');
describe('Colors', function () {
it('is an immutable class', function () {
tester_1.testImmutableClass(colors_1.Colors, [
{
dimension: 'country',
limit: 5
},
{
dimension: 'country',
values: { '1': 'USA', '3': 'UK', '7': 'India' }
},
{
dimension: 'country',
values: { '3': 'UK', '7': 'India' },
hasNull: true
},
{
dimension: 'country',
values: { '3': 100, '7': 200 },
hasNull: true
},
{
dimension: 'country',
values: { '1': 'USA', '3': 'UK', '8': 'India' }
},
{
dimension: 'country',
values: { '0': 'USA', '1': 'UK', '2': 'India' }
},
{
dimension: 'country',
values: { '0': 'USA', '1': 'UK', '3': 'India' }
}
]);
});
describe('methods', function () {
describe('#fromLimit', function () {
it('works in basic case', function () {
var colors = colors_1.Colors.fromLimit('country', 5);
chai_1.expect(colors.toJS()).to.deep.equal({
dimension: 'country',
limit: 5
});
});
});
describe('#fromValues', function () {
it('works in basic case', function () {
var colors = colors_1.Colors.fromValues('country', [null, 'Madagascar', 'UK', 'India', 'Russia']);
chai_1.expect(colors.toJS()).to.deep.equal({
"dimension": "country",
"values": {
"0": 'Madagascar',
"1": "UK",
"2": "India",
"3": "Russia"
},
"hasNull": true
});
chai_1.expect(colors.has(null), 'has null').to.equal(true);
chai_1.expect(colors.has('South Africa'), 'no SA').to.equal(false);
colors = colors.add('South Africa');
chai_1.expect(colors.has('South Africa')).to.equal(true);
chai_1.expect(colors.toJS()).to.deep.equal({
"dimension": "country",
"values": {
"0": "Madagascar",
"1": "UK",
"2": "India",
"3": "Russia",
"4": "South Africa"
},
"hasNull": true
});
colors = colors.remove('UK');
chai_1.expect(colors.toJS()).to.deep.equal({
"dimension": "country",
"values": {
"0": "Madagascar",
"2": "India",
"3": "Russia",
"4": "South Africa"
},
"hasNull": true
});
colors = colors.add('Australia');
chai_1.expect(colors.toJS()).to.deep.equal({
"dimension": "country",
"values": {
"0": "Madagascar",
"1": "Australia",
"2": "India",
"3": "Russia",
"4": "South Africa"
},
"hasNull": true
});
var colorsWithGap = colors.remove("Australia");
chai_1.expect(colors.equals(colorsWithGap)).to.equal(false);
chai_1.expect(colorsWithGap.equals(colors)).to.equal(false);
});
});
});
describe('#getColors', function () {
it('works in basic case (with null)', function () {
var colors = colors_1.Colors.fromValues('country', [null, 'UK', 'India', 'Russia', 'Madagascar']);
chai_1.expect(colors.getColors(['UK', null, 'lol'])).to.deep.equal(['#2D95CA', '#666666', null]);
});
it('works in basic case (no null)', function () {
var colors = colors_1.Colors.fromValues('country', ['Null Island', 'UK', 'India', 'Russia', 'Madagascar']);
chai_1.expect(colors.getColors(['UK', null, 'lol'])).to.deep.equal(['#EFB925', null, null]);
});
});
});
|