From e336e561533dc05ee746cd6b7b206843f69603d1 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Fri, 29 Jul 2016 14:42:55 +0800 Subject: [PATCH] FIX: Incorrect sort for poll results. --- .../javascripts/components/poll-results-standard.js.es6 | 2 +- .../components/poll-results-standard-test.js.es6 | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/poll/assets/javascripts/components/poll-results-standard.js.es6 b/plugins/poll/assets/javascripts/components/poll-results-standard.js.es6 index 11f3f67a0af..588a9d94c57 100644 --- a/plugins/poll/assets/javascripts/components/poll-results-standard.js.es6 +++ b/plugins/poll/assets/javascripts/components/poll-results-standard.js.es6 @@ -8,7 +8,7 @@ export default Em.Component.extend({ @computed("poll.voters", "poll.type", "poll.options.[]") options(voters, type) { const options = this.get("poll.options").slice(0).sort((a, b) => { - return a.get("votes") < b.get("votes") ? 1 : 0; + return b.get("votes") - a.get("votes"); }); let percentages = voters === 0 ? diff --git a/plugins/poll/test/javascripts/components/poll-results-standard-test.js.es6 b/plugins/poll/test/javascripts/components/poll-results-standard-test.js.es6 index ac0c229099f..d706806b357 100644 --- a/plugins/poll/test/javascripts/components/poll-results-standard-test.js.es6 +++ b/plugins/poll/test/javascripts/components/poll-results-standard-test.js.es6 @@ -39,7 +39,12 @@ componentTest('multiple options in descending order', { setup(store) { this.set('poll', { type: 'multiple', - options: [Em.Object.create({ votes: 5 }), Em.Object.create({ votes: 4 })], + options: [ + Em.Object.create({ votes: 5}), + Em.Object.create({ votes: 2}), + Em.Object.create({ votes: 4}), + Em.Object.create({ votes: 1}) + ], voters: 9 }); }, @@ -47,5 +52,7 @@ componentTest('multiple options in descending order', { test(assert) { assert.equal(this.$('.option .percentage:eq(0)').text(), '55%'); assert.equal(this.$('.option .percentage:eq(1)').text(), '44%'); + assert.equal(this.$('.option .percentage:eq(2)').text(), '22%'); + assert.equal(this.$('.option .percentage:eq(3)').text(), '11%'); } });