virool-pivot
Version:
A web-based exploratory visualization UI for Druid.io
137 lines (116 loc) • 3.63 kB
text/typescript
import { expect } from 'chai';
import { testImmutableClass } from 'immutable-class/build/tester';
import { Colors, ColorsJS } from './colors';
describe('Colors', () => {
it('is an immutable class', () => {
testImmutableClass<ColorsJS>(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', () => {
describe('#fromLimit', () => {
it('works in basic case', () => {
var colors = Colors.fromLimit('country', 5);
expect(colors.toJS()).to.deep.equal({
dimension: 'country',
limit: 5
});
});
});
describe('#fromValues', () => {
it('works in basic case', () => {
var colors = Colors.fromValues('country', [null, 'Madagascar', 'UK', 'India', 'Russia']);
expect(colors.toJS()).to.deep.equal({
"dimension": "country",
"values": {
"0": 'Madagascar',
"1": "UK",
"2": "India",
"3": "Russia"
},
"hasNull": true
});
expect(colors.has(null), 'has null').to.equal(true);
expect(colors.has('South Africa'), 'no SA').to.equal(false);
colors = colors.add('South Africa');
expect(colors.has('South Africa')).to.equal(true);
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');
expect(colors.toJS()).to.deep.equal({
"dimension": "country",
"values": {
"0": "Madagascar",
"2": "India",
"3": "Russia",
"4": "South Africa"
},
"hasNull": true
});
colors = colors.add('Australia');
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");
expect(colors.equals(colorsWithGap)).to.equal(false);
expect(colorsWithGap.equals(colors)).to.equal(false);
});
});
});
describe('#getColors', () => {
it('works in basic case (with null)', () => {
var colors = Colors.fromValues('country', [null, 'UK', 'India', 'Russia', 'Madagascar']);
expect(colors.getColors(['UK', null, 'lol'])).to.deep.equal(['#2D95CA', '#666666', null]);
});
it('works in basic case (no null)', () => {
var colors = Colors.fromValues('country', ['Null Island', 'UK', 'India', 'Russia', 'Madagascar']);
expect(colors.getColors(['UK', null, 'lol'])).to.deep.equal(['#EFB925', null, null]);
});
});
});