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

100% Statements 25/25
100% Branches 0/0
100% Functions 5/5
100% Lines 25/25
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                                                                                                                                                         
"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: { '1': null, '3': 'UK', '7': 'India' }
            },
            {
                dimension: 'country',
                values: { '1': null, '3': 100, '7': 200 }
            },
            {
                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 () {
        it('#fromLimit', function () {
            var colors = colors_1.Colors.fromLimit('country', 5);
            chai_1.expect(colors.toJS()).to.deep.equal({
                dimension: 'country',
                limit: 5
            });
        });
        it('#fromValues', function () {
            var colors = colors_1.Colors.fromValues('country', [null, 'UK', 'India', 'Russia', 'Madagascar']);
            chai_1.expect(colors.toJS()).to.deep.equal({
                "dimension": "country",
                "values": {
                    "0": null,
                    "1": "UK",
                    "2": "India",
                    "3": "Russia",
                    "4": "Madagascar"
                }
            });
            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": null,
                    "1": "UK",
                    "2": "India",
                    "3": "Russia",
                    "4": "Madagascar",
                    "5": "South Africa"
                }
            });
            colors = colors.remove('UK');
            chai_1.expect(colors.toJS()).to.deep.equal({
                "dimension": "country",
                "values": {
                    "0": null,
                    "2": "India",
                    "3": "Russia",
                    "4": "Madagascar",
                    "5": "South Africa"
                }
            });
            colors = colors.add('Australia');
            chai_1.expect(colors.toJS()).to.deep.equal({
                "dimension": "country",
                "values": {
                    "0": null,
                    "1": "Australia",
                    "2": "India",
                    "3": "Russia",
                    "4": "Madagascar",
                    "5": "South Africa"
                }
            });
            var colorsWithGap = colors.remove("Australia");
            chai_1.expect(colors.equals(colorsWithGap)).to.equal(false);
            chai_1.expect(colorsWithGap.equals(colors)).to.equal(false);
        });
    });
});