From 9806658e41d9f4967fa15d1aa3ddc37111cf5827 Mon Sep 17 00:00:00 2001 From: Henrique Cardoso de Faria Date: Mon, 10 Aug 2015 12:51:19 -0300 Subject: [PATCH] Add code to update legend when chart is set with test. Closed #31. --- addon/components/ember-chart.js | 6 ++++++ tests/unit/components/ember-chart-test.js | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/addon/components/ember-chart.js b/addon/components/ember-chart.js index 4acdf6b..3a3be7b 100644 --- a/addon/components/ember-chart.js +++ b/addon/components/ember-chart.js @@ -51,5 +51,11 @@ export default Ember.Component.extend({ } else { chart.update(); } + + if (this.get('legend')) { + this.$().parent().children('[class$=legend]').remove(); + var legend = chart.generateLegend(); + this.$().parent().append(legend); + } } }); diff --git a/tests/unit/components/ember-chart-test.js b/tests/unit/components/ember-chart-test.js index cf3dedf..9afa8f9 100644 --- a/tests/unit/components/ember-chart-test.js +++ b/tests/unit/components/ember-chart-test.js @@ -185,6 +185,23 @@ test('it can be a pie chart with legend', function(assert) { assert.ok(chartParent.find('.pie-legend').length); }); +test('it should rebuild the legend in case the chart changes', function(assert) { + var component = this.subject({ + type: 'Pie', + data: testData.get('pieData'), + legend: true + }); + + var chartParent = this.$().parent(); + + assert.ok(chartParent.find('.pie-legend').text().match(/Red/)); + + // Update Data + component.set('data', testData.get('pieData2')); + + assert.ok(chartParent.find('.pie-legend').text().match(/Black/), 'The legend should have updated'); +}); + test('it can be a line chart', function(assert) { var component = this.subject({ type: 'Line',