From 7b67929c84d9a9aaed42d66d84bbf7a0c35b8ece Mon Sep 17 00:00:00 2001 From: etimberg Date: Thu, 14 Sep 2017 18:46:50 -0400 Subject: [PATCH] Fix regression in x-axis interaction mode --- src/core/core.interaction.js | 2 +- test/specs/global.deprecations.tests.js | 39 +++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/core/core.interaction.js b/src/core/core.interaction.js index d984126ab53..be85a080f76 100644 --- a/src/core/core.interaction.js +++ b/src/core/core.interaction.js @@ -215,7 +215,7 @@ module.exports = { * @private */ 'x-axis': function(chart, e) { - return indexMode(chart, e, {intersect: true}); + return indexMode(chart, e, {intersect: false}); }, /** diff --git a/test/specs/global.deprecations.tests.js b/test/specs/global.deprecations.tests.js index c5bef5b20b4..f1091464d1e 100644 --- a/test/specs/global.deprecations.tests.js +++ b/test/specs/global.deprecations.tests.js @@ -325,6 +325,45 @@ describe('Deprecations', function() { }); }); + describe('Version 2.4.0', function() { + describe('x-axis mode', function() { + it ('behaves like index mode with intersect: false', function() { + var data = { + datasets: [{ + label: 'Dataset 1', + data: [10, 20, 30], + pointHoverBorderColor: 'rgb(255, 0, 0)', + pointHoverBackgroundColor: 'rgb(0, 255, 0)' + }, { + label: 'Dataset 2', + data: [40, 40, 40], + pointHoverBorderColor: 'rgb(0, 0, 255)', + pointHoverBackgroundColor: 'rgb(0, 255, 255)' + }], + labels: ['Point 1', 'Point 2', 'Point 3'] + }; + + var chart = window.acquireChart({ + type: 'line', + data: data + }); + var meta0 = chart.getDatasetMeta(0); + var meta1 = chart.getDatasetMeta(1); + + var evt = { + type: 'click', + chart: chart, + native: true, // needed otherwise things its a DOM event + x: 0, + y: 0 + }; + + var elements = Chart.Interaction.modes['x-axis'](chart, evt); + expect(elements).toEqual([meta0.data[0], meta1.data[0]]); + }); + }); + }); + describe('Version 2.1.5', function() { // https://github.com/chartjs/Chart.js/pull/2752 describe('Chart.pluginService', function() {