123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- describe('interactions', function() {
- describe('context.active', function() {
- it('should be false for non active elements (default)', function() {
- var options = {color: function() {}};
- var spy = spyOn(options, 'color');
- jasmine.chart.acquire({
- type: 'line',
- data: {
- labels: [1, 2, 3],
- datasets: [{
- data: [1, 2, 3],
- fill: false
- }]
- },
- options: {
- plugins: {
- datalabels: options
- }
- }
- });
- expect(spy.calls.count()).toBe(3);
- expect(spy.calls.argsFor(0)[0].active).toBe(false);
- expect(spy.calls.argsFor(1)[0].active).toBe(false);
- expect(spy.calls.argsFor(2)[0].active).toBe(false);
- });
- it('should be true for active elements', function() {
- var options = {color: function() {}};
- var spy = spyOn(options, 'color');
- var chart = jasmine.chart.acquire({
- type: 'line',
- data: {
- labels: [1, 2, 3],
- datasets: [{
- data: [1, 2, 3],
- fill: false
- }]
- },
- options: {
- plugins: {
- datalabels: options
- }
- }
- });
- spy.calls.reset();
- var ds0 = chart.getDatasetMeta(0);
- jasmine.triggerMouseEvent(chart, 'mousemove', ds0.data[1]);
- expect(spy.calls.count()).toBe(1);
- expect(spy.calls.argsFor(0)[0].active).toBe(true);
- expect(spy.calls.argsFor(0)[0].dataIndex).toBe(1);
- expect(spy.calls.argsFor(0)[0].datasetIndex).toBe(0);
- });
- });
- describe('when the user hover elements', function() {
- it('should not update the whole chart (only render)', function() {
- var chart = jasmine.chart.acquire({
- type: 'line',
- data: {
- labels: [1, 2, 3],
- datasets: [{
- data: [1, 2, 3],
- fill: false
- }]
- }
- });
- spyOn(chart, 'update');
- spyOn(chart, 'render');
- jasmine.triggerMouseEvent(chart, 'mousemove', chart.getDatasetMeta(0).data[1]);
- expect(chart.update).not.toHaveBeenCalled();
- expect(chart.render).toHaveBeenCalled();
- });
- it('should only update active elements (context.active: true)', function() {
- var options = {color: function() {}};
- var spy = spyOn(options, 'color');
- var chart = jasmine.chart.acquire({
- type: 'line',
- data: {
- labels: [1, 2, 3],
- datasets: [{
- data: [1, 2, 3],
- fill: false
- }]
- },
- options: {
- plugins: {
- datalabels: options
- }
- }
- });
- expect(spy.calls.count()).toBe(3);
- spy.calls.reset();
- jasmine.triggerMouseEvent(chart, 'mousemove', chart.getDatasetMeta(0).data[1]);
- expect(spy.calls.count()).toBe(1);
- expect(spy.calls.argsFor(0)[0].active).toBe(true);
- expect(spy.calls.argsFor(0)[0].dataIndex).toBe(1);
- expect(spy.calls.argsFor(0)[0].datasetIndex).toBe(0);
- });
- it('should only update previously active elements (context.active: false)', function() {
- var options = {color: function() {}};
- var spy = spyOn(options, 'color');
- var chart = jasmine.chart.acquire({
- type: 'line',
- data: {
- labels: [1, 2, 3],
- datasets: [{
- data: [1, 2, 3],
- fill: false
- }]
- },
- options: {
- plugins: {
- datalabels: options
- }
- }
- });
- expect(spy.calls.count()).toBe(3);
- spy.calls.reset();
- jasmine.triggerMouseEvent(chart, 'mousemove', chart.getDatasetMeta(0).data[1]);
- expect(spy.calls.count()).toBe(1);
- spy.calls.reset();
- jasmine.triggerMouseEvent(chart, 'mouseout', null);
- expect(spy.calls.count()).toBe(1);
- expect(spy.calls.argsFor(0)[0].active).toBe(false);
- expect(spy.calls.argsFor(0)[0].dataIndex).toBe(1);
- expect(spy.calls.argsFor(0)[0].datasetIndex).toBe(0);
- });
- });
- });
|