mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 06:21:12 +08:00
PERF: Migrate header to discourse widgets
This commit is contained in:
106
test/javascripts/widgets/user-menu-test.js.es6
Normal file
106
test/javascripts/widgets/user-menu-test.js.es6
Normal file
@ -0,0 +1,106 @@
|
||||
import { moduleForWidget, widgetTest } from 'helpers/widget-test';
|
||||
|
||||
moduleForWidget('user-menu');
|
||||
|
||||
widgetTest('basics', {
|
||||
template: '{{mount-widget widget="user-menu"}}',
|
||||
|
||||
test(assert) {
|
||||
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);
|
||||
}
|
||||
});
|
||||
|
||||
widgetTest('log out', {
|
||||
template: '{{mount-widget widget="user-menu" logout="logout"}}',
|
||||
|
||||
setup() {
|
||||
this.on('logout', () => this.loggedOut = true);
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.ok(this.$('.logout').length);
|
||||
|
||||
click('.logout');
|
||||
andThen(() => {
|
||||
assert.ok(this.loggedOut);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
widgetTest('private messages - disabled', {
|
||||
template: '{{mount-widget widget="user-menu"}}',
|
||||
setup() {
|
||||
this.siteSettings.enable_private_messages = false;
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.ok(!this.$('.user-pms-link').length);
|
||||
}
|
||||
});
|
||||
|
||||
widgetTest('private messages - enabled', {
|
||||
template: '{{mount-widget widget="user-menu"}}',
|
||||
setup() {
|
||||
this.siteSettings.enable_private_messages = true;
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.ok(this.$('.user-pms-link').length);
|
||||
}
|
||||
});
|
||||
|
||||
widgetTest('anonymous', {
|
||||
template: '{{mount-widget widget="user-menu" toggleAnonymous="toggleAnonymous"}}',
|
||||
|
||||
setup() {
|
||||
this.currentUser.setProperties({ is_anonymous: false, trust_level: 3 });
|
||||
this.siteSettings.allow_anonymous_posting = true;
|
||||
this.siteSettings.anonymous_posting_min_trust_level = 3;
|
||||
|
||||
this.on('toggleAnonymous', () => this.anonymous = true);
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.ok(this.$('.enable-anonymous').length);
|
||||
click('.enable-anonymous');
|
||||
andThen(() => {
|
||||
assert.ok(this.anonymous);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
widgetTest('anonymous - disabled', {
|
||||
template: '{{mount-widget widget="user-menu"}}',
|
||||
|
||||
setup() {
|
||||
this.siteSettings.allow_anonymous_posting = false;
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.ok(!this.$('.enable-anonymous').length);
|
||||
}
|
||||
});
|
||||
|
||||
widgetTest('anonymous - switch back', {
|
||||
template: '{{mount-widget widget="user-menu" toggleAnonymous="toggleAnonymous"}}',
|
||||
|
||||
setup() {
|
||||
this.currentUser.setProperties({ is_anonymous: true });
|
||||
this.siteSettings.allow_anonymous_posting = true;
|
||||
|
||||
this.on('toggleAnonymous', () => this.anonymous = true);
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.ok(this.$('.disable-anonymous').length);
|
||||
click('.disable-anonymous');
|
||||
andThen(() => {
|
||||
assert.ok(this.anonymous);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
Reference in New Issue
Block a user