From c50205725fa76fe502a74c84c4b63df47116ecc1 Mon Sep 17 00:00:00 2001 From: Ed Gibbs Date: Sun, 15 Feb 2015 17:37:11 -0800 Subject: [PATCH] FIX: Default sort grantable badges by name Currently has no default sort and was stated as a bug here: https://meta.discourse.org/t/badges-not-sorted-in-grant-badge-dropdown/23739 (Post was recently deleted or made private?) --- .../admin/controllers/admin-user-badges.js.es6 | 2 +- .../controllers/admin-user-badges-test.js.es6 | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 test/javascripts/admin/controllers/admin-user-badges-test.js.es6 diff --git a/app/assets/javascripts/admin/controllers/admin-user-badges.js.es6 b/app/assets/javascripts/admin/controllers/admin-user-badges.js.es6 index 91340b2bb..5bb53c4b8 100644 --- a/app/assets/javascripts/admin/controllers/admin-user-badges.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-user-badges.js.es6 @@ -32,7 +32,7 @@ export default Ember.ArrayController.extend({ } }); - return badges; + return _.sortBy(badges, "name"); }.property('badges.@each', 'model.@each'), /** diff --git a/test/javascripts/admin/controllers/admin-user-badges-test.js.es6 b/test/javascripts/admin/controllers/admin-user-badges-test.js.es6 new file mode 100644 index 000000000..db4637ce7 --- /dev/null +++ b/test/javascripts/admin/controllers/admin-user-badges-test.js.es6 @@ -0,0 +1,16 @@ +moduleFor('controller:admin-user-badges', 'Admin User Badges Controller', { + needs: ['controller:adminUser'] +}); + +test("grantableBadges", function() { + var badge_first = Discourse.Badge.create({id: 3, name: "A Badge"}); + var badge_middle = Discourse.Badge.create({id: 1, name: "My Badge"}); + var badge_last = Discourse.Badge.create({id: 2, name: "Zoo Badge"}); + var controller = this.subject({ badges: [badge_last, badge_first, badge_middle] }); + var sorted_names = [badge_first.name, badge_middle.name, badge_last.name]; + var badge_names = controller.get('grantableBadges').map(function(badge) { + return badge.name; + }); + + deepEqual(badge_names, sorted_names, "sorts badges by name"); +});