discourse/test/javascripts/widgets/hamburger-menu-test.js.es6

175 lines
4.0 KiB
Plaintext
Raw Normal View History

import { moduleForWidget, widgetTest } from 'helpers/widget-test';
moduleForWidget('hamburger-menu');
widgetTest('prioritize faq', {
template: '{{mount-widget widget="hamburger-menu"}}',
2017-06-15 01:57:58 +08:00
beforeEach() {
this.siteSettings.faq_url = 'http://example.com/faq';
this.currentUser.set('read_faq', false);
},
test(assert) {
assert.ok(this.$('.faq-priority').length);
assert.ok(!this.$('.faq-link').length);
}
});
widgetTest('prioritize faq - user has read', {
template: '{{mount-widget widget="hamburger-menu"}}',
2017-06-15 01:57:58 +08:00
beforeEach() {
this.siteSettings.faq_url = 'http://example.com/faq';
this.currentUser.set('read_faq', true);
},
test(assert) {
assert.ok(!this.$('.faq-priority').length);
assert.ok(this.$('.faq-link').length);
}
});
widgetTest('staff menu - not staff', {
template: '{{mount-widget widget="hamburger-menu"}}',
2017-06-15 01:57:58 +08:00
beforeEach() {
this.currentUser.set('staff', false);
},
test(assert) {
assert.ok(!this.$('.admin-link').length);
}
});
widgetTest('staff menu', {
template: '{{mount-widget widget="hamburger-menu"}}',
2017-06-15 01:57:58 +08:00
beforeEach() {
this.currentUser.setProperties({ staff: true, site_flagged_posts_count: 3 });
},
test(assert) {
assert.ok(this.$('.admin-link').length);
assert.ok(this.$('.flagged-posts-link').length);
assert.equal(this.$('.flagged-posts').text(), '3');
assert.ok(!this.$('.settings-link').length);
}
});
widgetTest('staff menu - admin', {
template: '{{mount-widget widget="hamburger-menu"}}',
2017-06-15 01:57:58 +08:00
beforeEach() {
this.currentUser.setProperties({ staff: true, admin: true });
},
test(assert) {
assert.ok(this.$('.settings-link').length);
}
});
widgetTest('queued posts', {
template: '{{mount-widget widget="hamburger-menu"}}',
2017-06-15 01:57:58 +08:00
beforeEach() {
this.currentUser.setProperties({
staff: true,
show_queued_posts: true,
post_queue_new_count: 5
});
},
test(assert) {
assert.ok(this.$('.queued-posts-link').length);
assert.equal(this.$('.queued-posts').text(), '5');
}
});
widgetTest('queued posts - disabled', {
template: '{{mount-widget widget="hamburger-menu"}}',
2017-06-15 01:57:58 +08:00
beforeEach() {
this.currentUser.setProperties({ staff: true, show_queued_posts: false });
},
test(assert) {
assert.ok(!this.$('.queued-posts-link').length);
}
});
widgetTest('logged in links', {
template: '{{mount-widget widget="hamburger-menu"}}',
test(assert) {
assert.ok(this.$('.new-topics-link').length);
assert.ok(this.$('.unread-topics-link').length);
}
});
widgetTest('general links', {
template: '{{mount-widget widget="hamburger-menu"}}',
anonymous: true,
test(assert) {
assert.ok(this.$("li[class='']").length === 0);
assert.ok(this.$('.latest-topics-link').length);
assert.ok(!this.$('.new-topics-link').length);
assert.ok(!this.$('.unread-topics-link').length);
assert.ok(this.$('.top-topics-link').length);
assert.ok(this.$('.badge-link').length);
assert.ok(this.$('.category-link').length > 0);
}
});
widgetTest('badges link - disabled', {
template: '{{mount-widget widget="hamburger-menu"}}',
2017-06-15 01:57:58 +08:00
beforeEach() {
this.siteSettings.enable_badges = false;
},
test(assert) {
assert.ok(!this.$('.badge-link').length);
}
});
widgetTest('badges link', {
template: '{{mount-widget widget="hamburger-menu"}}',
test(assert) {
assert.ok(this.$('.badge-link').length);
}
});
widgetTest('user directory link', {
template: '{{mount-widget widget="hamburger-menu"}}',
test(assert) {
assert.ok(this.$('.user-directory-link').length);
}
});
widgetTest('user directory link - disabled', {
template: '{{mount-widget widget="hamburger-menu"}}',
2017-06-15 01:57:58 +08:00
beforeEach() {
this.siteSettings.enable_user_directory = false;
},
test(assert) {
assert.ok(!this.$('.user-directory-link').length);
}
});
widgetTest('general links', {
template: '{{mount-widget widget="hamburger-menu"}}',
test(assert) {
assert.ok(this.$('.about-link').length);
assert.ok(this.$('.keyboard-shortcuts-link').length);
}
});