mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: grant badges in post admin wrench (#5498)
* FEATURE: grant badges in post admin wrench * only grant manually grantable badges * extract GrantBadgeController mixin
This commit is contained in:
@@ -9,11 +9,17 @@ moduleFor('controller:admin-user-badges', {
|
||||
});
|
||||
|
||||
QUnit.test("grantableBadges", function(assert) {
|
||||
const badgeFirst = Badge.create({id: 3, name: "A Badge", enabled: true});
|
||||
const badgeMiddle = Badge.create({id: 1, name: "My Badge", enabled: true});
|
||||
const badgeLast = Badge.create({id: 2, name: "Zoo Badge", enabled: true});
|
||||
const badgeDisabled = Badge.create({id: 4, name: "Disabled Badge", enabled: false});
|
||||
const controller = this.subject({ model: [], badges: [badgeLast, badgeFirst, badgeMiddle, badgeDisabled] });
|
||||
const badgeFirst = Badge.create({ id: 3, name: "A Badge", enabled: true, manually_grantable: true });
|
||||
const badgeMiddle = Badge.create({ id: 1, name: "My Badge", enabled: true, manually_grantable: true });
|
||||
const badgeLast = Badge.create({ id: 2, name: "Zoo Badge", enabled: true, manually_grantable: true });
|
||||
const badgeDisabled = Badge.create({ id: 4, name: "Disabled Badge", enabled: false, manually_grantable: true });
|
||||
const badgeAutomatic = Badge.create({ id: 5, name: "Automatic Badge", enabled: true, manually_grantable: false });
|
||||
|
||||
const controller = this.subject({
|
||||
model: [],
|
||||
badges: [badgeLast, badgeFirst, badgeMiddle, badgeDisabled, badgeAutomatic]
|
||||
});
|
||||
|
||||
const sortedNames = [badgeFirst.name, badgeMiddle.name, badgeLast.name];
|
||||
const badgeNames = controller.get('grantableBadges').map(function(badge) {
|
||||
return badge.name;
|
||||
|
||||
38
test/javascripts/mixins/grant-badge-controller-test.js.es6
Normal file
38
test/javascripts/mixins/grant-badge-controller-test.js.es6
Normal file
@@ -0,0 +1,38 @@
|
||||
import GrantBadgeControllerMixin from 'discourse/mixins/grant-badge-controller';
|
||||
import Badge from 'discourse/models/badge';
|
||||
|
||||
QUnit.module('mixin:grant-badge-controller', {
|
||||
before: function() {
|
||||
this.GrantBadgeController = Ember.Controller.extend(GrantBadgeControllerMixin);
|
||||
|
||||
this.badgeFirst = Badge.create({ id: 3, name: 'A Badge', enabled: true, manually_grantable: true });
|
||||
this.badgeMiddle = Badge.create({ id: 1, name: 'My Badge', enabled: true, manually_grantable: true });
|
||||
this.badgeLast = Badge.create({ id: 2, name: 'Zoo Badge', enabled: true, manually_grantable: true });
|
||||
this.badgeDisabled = Badge.create({ id: 4, name: 'Disabled Badge', enabled: false, manually_grantable: true });
|
||||
this.badgeAutomatic = Badge.create({ id: 5, name: 'Automatic Badge', enabled: true, manually_grantable: false });
|
||||
},
|
||||
|
||||
beforeEach: function() {
|
||||
this.subject = this.GrantBadgeController.create({
|
||||
userBadges: [],
|
||||
allBadges: [this.badgeLast, this.badgeFirst, this.badgeMiddle, this.badgeDisabled, this.badgeAutomatic],
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
QUnit.test('grantableBadges', function(assert) {
|
||||
const sortedNames = [this.badgeFirst.name, this.badgeMiddle.name, this.badgeLast.name];
|
||||
const badgeNames = this.subject.get('grantableBadges').map(badge => badge.name);
|
||||
|
||||
assert.not(badgeNames.includes(this.badgeDisabled), 'excludes disabled badges');
|
||||
assert.not(badgeNames.includes(this.badgeAutomatic), 'excludes automatic badges');
|
||||
assert.deepEqual(badgeNames, sortedNames, 'sorts badges by name');
|
||||
});
|
||||
|
||||
QUnit.test('selectedBadgeGrantable', function(assert) {
|
||||
this.subject.set('selectedBadgeId', this.badgeDisabled.id);
|
||||
assert.not(this.subject.get('selectedBadgeGrantable'));
|
||||
|
||||
this.subject.set('selectedBadgeId', this.badgeFirst.id);
|
||||
assert.ok(this.subject.get('selectedBadgeGrantable'));
|
||||
});
|
||||
Reference in New Issue
Block a user