From 63993b03b10c20da15b0e22f0178c9d4519326ec Mon Sep 17 00:00:00 2001 From: t-mangoe Date: Sun, 13 Nov 2022 05:41:21 +0900 Subject: [PATCH] check the data set type in DoughnutController (#10867) --- src/controllers/controller.doughnut.js | 2 +- test/specs/mixed.tests.js | 43 ++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/controllers/controller.doughnut.js b/src/controllers/controller.doughnut.js index 31efea785..e270e4df9 100644 --- a/src/controllers/controller.doughnut.js +++ b/src/controllers/controller.doughnut.js @@ -183,7 +183,7 @@ export default class DoughnutController extends DatasetController { let max = -TAU; for (let i = 0; i < this.chart.data.datasets.length; ++i) { - if (this.chart.isDatasetVisible(i)) { + if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) { const controller = this.chart.getDatasetMeta(i).controller; const rotation = controller._getRotation(); const circumference = controller._getCircumference(); diff --git a/test/specs/mixed.tests.js b/test/specs/mixed.tests.js index 0d501e558..16d7d2f48 100644 --- a/test/specs/mixed.tests.js +++ b/test/specs/mixed.tests.js @@ -1,3 +1,46 @@ describe('Mixed charts', function() { describe('auto', jasmine.fixture.specs('mixed')); + + it('shoud be constructed with doughnuts chart', function() { + const chart = window.acquireChart({ + data: { + datasets: [{ + type: 'line', + data: [10, 20, 30, 40], + }, { + type: 'doughnut', + data: [10, 20, 30, 50], + } + ], + labels: [] + } + }); + + const meta0 = chart.getDatasetMeta(0); + expect(meta0.type).toEqual('line'); + const meta1 = chart.getDatasetMeta(1); + expect(meta1.type).toEqual('doughnut'); + }); + + it('shoud be constructed with pie chart', function() { + const chart = window.acquireChart({ + data: { + datasets: [{ + type: 'bar', + data: [10, 20, 30, 40], + }, { + type: 'pie', + data: [10, 20, 30, 50], + } + ], + labels: [] + } + }); + + const meta0 = chart.getDatasetMeta(0); + expect(meta0.type).toEqual('bar'); + const meta1 = chart.getDatasetMeta(1); + expect(meta1.type).toEqual('pie'); + }); + });