]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Handle any element in triggerMouseEvent in tests (#5994)
authorJukka Kurkela <jukka.kurkela@gmail.com>
Sun, 20 Jan 2019 07:09:21 +0000 (09:09 +0200)
committerSimon Brunel <simonbrunel@users.noreply.github.com>
Sun, 20 Jan 2019 07:09:21 +0000 (08:09 +0100)
test/specs/controller.polarArea.tests.js
test/utils.js

index fed7979e939ce669cc493b7521199c20aab22357..d439251fa4f160ecad6e7ba6384a51f2bede6a7e 100644 (file)
@@ -281,12 +281,12 @@ describe('Chart.controllers.polarArea', function() {
                        var chart = this.chart;
                        var arc = chart.getDatasetMeta(0).data[0];
 
-                       jasmine.triggerMouseEvent(chart, 'mousemove', {_model: arc.getCenterPoint()});
+                       jasmine.triggerMouseEvent(chart, 'mousemove', arc);
                        expect(arc._model.backgroundColor).toBe('rgb(49, 135, 221)');
                        expect(arc._model.borderColor).toBe('rgb(22, 89, 156)');
                        expect(arc._model.borderWidth).toBe(2);
 
-                       jasmine.triggerMouseEvent(chart, 'mouseout', {_model: arc.getCenterPoint()});
+                       jasmine.triggerMouseEvent(chart, 'mouseout', arc);
                        expect(arc._model.backgroundColor).toBe('rgb(100, 150, 200)');
                        expect(arc._model.borderColor).toBe('rgb(50, 100, 150)');
                        expect(arc._model.borderWidth).toBe(2);
@@ -304,12 +304,12 @@ describe('Chart.controllers.polarArea', function() {
 
                        chart.update();
 
-                       jasmine.triggerMouseEvent(chart, 'mousemove', {_model: arc.getCenterPoint()});
+                       jasmine.triggerMouseEvent(chart, 'mousemove', arc);
                        expect(arc._model.backgroundColor).toBe('rgb(200, 100, 150)');
                        expect(arc._model.borderColor).toBe('rgb(150, 50, 100)');
                        expect(arc._model.borderWidth).toBe(8.4);
 
-                       jasmine.triggerMouseEvent(chart, 'mouseout', {_model: arc.getCenterPoint()});
+                       jasmine.triggerMouseEvent(chart, 'mouseout', arc);
                        expect(arc._model.backgroundColor).toBe('rgb(100, 150, 200)');
                        expect(arc._model.borderColor).toBe('rgb(50, 100, 150)');
                        expect(arc._model.borderWidth).toBe(2);
@@ -327,12 +327,12 @@ describe('Chart.controllers.polarArea', function() {
 
                        chart.update();
 
-                       jasmine.triggerMouseEvent(chart, 'mousemove', {_model: arc.getCenterPoint()});
+                       jasmine.triggerMouseEvent(chart, 'mousemove', arc);
                        expect(arc._model.backgroundColor).toBe('rgb(200, 100, 150)');
                        expect(arc._model.borderColor).toBe('rgb(150, 50, 100)');
                        expect(arc._model.borderWidth).toBe(8.4);
 
-                       jasmine.triggerMouseEvent(chart, 'mouseout', {_model: arc.getCenterPoint()});
+                       jasmine.triggerMouseEvent(chart, 'mouseout', arc);
                        expect(arc._model.backgroundColor).toBe('rgb(100, 150, 200)');
                        expect(arc._model.borderColor).toBe('rgb(50, 100, 150)');
                        expect(arc._model.borderWidth).toBe(2);
@@ -350,12 +350,12 @@ describe('Chart.controllers.polarArea', function() {
 
                        chart.update();
 
-                       jasmine.triggerMouseEvent(chart, 'mousemove', {_model: arc.getCenterPoint()});
+                       jasmine.triggerMouseEvent(chart, 'mousemove', arc);
                        expect(arc._model.backgroundColor).toBe('rgb(200, 100, 150)');
                        expect(arc._model.borderColor).toBe('rgb(150, 50, 100)');
                        expect(arc._model.borderWidth).toBe(8.4);
 
-                       jasmine.triggerMouseEvent(chart, 'mouseout', {_model: arc.getCenterPoint()});
+                       jasmine.triggerMouseEvent(chart, 'mouseout', arc);
                        expect(arc._model.backgroundColor).toBe('rgb(100, 150, 200)');
                        expect(arc._model.borderColor).toBe('rgb(50, 100, 150)');
                        expect(arc._model.borderWidth).toBe(2);
index c9e9ae012fa2d825446ad7faccde7b3cc37afc34..5cc361bb86f2c10110f87aa289e99c910c7a8921 100644 (file)
@@ -106,12 +106,27 @@ function waitForResize(chart, callback) {
        };
 }
 
+function _resolveElementPoint(el) {
+       var point = {x: 0, y: 0};
+       if (el) {
+               if (typeof el.getCenterPoint === 'function') {
+                       point = el.getCenterPoint();
+               } else if (el.x !== undefined && el.y !== undefined) {
+                       point = el;
+               } else if (el._model && el._model.x !== undefined && el._model.y !== undefined) {
+                       point = el._model;
+               }
+       }
+       return point;
+}
+
 function triggerMouseEvent(chart, type, el) {
        var node = chart.canvas;
        var rect = node.getBoundingClientRect();
+       var point = _resolveElementPoint(el);
        var event = new MouseEvent(type, {
-               clientX: rect.left + el._model.x,
-               clientY: rect.top + el._model.y,
+               clientX: rect.left + point.x,
+               clientY: rect.top + point.y,
                cancelable: true,
                bubbles: true,
                view: window