From: Zach Panzarino Date: Thu, 28 Apr 2016 22:30:19 +0000 (+0000) Subject: Change spaces to tabs in line tests X-Git-Tag: 2.1.0~13^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F2411%2Fhead;p=thirdparty%2FChart.js.git Change spaces to tabs in line tests --- diff --git a/test/controller.line.tests.js b/test/controller.line.tests.js index b17bedf53..6172f444f 100644 --- a/test/controller.line.tests.js +++ b/test/controller.line.tests.js @@ -1,175 +1,175 @@ // Test the line controller describe('Line controller tests', function() { - - beforeEach(function() { + + beforeEach(function() { window.addDefaultMatchers(jasmine); }); afterEach(function() { window.releaseAllCharts(); }); - - it('should be constructed', function() { - var chart = window.acquireChart({ - type: 'line', - data: { - datasets: [{ - data: [] - }], - labels: [] - } - }); - - var meta = chart.getDatasetMeta(0); - expect(meta.type).toBe('line'); - expect(meta.controller).not.toBe(undefined); - expect(meta.controller.index).toBe(0); - expect(meta.data).toEqual([]); - - meta.controller.updateIndex(1); - expect(meta.controller.index).toBe(1); - }); - - it('Should use the first scale IDs if the dataset does not specify them', function() { - var chart = window.acquireChart({ - type: 'line', - data: { - datasets: [{ - data: [] - }], - labels: [] - }, - options: { - scales: { - xAxes: [{ - id: 'firstXScaleID' - }], - yAxes: [{ - id: 'firstYScaleID' - }] - } - } - }); - - var meta = chart.getDatasetMeta(0); - expect(meta.xAxisID).toBe('firstXScaleID'); - expect(meta.yAxisID).toBe('firstYScaleID'); - }); - - it('Should create line elements and point elements for each data item during initialization', function() { - var chart = window.acquireChart({ - type: 'line', - data: { - datasets: [{ - data: [10, 15, 0, -4], - label: 'dataset1' - }], - labels: ['label1', 'label2', 'label3', 'label4'] - } - }); - - var meta = chart.getDatasetMeta(0); - expect(meta.data.length).toBe(4); // 4 points created - expect(meta.data[0] instanceof Chart.elements.Point).toBe(true); - expect(meta.data[1] instanceof Chart.elements.Point).toBe(true); + + it('should be constructed', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + datasets: [{ + data: [] + }], + labels: [] + } + }); + + var meta = chart.getDatasetMeta(0); + expect(meta.type).toBe('line'); + expect(meta.controller).not.toBe(undefined); + expect(meta.controller.index).toBe(0); + expect(meta.data).toEqual([]); + + meta.controller.updateIndex(1); + expect(meta.controller.index).toBe(1); + }); + + it('Should use the first scale IDs if the dataset does not specify them', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + datasets: [{ + data: [] + }], + labels: [] + }, + options: { + scales: { + xAxes: [{ + id: 'firstXScaleID' + }], + yAxes: [{ + id: 'firstYScaleID' + }] + } + } + }); + + var meta = chart.getDatasetMeta(0); + expect(meta.xAxisID).toBe('firstXScaleID'); + expect(meta.yAxisID).toBe('firstYScaleID'); + }); + + it('Should create line elements and point elements for each data item during initialization', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + datasets: [{ + data: [10, 15, 0, -4], + label: 'dataset1' + }], + labels: ['label1', 'label2', 'label3', 'label4'] + } + }); + + var meta = chart.getDatasetMeta(0); + expect(meta.data.length).toBe(4); // 4 points created + expect(meta.data[0] instanceof Chart.elements.Point).toBe(true); + expect(meta.data[1] instanceof Chart.elements.Point).toBe(true); expect(meta.data[2] instanceof Chart.elements.Point).toBe(true); expect(meta.data[3] instanceof Chart.elements.Point).toBe(true); - expect(meta.dataset instanceof Chart.elements.Line).toBe(true); // 1 line element - }); - - it('should draw all elements', function() { - var chart = window.acquireChart({ - type: 'line', - data: { - datasets: [{ - data: [10, 15, 0, -4], - label: 'dataset1' - }], - labels: ['label1', 'label2', 'label3', 'label4'] - }, - options: { - showLines: true - } - }); - - var meta = chart.getDatasetMeta(0); - spyOn(meta.dataset, 'draw'); - spyOn(meta.data[0], 'draw'); + expect(meta.dataset instanceof Chart.elements.Line).toBe(true); // 1 line element + }); + + it('should draw all elements', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + datasets: [{ + data: [10, 15, 0, -4], + label: 'dataset1' + }], + labels: ['label1', 'label2', 'label3', 'label4'] + }, + options: { + showLines: true + } + }); + + var meta = chart.getDatasetMeta(0); + spyOn(meta.dataset, 'draw'); + spyOn(meta.data[0], 'draw'); spyOn(meta.data[1], 'draw'); spyOn(meta.data[2], 'draw'); spyOn(meta.data[3], 'draw'); - chart.update(); + chart.update(); - expect(meta.data[0].draw.calls.count()).toBe(1); + expect(meta.data[0].draw.calls.count()).toBe(1); expect(meta.data[1].draw.calls.count()).toBe(1); expect(meta.data[2].draw.calls.count()).toBe(1); expect(meta.data[3].draw.calls.count()).toBe(1); - }); - - it('should draw all elements except lines', function() { - var chart = window.acquireChart({ - type: 'line', - data: { - datasets: [{ - data: [10, 15, 0, -4], - label: 'dataset1' - }], - labels: ['label1', 'label2', 'label3', 'label4'] - }, - options: { - showLines: false - } - }); - - var meta = chart.getDatasetMeta(0); - spyOn(meta.dataset, 'draw'); - spyOn(meta.data[0], 'draw'); + }); + + it('should draw all elements except lines', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + datasets: [{ + data: [10, 15, 0, -4], + label: 'dataset1' + }], + labels: ['label1', 'label2', 'label3', 'label4'] + }, + options: { + showLines: false + } + }); + + var meta = chart.getDatasetMeta(0); + spyOn(meta.dataset, 'draw'); + spyOn(meta.data[0], 'draw'); spyOn(meta.data[1], 'draw'); spyOn(meta.data[2], 'draw'); spyOn(meta.data[3], 'draw'); - chart.update(); - - expect(meta.dataset.draw.calls.count()).toBe(0); - expect(meta.data[0].draw.calls.count()).toBe(1); + chart.update(); + + expect(meta.dataset.draw.calls.count()).toBe(0); + expect(meta.data[0].draw.calls.count()).toBe(1); expect(meta.data[1].draw.calls.count()).toBe(1); expect(meta.data[2].draw.calls.count()).toBe(1); expect(meta.data[3].draw.calls.count()).toBe(1); - }); - - it('should update elements when modifying data', function() { - var chart = window.acquireChart({ - type: 'line', - data: { - datasets: [{ - data: [10, 15, 0, -4], - label: 'dataset', - xAxisID: 'firstXScaleID', - yAxisID: 'firstYScaleID' - }], - labels: ['label1', 'label2', 'label3', 'label4'] - }, - options: { - showLines: true, - elements: { - point: { - backgroundColor: 'red', - borderColor: 'blue', - } - }, - scales: { - xAxes: [{ - id: 'firstXScaleID' - }], - yAxes: [{ - id: 'firstYScaleID' - }] - } - }, - }); - - var meta = chart.getDatasetMeta(0); + }); + + it('should update elements when modifying data', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + datasets: [{ + data: [10, 15, 0, -4], + label: 'dataset', + xAxisID: 'firstXScaleID', + yAxisID: 'firstYScaleID' + }], + labels: ['label1', 'label2', 'label3', 'label4'] + }, + options: { + showLines: true, + elements: { + point: { + backgroundColor: 'red', + borderColor: 'blue', + } + }, + scales: { + xAxes: [{ + id: 'firstXScaleID' + }], + yAxes: [{ + id: 'firstYScaleID' + }] + } + }, + }); + + var meta = chart.getDatasetMeta(0); expect(meta.data.length).toBe(4); chart.data.datasets[0].data = [1, 2]; // remove 2 items @@ -198,31 +198,31 @@ describe('Line controller tests', function() { chart.update(); expect(meta.data.length).toBe(3); // should add a new meta data item - }); + }); - it('should update elements when the y scale is stacked', function() { - var chart = window.acquireChart({ - type: 'line', - data: { - datasets: [{ + it('should update elements when the y scale is stacked', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + datasets: [{ data: [10, -10, 10, -10], label: 'dataset1' }, { data: [10, 15, 0, -4], label: 'dataset2' }], - labels: ['label1', 'label2', 'label3', 'label4'] - }, - options: { + labels: ['label1', 'label2', 'label3', 'label4'] + }, + options: { scales: { yAxes: [{ stacked: true }] } } - }); - - var meta0 = chart.getDatasetMeta(0); + }); + + var meta0 = chart.getDatasetMeta(0); [ { x: 38, y: 161 }, { x: 189, y: 419 }, @@ -243,251 +243,251 @@ describe('Line controller tests', function() { expect(meta1.data[i]._model.x).toBeCloseToPixel(values.x); expect(meta1.data[i]._model.y).toBeCloseToPixel(values.y); }); - - }); - - it('should find the correct scale zero when the data is all positive', function() { - var chart = window.acquireChart({ - type: 'line', - data: { - datasets: [{ - data: [10, 15, 20, 20], - label: 'dataset1', - }], - labels: ['label1', 'label2', 'label3', 'label4'] - }, - }); - - var meta = chart.getDatasetMeta(0); - - expect(meta.dataset._model).toEqual(jasmine.objectContaining({ - scaleTop: 32, - scaleBottom: 484, - scaleZero: 484, - })); - }); - - it('should find the correct scale zero when the data is all negative', function() { - var chart = window.acquireChart({ - type: 'line', - data: { - datasets: [{ - data: [-10, -15, -20, -20], - label: 'dataset1', - }], - labels: ['label1', 'label2', 'label3', 'label4'] - }, - }); - - var meta = chart.getDatasetMeta(0); - - expect(meta.dataset._model).toEqual(jasmine.objectContaining({ - scaleTop: 32, - scaleBottom: 484, - scaleZero: 32, - })); - }); - - it('should fall back to the line styles for points', function() { - var chart = window.acquireChart({ - type: 'line', - data: { - datasets: [{ - data: [0, 0], - label: 'dataset1', - - // line styles - backgroundColor: 'rgb(98, 98, 98)', - borderColor: 'rgb(8, 8, 8)', - borderWidth: 0.55, - }], - labels: ['label1', 'label2'] - } - }); - - var meta = chart.getDatasetMeta(0); - - expect(meta.dataset._model.backgroundColor).toBe('rgb(98, 98, 98)'); - expect(meta.dataset._model.borderColor).toBe('rgb(8, 8, 8)'); - expect(meta.dataset._model.borderWidth).toBe(0.55); - }); - - it('should handle number of data point changes in update', function() { - var chart = window.acquireChart({ - type: 'line', - data: { - datasets: [{ - data: [10, 15, 0, -4], - label: 'dataset1', - }], - labels: ['label1', 'label2', 'label3', 'label4'] - } - }); - - var meta = chart.getDatasetMeta(0); - - chart.data.datasets[0].data = [1, 2]; // remove 2 items - chart.update(); - expect(meta.data.length).toBe(2); - expect(meta.data[0] instanceof Chart.elements.Point).toBe(true); - expect(meta.data[1] instanceof Chart.elements.Point).toBe(true); - - chart.data.datasets[0].data = [1, 2, 3, 4, 5]; // add 3 items - chart.update(); - expect(meta.data.length).toBe(5); - expect(meta.data[0] instanceof Chart.elements.Point).toBe(true); - expect(meta.data[1] instanceof Chart.elements.Point).toBe(true); - expect(meta.data[2] instanceof Chart.elements.Point).toBe(true); - expect(meta.data[3] instanceof Chart.elements.Point).toBe(true); - expect(meta.data[4] instanceof Chart.elements.Point).toBe(true); - }); - - it('should set point hover styles', function() { - var chart = window.acquireChart({ - type: 'line', - data: { - datasets: [{ - data: [10, 15, 0, -4], - label: 'dataset1', - }], - labels: ['label1', 'label2', 'label3', 'label4'] - }, - options: { - elements: { - point: { - backgroundColor: 'rgb(255, 255, 0)', - borderWidth: 1, - borderColor: 'rgb(255, 255, 255)', - hitRadius: 1, - hoverRadius: 4, - hoverBorderWidth: 1, - radius: 3, - } - } - } - }); - - var meta = chart.getDatasetMeta(0); - var point = meta.data[0]; - - meta.controller.setHoverStyle(point); - expect(point._model.backgroundColor).toBe('rgb(229, 230, 0)'); - expect(point._model.borderColor).toBe('rgb(230, 230, 230)'); - expect(point._model.borderWidth).toBe(1); - expect(point._model.radius).toBe(4); - - // Can set hover style per dataset - chart.data.datasets[0].pointHoverRadius = 3.3; - chart.data.datasets[0].pointHoverBackgroundColor = 'rgb(77, 79, 81)'; - chart.data.datasets[0].pointHoverBorderColor = 'rgb(123, 125, 127)'; - chart.data.datasets[0].pointHoverBorderWidth = 2.1; - - meta.controller.setHoverStyle(point); - expect(point._model.backgroundColor).toBe('rgb(77, 79, 81)'); - expect(point._model.borderColor).toBe('rgb(123, 125, 127)'); - expect(point._model.borderWidth).toBe(2.1); - expect(point._model.radius).toBe(3.3); - - // Use the consistent name "pointRadius", setting but overwriting - // another value in "radius" - chart.data.datasets[0].pointRadius = 250; - chart.data.datasets[0].radius = 20; - - meta.controller.setHoverStyle(point); - expect(point._model.backgroundColor).toBe('rgb(77, 79, 81)'); - expect(point._model.borderColor).toBe('rgb(123, 125, 127)'); - expect(point._model.borderWidth).toBe(2.1); - expect(point._model.radius).toBe(3.3); - - // Custom style - point.custom = { - hoverRadius: 4.4, - hoverBorderWidth: 5.5, - hoverBackgroundColor: 'rgb(0, 0, 0)', - hoverBorderColor: 'rgb(10, 10, 10)' - }; - - meta.controller.setHoverStyle(point); - expect(point._model.backgroundColor).toBe('rgb(0, 0, 0)'); - expect(point._model.borderColor).toBe('rgb(10, 10, 10)'); - expect(point._model.borderWidth).toBe(5.5); - expect(point._model.radius).toBe(4.4); - }); - - it('should remove hover styles', function() { - var chart = window.acquireChart({ - type: 'line', - data: { - datasets: [{ - data: [10, 15, 0, -4], - label: 'dataset1', - }], - labels: ['label1', 'label2', 'label3', 'label4'] - }, - options: { - elements: { - point: { - backgroundColor: 'rgb(255, 255, 0)', - borderWidth: 1, - borderColor: 'rgb(255, 255, 255)', - hitRadius: 1, - hoverRadius: 4, - hoverBorderWidth: 1, - radius: 3, - } - } - } - }); - - var meta = chart.getDatasetMeta(0); - var point = meta.data[0]; - - chart.options.elements.point.backgroundColor = 'rgb(45, 46, 47)'; - chart.options.elements.point.borderColor = 'rgb(50, 51, 52)'; - chart.options.elements.point.borderWidth = 10.1; - chart.options.elements.point.radius = 1.01; - - meta.controller.removeHoverStyle(point); - expect(point._model.backgroundColor).toBe('rgb(45, 46, 47)'); - expect(point._model.borderColor).toBe('rgb(50, 51, 52)'); - expect(point._model.borderWidth).toBe(10.1); - expect(point._model.radius).toBe(1.01); - - // Can set hover style per dataset - chart.data.datasets[0].radius = 3.3; - chart.data.datasets[0].pointBackgroundColor = 'rgb(77, 79, 81)'; - chart.data.datasets[0].pointBorderColor = 'rgb(123, 125, 127)'; - chart.data.datasets[0].pointBorderWidth = 2.1; - - meta.controller.removeHoverStyle(point); - expect(point._model.backgroundColor).toBe('rgb(77, 79, 81)'); - expect(point._model.borderColor).toBe('rgb(123, 125, 127)'); - expect(point._model.borderWidth).toBe(2.1); - expect(point._model.radius).toBe(3.3); - - // Use the consistent name "pointRadius", setting but overwriting - // another value in "radius" - chart.data.datasets[0].pointRadius = 250; - chart.data.datasets[0].radius = 20; - - meta.controller.removeHoverStyle(point); - expect(point._model.backgroundColor).toBe('rgb(77, 79, 81)'); - expect(point._model.borderColor).toBe('rgb(123, 125, 127)'); - expect(point._model.borderWidth).toBe(2.1); - expect(point._model.radius).toBe(250); - - // Custom style - point.custom = { - radius: 4.4, - borderWidth: 5.5, - backgroundColor: 'rgb(0, 0, 0)', - borderColor: 'rgb(10, 10, 10)' - }; - - meta.controller.removeHoverStyle(point); - expect(point._model.backgroundColor).toBe('rgb(0, 0, 0)'); - expect(point._model.borderColor).toBe('rgb(10, 10, 10)'); - expect(point._model.borderWidth).toBe(5.5); - expect(point._model.radius).toBe(4.4); - }); + + }); + + it('should find the correct scale zero when the data is all positive', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + datasets: [{ + data: [10, 15, 20, 20], + label: 'dataset1', + }], + labels: ['label1', 'label2', 'label3', 'label4'] + }, + }); + + var meta = chart.getDatasetMeta(0); + + expect(meta.dataset._model).toEqual(jasmine.objectContaining({ + scaleTop: 32, + scaleBottom: 484, + scaleZero: 484, + })); + }); + + it('should find the correct scale zero when the data is all negative', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + datasets: [{ + data: [-10, -15, -20, -20], + label: 'dataset1', + }], + labels: ['label1', 'label2', 'label3', 'label4'] + }, + }); + + var meta = chart.getDatasetMeta(0); + + expect(meta.dataset._model).toEqual(jasmine.objectContaining({ + scaleTop: 32, + scaleBottom: 484, + scaleZero: 32, + })); + }); + + it('should fall back to the line styles for points', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + datasets: [{ + data: [0, 0], + label: 'dataset1', + + // line styles + backgroundColor: 'rgb(98, 98, 98)', + borderColor: 'rgb(8, 8, 8)', + borderWidth: 0.55, + }], + labels: ['label1', 'label2'] + } + }); + + var meta = chart.getDatasetMeta(0); + + expect(meta.dataset._model.backgroundColor).toBe('rgb(98, 98, 98)'); + expect(meta.dataset._model.borderColor).toBe('rgb(8, 8, 8)'); + expect(meta.dataset._model.borderWidth).toBe(0.55); + }); + + it('should handle number of data point changes in update', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + datasets: [{ + data: [10, 15, 0, -4], + label: 'dataset1', + }], + labels: ['label1', 'label2', 'label3', 'label4'] + } + }); + + var meta = chart.getDatasetMeta(0); + + chart.data.datasets[0].data = [1, 2]; // remove 2 items + chart.update(); + expect(meta.data.length).toBe(2); + expect(meta.data[0] instanceof Chart.elements.Point).toBe(true); + expect(meta.data[1] instanceof Chart.elements.Point).toBe(true); + + chart.data.datasets[0].data = [1, 2, 3, 4, 5]; // add 3 items + chart.update(); + expect(meta.data.length).toBe(5); + expect(meta.data[0] instanceof Chart.elements.Point).toBe(true); + expect(meta.data[1] instanceof Chart.elements.Point).toBe(true); + expect(meta.data[2] instanceof Chart.elements.Point).toBe(true); + expect(meta.data[3] instanceof Chart.elements.Point).toBe(true); + expect(meta.data[4] instanceof Chart.elements.Point).toBe(true); + }); + + it('should set point hover styles', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + datasets: [{ + data: [10, 15, 0, -4], + label: 'dataset1', + }], + labels: ['label1', 'label2', 'label3', 'label4'] + }, + options: { + elements: { + point: { + backgroundColor: 'rgb(255, 255, 0)', + borderWidth: 1, + borderColor: 'rgb(255, 255, 255)', + hitRadius: 1, + hoverRadius: 4, + hoverBorderWidth: 1, + radius: 3, + } + } + } + }); + + var meta = chart.getDatasetMeta(0); + var point = meta.data[0]; + + meta.controller.setHoverStyle(point); + expect(point._model.backgroundColor).toBe('rgb(229, 230, 0)'); + expect(point._model.borderColor).toBe('rgb(230, 230, 230)'); + expect(point._model.borderWidth).toBe(1); + expect(point._model.radius).toBe(4); + + // Can set hover style per dataset + chart.data.datasets[0].pointHoverRadius = 3.3; + chart.data.datasets[0].pointHoverBackgroundColor = 'rgb(77, 79, 81)'; + chart.data.datasets[0].pointHoverBorderColor = 'rgb(123, 125, 127)'; + chart.data.datasets[0].pointHoverBorderWidth = 2.1; + + meta.controller.setHoverStyle(point); + expect(point._model.backgroundColor).toBe('rgb(77, 79, 81)'); + expect(point._model.borderColor).toBe('rgb(123, 125, 127)'); + expect(point._model.borderWidth).toBe(2.1); + expect(point._model.radius).toBe(3.3); + + // Use the consistent name "pointRadius", setting but overwriting + // another value in "radius" + chart.data.datasets[0].pointRadius = 250; + chart.data.datasets[0].radius = 20; + + meta.controller.setHoverStyle(point); + expect(point._model.backgroundColor).toBe('rgb(77, 79, 81)'); + expect(point._model.borderColor).toBe('rgb(123, 125, 127)'); + expect(point._model.borderWidth).toBe(2.1); + expect(point._model.radius).toBe(3.3); + + // Custom style + point.custom = { + hoverRadius: 4.4, + hoverBorderWidth: 5.5, + hoverBackgroundColor: 'rgb(0, 0, 0)', + hoverBorderColor: 'rgb(10, 10, 10)' + }; + + meta.controller.setHoverStyle(point); + expect(point._model.backgroundColor).toBe('rgb(0, 0, 0)'); + expect(point._model.borderColor).toBe('rgb(10, 10, 10)'); + expect(point._model.borderWidth).toBe(5.5); + expect(point._model.radius).toBe(4.4); + }); + + it('should remove hover styles', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + datasets: [{ + data: [10, 15, 0, -4], + label: 'dataset1', + }], + labels: ['label1', 'label2', 'label3', 'label4'] + }, + options: { + elements: { + point: { + backgroundColor: 'rgb(255, 255, 0)', + borderWidth: 1, + borderColor: 'rgb(255, 255, 255)', + hitRadius: 1, + hoverRadius: 4, + hoverBorderWidth: 1, + radius: 3, + } + } + } + }); + + var meta = chart.getDatasetMeta(0); + var point = meta.data[0]; + + chart.options.elements.point.backgroundColor = 'rgb(45, 46, 47)'; + chart.options.elements.point.borderColor = 'rgb(50, 51, 52)'; + chart.options.elements.point.borderWidth = 10.1; + chart.options.elements.point.radius = 1.01; + + meta.controller.removeHoverStyle(point); + expect(point._model.backgroundColor).toBe('rgb(45, 46, 47)'); + expect(point._model.borderColor).toBe('rgb(50, 51, 52)'); + expect(point._model.borderWidth).toBe(10.1); + expect(point._model.radius).toBe(1.01); + + // Can set hover style per dataset + chart.data.datasets[0].radius = 3.3; + chart.data.datasets[0].pointBackgroundColor = 'rgb(77, 79, 81)'; + chart.data.datasets[0].pointBorderColor = 'rgb(123, 125, 127)'; + chart.data.datasets[0].pointBorderWidth = 2.1; + + meta.controller.removeHoverStyle(point); + expect(point._model.backgroundColor).toBe('rgb(77, 79, 81)'); + expect(point._model.borderColor).toBe('rgb(123, 125, 127)'); + expect(point._model.borderWidth).toBe(2.1); + expect(point._model.radius).toBe(3.3); + + // Use the consistent name "pointRadius", setting but overwriting + // another value in "radius" + chart.data.datasets[0].pointRadius = 250; + chart.data.datasets[0].radius = 20; + + meta.controller.removeHoverStyle(point); + expect(point._model.backgroundColor).toBe('rgb(77, 79, 81)'); + expect(point._model.borderColor).toBe('rgb(123, 125, 127)'); + expect(point._model.borderWidth).toBe(2.1); + expect(point._model.radius).toBe(250); + + // Custom style + point.custom = { + radius: 4.4, + borderWidth: 5.5, + backgroundColor: 'rgb(0, 0, 0)', + borderColor: 'rgb(10, 10, 10)' + }; + + meta.controller.removeHoverStyle(point); + expect(point._model.backgroundColor).toBe('rgb(0, 0, 0)'); + expect(point._model.borderColor).toBe('rgb(10, 10, 10)'); + expect(point._model.borderWidth).toBe(5.5); + expect(point._model.radius).toBe(4.4); + }); });