all files / common/models/colors/ colors.mocha.js

100% Statements 34/34
100% Branches 0/0
100% Functions 10/10
100% Lines 34/34
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                                                                                                                                                                       
"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]);
        });
    });
});