| // Test the bubble chart default config |
| describe('Default Configs', function() { |
| describe('Bubble Chart', function() { |
| it('should return correct tooltip strings', function() { |
| var config = Chart.defaults.bubble; |
| var chart = window.acquireChart({ |
| type: 'bubble', |
| data: { |
| datasets: [{ |
| label: 'My dataset', |
| data: [{ |
| x: 10, |
| y: 12, |
| r: 5 |
| }] |
| }] |
| }, |
| options: config |
| }); |
| |
| // fake out the tooltip hover and force the tooltip to update |
| chart.tooltip._active = [chart.getDatasetMeta(0).data[0]]; |
| chart.tooltip.update(); |
| |
| // Title is always blank |
| expect(chart.tooltip._model.title).toEqual([]); |
| expect(chart.tooltip._model.body).toEqual([{ |
| before: [], |
| lines: ['My dataset: (10, 12, 5)'], |
| after: [] |
| }]); |
| }); |
| }); |
| |
| describe('Doughnut Chart', function() { |
| it('should return correct tooltip strings', function() { |
| var config = Chart.defaults.doughnut; |
| var chart = window.acquireChart({ |
| type: 'doughnut', |
| data: { |
| labels: ['label1', 'label2', 'label3'], |
| datasets: [{ |
| data: [10, 20, 30], |
| }] |
| }, |
| options: config |
| }); |
| |
| // fake out the tooltip hover and force the tooltip to update |
| chart.tooltip._active = [chart.getDatasetMeta(0).data[1]]; |
| chart.tooltip.update(); |
| |
| // Title is always blank |
| expect(chart.tooltip._model.title).toEqual([]); |
| expect(chart.tooltip._model.body).toEqual([{ |
| before: [], |
| lines: ['label2: 20'], |
| after: [] |
| }]); |
| }); |
| |
| it('should return correct tooltip string for a multiline label', function() { |
| var config = Chart.defaults.doughnut; |
| var chart = window.acquireChart({ |
| type: 'doughnut', |
| data: { |
| labels: ['label1', ['row1', 'row2', 'row3'], 'label3'], |
| datasets: [{ |
| data: [10, 20, 30], |
| }] |
| }, |
| options: config |
| }); |
| |
| // fake out the tooltip hover and force the tooltip to update |
| chart.tooltip._active = [chart.getDatasetMeta(0).data[1]]; |
| chart.tooltip.update(); |
| |
| // Title is always blank |
| expect(chart.tooltip._model.title).toEqual([]); |
| expect(chart.tooltip._model.body).toEqual([{ |
| before: [], |
| lines: [ |
| 'row1: 20', |
| 'row2', |
| 'row3' |
| ], |
| after: [] |
| }]); |
| }); |
| |
| it('should return the correct html legend', function() { |
| var config = Chart.defaults.doughnut; |
| var chart = window.acquireChart({ |
| type: 'doughnut', |
| data: { |
| labels: ['label1', 'label2'], |
| datasets: [{ |
| data: [10, 20], |
| backgroundColor: ['red', 'green'] |
| }] |
| }, |
| options: config |
| }); |
| |
| var expectedLegend = '<ul class="' + chart.id + '-legend"><li><span style="background-color:red"></span>label1</li><li><span style="background-color:green"></span>label2</li></ul>'; |
| expect(chart.generateLegend()).toBe(expectedLegend); |
| }); |
| |
| it('should return correct legend label objects', function() { |
| var config = Chart.defaults.doughnut; |
| var chart = window.acquireChart({ |
| type: 'doughnut', |
| data: { |
| labels: ['label1', 'label2', 'label3'], |
| datasets: [{ |
| data: [10, 20, NaN], |
| backgroundColor: ['red', 'green', 'blue'], |
| borderWidth: 2, |
| borderColor: '#000' |
| }] |
| }, |
| options: config |
| }); |
| |
| var expected = [{ |
| text: 'label1', |
| fillStyle: 'red', |
| hidden: false, |
| index: 0, |
| strokeStyle: '#000', |
| lineWidth: 2 |
| }, { |
| text: 'label2', |
| fillStyle: 'green', |
| hidden: false, |
| index: 1, |
| strokeStyle: '#000', |
| lineWidth: 2 |
| }, { |
| text: 'label3', |
| fillStyle: 'blue', |
| hidden: true, |
| index: 2, |
| strokeStyle: '#000', |
| lineWidth: 2 |
| }]; |
| expect(chart.legend.legendItems).toEqual(expected); |
| }); |
| |
| it('should hide the correct arc when a legend item is clicked', function() { |
| var config = Chart.defaults.doughnut; |
| var chart = window.acquireChart({ |
| type: 'doughnut', |
| data: { |
| labels: ['label1', 'label2', 'label3'], |
| datasets: [{ |
| data: [10, 20, NaN], |
| backgroundColor: ['red', 'green', 'blue'], |
| borderWidth: 2, |
| borderColor: '#000' |
| }] |
| }, |
| options: config |
| }); |
| var meta = chart.getDatasetMeta(0); |
| |
| spyOn(chart, 'update').and.callThrough(); |
| |
| var legendItem = chart.legend.legendItems[0]; |
| config.legend.onClick.call(chart.legend, null, legendItem); |
| |
| expect(meta.data[0].hidden).toBe(true); |
| expect(chart.update).toHaveBeenCalled(); |
| |
| config.legend.onClick.call(chart.legend, null, legendItem); |
| expect(meta.data[0].hidden).toBe(false); |
| }); |
| }); |
| |
| describe('Polar Area Chart', function() { |
| it('should return correct tooltip strings', function() { |
| var config = Chart.defaults.polarArea; |
| var chart = window.acquireChart({ |
| type: 'polarArea', |
| data: { |
| labels: ['label1', 'label2', 'label3'], |
| datasets: [{ |
| data: [10, 20, 30], |
| }] |
| }, |
| options: config |
| }); |
| |
| // fake out the tooltip hover and force the tooltip to update |
| chart.tooltip._active = [chart.getDatasetMeta(0).data[1]]; |
| chart.tooltip.update(); |
| |
| // Title is always blank |
| expect(chart.tooltip._model.title).toEqual([]); |
| expect(chart.tooltip._model.body).toEqual([{ |
| before: [], |
| lines: ['label2: 20'], |
| after: [] |
| }]); |
| }); |
| |
| it('should return the correct html legend', function() { |
| var config = Chart.defaults.polarArea; |
| var chart = window.acquireChart({ |
| type: 'polarArea', |
| data: { |
| labels: ['label1', 'label2'], |
| datasets: [{ |
| data: [10, 20], |
| backgroundColor: ['red', 'green'] |
| }] |
| }, |
| options: config |
| }); |
| |
| var expectedLegend = '<ul class="' + chart.id + '-legend"><li><span style="background-color:red"></span>label1</li><li><span style="background-color:green"></span>label2</li></ul>'; |
| expect(chart.generateLegend()).toBe(expectedLegend); |
| }); |
| |
| it('should return correct legend label objects', function() { |
| var config = Chart.defaults.polarArea; |
| var chart = window.acquireChart({ |
| type: 'polarArea', |
| data: { |
| labels: ['label1', 'label2', 'label3'], |
| datasets: [{ |
| data: [10, 20, NaN], |
| backgroundColor: ['red', 'green', 'blue'], |
| borderWidth: 2, |
| borderColor: '#000' |
| }] |
| }, |
| options: config |
| }); |
| |
| var expected = [{ |
| text: 'label1', |
| fillStyle: 'red', |
| hidden: false, |
| index: 0, |
| strokeStyle: '#000', |
| lineWidth: 2 |
| }, { |
| text: 'label2', |
| fillStyle: 'green', |
| hidden: false, |
| index: 1, |
| strokeStyle: '#000', |
| lineWidth: 2 |
| }, { |
| text: 'label3', |
| fillStyle: 'blue', |
| hidden: true, |
| index: 2, |
| strokeStyle: '#000', |
| lineWidth: 2 |
| }]; |
| expect(chart.legend.legendItems).toEqual(expected); |
| }); |
| |
| it('should hide the correct arc when a legend item is clicked', function() { |
| var config = Chart.defaults.polarArea; |
| var chart = window.acquireChart({ |
| type: 'polarArea', |
| data: { |
| labels: ['label1', 'label2', 'label3'], |
| datasets: [{ |
| data: [10, 20, NaN], |
| backgroundColor: ['red', 'green', 'blue'], |
| borderWidth: 2, |
| borderColor: '#000' |
| }] |
| }, |
| options: config |
| }); |
| var meta = chart.getDatasetMeta(0); |
| |
| spyOn(chart, 'update').and.callThrough(); |
| |
| var legendItem = chart.legend.legendItems[0]; |
| config.legend.onClick.call(chart.legend, null, legendItem); |
| |
| expect(meta.data[0].hidden).toBe(true); |
| expect(chart.update).toHaveBeenCalled(); |
| |
| config.legend.onClick.call(chart.legend, null, legendItem); |
| expect(meta.data[0].hidden).toBe(false); |
| }); |
| }); |
| }); |