Files
discourse/test/javascripts/widgets/user-menu-test.js.es6
T

103 lines
2.5 KiB
JavaScript
Raw Normal View History

2018-06-15 17:03:24 +02:00
import { moduleForWidget, widgetTest } from "helpers/widget-test";
2016-04-14 15:23:05 -04:00
2018-06-15 17:03:24 +02:00
moduleForWidget("user-menu");
2016-04-14 15:23:05 -04:00
2018-06-15 17:03:24 +02:00
widgetTest("basics", {
2016-04-14 15:23:05 -04:00
template: '{{mount-widget widget="user-menu"}}',
test(assert) {
2018-06-15 17:03:24 +02:00
assert.ok(this.$(".user-menu").length);
assert.ok(this.$(".user-activity-link").length);
assert.ok(this.$(".user-bookmarks-link").length);
assert.ok(this.$(".user-preferences-link").length);
assert.ok(this.$(".notifications").length);
assert.ok(this.$(".dismiss-link").length);
2016-04-14 15:23:05 -04:00
}
});
2018-06-15 17:03:24 +02:00
widgetTest("log out", {
2016-04-14 15:23:05 -04:00
template: '{{mount-widget widget="user-menu" logout="logout"}}',
2017-06-14 13:57:58 -04:00
beforeEach() {
2018-06-15 17:03:24 +02:00
this.on("logout", () => (this.loggedOut = true));
2016-04-14 15:23:05 -04:00
},
2018-07-24 17:49:42 +02:00
async test(assert) {
2018-06-15 17:03:24 +02:00
assert.ok(this.$(".logout").length);
2016-04-14 15:23:05 -04:00
2018-07-24 17:49:42 +02:00
await click(".logout");
assert.ok(this.loggedOut);
2016-04-14 15:23:05 -04:00
}
});
2018-06-15 17:03:24 +02:00
widgetTest("private messages - disabled", {
2016-04-14 15:23:05 -04:00
template: '{{mount-widget widget="user-menu"}}',
2017-06-14 13:57:58 -04:00
beforeEach() {
this.siteSettings.enable_personal_messages = false;
2016-04-14 15:23:05 -04:00
},
test(assert) {
2018-06-15 17:03:24 +02:00
assert.ok(!this.$(".user-pms-link").length);
2016-04-14 15:23:05 -04:00
}
});
2018-06-15 17:03:24 +02:00
widgetTest("private messages - enabled", {
2016-04-14 15:23:05 -04:00
template: '{{mount-widget widget="user-menu"}}',
2017-06-14 13:57:58 -04:00
beforeEach() {
this.siteSettings.enable_personal_messages = true;
2016-04-14 15:23:05 -04:00
},
test(assert) {
2018-06-15 17:03:24 +02:00
assert.ok(this.$(".user-pms-link").length);
2016-04-14 15:23:05 -04:00
}
});
2018-06-15 17:03:24 +02:00
widgetTest("anonymous", {
template:
'{{mount-widget widget="user-menu" toggleAnonymous="toggleAnonymous"}}',
2016-04-14 15:23:05 -04:00
2017-06-14 13:57:58 -04:00
beforeEach() {
2016-04-14 15:23:05 -04:00
this.currentUser.setProperties({ is_anonymous: false, trust_level: 3 });
this.siteSettings.allow_anonymous_posting = true;
this.siteSettings.anonymous_posting_min_trust_level = 3;
2018-06-15 17:03:24 +02:00
this.on("toggleAnonymous", () => (this.anonymous = true));
2016-04-14 15:23:05 -04:00
},
2018-07-24 17:49:42 +02:00
async test(assert) {
2018-06-15 17:03:24 +02:00
assert.ok(this.$(".enable-anonymous").length);
2018-07-24 17:49:42 +02:00
await click(".enable-anonymous");
assert.ok(this.anonymous);
2016-04-14 15:23:05 -04:00
}
});
2018-06-15 17:03:24 +02:00
widgetTest("anonymous - disabled", {
2016-04-14 15:23:05 -04:00
template: '{{mount-widget widget="user-menu"}}',
2017-06-14 13:57:58 -04:00
beforeEach() {
2016-04-14 15:23:05 -04:00
this.siteSettings.allow_anonymous_posting = false;
},
test(assert) {
2018-06-15 17:03:24 +02:00
assert.ok(!this.$(".enable-anonymous").length);
2016-04-14 15:23:05 -04:00
}
});
2018-06-15 17:03:24 +02:00
widgetTest("anonymous - switch back", {
template:
'{{mount-widget widget="user-menu" toggleAnonymous="toggleAnonymous"}}',
2016-04-14 15:23:05 -04:00
2017-06-14 13:57:58 -04:00
beforeEach() {
2016-04-14 15:23:05 -04:00
this.currentUser.setProperties({ is_anonymous: true });
this.siteSettings.allow_anonymous_posting = true;
2018-06-15 17:03:24 +02:00
this.on("toggleAnonymous", () => (this.anonymous = true));
2016-04-14 15:23:05 -04:00
},
2018-07-24 17:49:42 +02:00
async test(assert) {
2018-06-15 17:03:24 +02:00
assert.ok(this.$(".disable-anonymous").length);
2018-07-24 17:49:42 +02:00
await click(".disable-anonymous");
assert.ok(this.anonymous);
2016-04-14 15:23:05 -04:00
}
});