discourse/test/javascripts/widgets/poster-name-test.js.es6
2018-06-15 17:03:24 +02:00

70 lines
2.1 KiB
JavaScript

import { moduleForWidget, widgetTest } from "helpers/widget-test";
moduleForWidget("poster-name");
widgetTest("basic rendering", {
template: '{{mount-widget widget="poster-name" args=args}}',
beforeEach() {
this.set("args", {
username: "eviltrout",
usernameUrl: "/u/eviltrout",
name: "Robin Ward",
user_title: "Trout Master"
});
},
test(assert) {
assert.ok(this.$(".names").length);
assert.ok(this.$("span.username").length);
assert.ok(this.$("a[data-user-card=eviltrout]").length);
assert.equal(this.$(".username a").text(), "eviltrout");
assert.equal(this.$(".full-name a").text(), "Robin Ward");
assert.equal(this.$(".user-title").text(), "Trout Master");
}
});
widgetTest("extra classes and glyphs", {
template: '{{mount-widget widget="poster-name" args=args}}',
beforeEach() {
this.set("args", {
username: "eviltrout",
usernameUrl: "/u/eviltrout",
staff: true,
admin: true,
moderator: true,
new_user: true,
primary_group_name: "fish"
});
},
test(assert) {
assert.ok(this.$("span.staff").length);
assert.ok(this.$("span.admin").length);
assert.ok(this.$("span.moderator").length);
assert.ok(this.$(".d-icon-shield").length);
assert.ok(this.$("span.new-user").length);
assert.ok(this.$("span.fish").length);
}
});
widgetTest("disable display name on posts", {
template: '{{mount-widget widget="poster-name" args=args}}',
beforeEach() {
this.siteSettings.display_name_on_posts = false;
this.set("args", { username: "eviltrout", name: "Robin Ward" });
},
test(assert) {
assert.equal(this.$(".full-name").length, 0);
}
});
widgetTest("doesn't render a name if it's similar to the username", {
template: '{{mount-widget widget="poster-name" args=args}}',
beforeEach() {
this.siteSettings.prioritize_username_in_ux = true;
this.siteSettings.display_name_on_posts = true;
this.set("args", { username: "eviltrout", name: "evil-trout" });
},
test(assert) {
assert.equal(this.$(".second").length, 0);
}
});