@@ -1667,7 +1667,7 @@ describe('Plugin.Tooltip', function() {
1667
1667
} ) ;
1668
1668
} ) ;
1669
1669
1670
- it ( 'should tolerate datasets removed or added on events outside chartArea' , async function ( ) {
1670
+ it ( 'should tolerate datasets removed on events outside chartArea' , async function ( ) {
1671
1671
const dataset1 = {
1672
1672
label : 'Dataset 1' ,
1673
1673
data : [ 10 , 20 , 30 ] ,
@@ -1692,9 +1692,9 @@ describe('Plugin.Tooltip', function() {
1692
1692
}
1693
1693
} ) ;
1694
1694
1695
- var meta = chart . getDatasetMeta ( 0 ) ;
1696
- var point = meta . data [ 1 ] ;
1697
- var expectedPoints = [ jasmine . objectContaining ( { datasetIndex : 0 , index : 1 } ) , jasmine . objectContaining ( { datasetIndex : 1 , index : 1 } ) ] ;
1695
+ const meta = chart . getDatasetMeta ( 0 ) ;
1696
+ const point = meta . data [ 1 ] ;
1697
+ const expectedPoints = [ jasmine . objectContaining ( { datasetIndex : 0 , index : 1 } ) , jasmine . objectContaining ( { datasetIndex : 1 , index : 1 } ) ] ;
1698
1698
1699
1699
await jasmine . triggerMouseEvent ( chart , 'mousemove' , point ) ;
1700
1700
await jasmine . triggerMouseEvent ( chart , 'mousemove' , { x : chart . chartArea . left - 5 , y : point . y } ) ;
@@ -1709,6 +1709,49 @@ describe('Plugin.Tooltip', function() {
1709
1709
expect ( chart . tooltip . getActiveElements ( ) ) . toEqual ( [ expectedPoints [ 0 ] ] ) ;
1710
1710
} ) ;
1711
1711
1712
+ it ( 'should tolerate elements removed on events outside chartArea' , async function ( ) {
1713
+ const dataset1 = {
1714
+ label : 'Dataset 1' ,
1715
+ data : [ 10 , 20 , 30 ] ,
1716
+ } ;
1717
+ const dataset2 = {
1718
+ label : 'Dataset 2' ,
1719
+ data : [ 10 , 25 , 35 ] ,
1720
+ } ;
1721
+ const chart = window . acquireChart ( {
1722
+ type : 'line' ,
1723
+ data : {
1724
+ datasets : [ dataset1 , dataset2 ] ,
1725
+ labels : [ 'Point 1' , 'Point 2' , 'Point 3' ]
1726
+ } ,
1727
+ options : {
1728
+ plugins : {
1729
+ tooltip : {
1730
+ mode : 'index' ,
1731
+ intersect : false
1732
+ }
1733
+ }
1734
+ }
1735
+ } ) ;
1736
+
1737
+ const meta = chart . getDatasetMeta ( 0 ) ;
1738
+ const point = meta . data [ 1 ] ;
1739
+ const expectedPoints = [ jasmine . objectContaining ( { datasetIndex : 0 , index : 1 } ) , jasmine . objectContaining ( { datasetIndex : 1 , index : 1 } ) ] ;
1740
+
1741
+ await jasmine . triggerMouseEvent ( chart , 'mousemove' , point ) ;
1742
+ await jasmine . triggerMouseEvent ( chart , 'mousemove' , { x : chart . chartArea . left - 5 , y : point . y } ) ;
1743
+
1744
+ expect ( chart . tooltip . getActiveElements ( ) ) . toEqual ( expectedPoints ) ;
1745
+
1746
+ dataset1 . data = dataset1 . data . slice ( 0 , 1 ) ;
1747
+ chart . data . datasets = [ dataset1 ] ;
1748
+ chart . update ( ) ;
1749
+
1750
+ await jasmine . triggerMouseEvent ( chart , 'mousemove' , { x : 2 , y : 1 } ) ;
1751
+
1752
+ expect ( chart . tooltip . getActiveElements ( ) ) . toEqual ( [ ] ) ;
1753
+ } ) ;
1754
+
1712
1755
describe ( 'events' , function ( ) {
1713
1756
it ( 'should not be called on events not in plugin events array' , async function ( ) {
1714
1757
var chart = window . acquireChart ( {
0 commit comments