We used many global functions to handle tests when they should be imported like other libraries in our application. This also gets us closer to the way Ember CLI prefers our tests to be laid out.
58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
import { moduleFor } from "ember-qunit";
|
|
import { test } from "qunit";
|
|
import Badge from "discourse/models/badge";
|
|
import { mapRoutes } from "discourse/mapping-router";
|
|
|
|
moduleFor("controller:admin-user-badges", {
|
|
beforeEach() {
|
|
this.registry.register("router:main", mapRoutes());
|
|
},
|
|
needs: ["controller:adminUser"],
|
|
});
|
|
|
|
test("grantableBadges", function (assert) {
|
|
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;
|
|
});
|
|
|
|
assert.not(badgeNames.includes(badgeDisabled), "excludes disabled badges");
|
|
assert.deepEqual(badgeNames, sortedNames, "sorts badges by name");
|
|
});
|