mirror of
https://github.com/discourse/discourse.git
synced 2025-05-28 22:08:01 +08: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:
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