FEATURE: Modal for profile featured topic & admin wrench refactor (#8545)
This commit is contained in:
committed by
GitHub
parent
7b6bafc651
commit
8c4ffaea1b
@@ -363,3 +363,54 @@ QUnit.test("recently connected devices", async assert => {
|
||||
"it should highlight password preferences"
|
||||
);
|
||||
});
|
||||
|
||||
acceptance(
|
||||
"User can select a topic to feature on profile if site setting in enabled",
|
||||
{
|
||||
loggedIn: true,
|
||||
settings: { allow_featured_topic_on_user_profiles: true },
|
||||
|
||||
pretend(server, helper) {
|
||||
server.put("/u/eviltrout/feature-topic", () => {
|
||||
return helper.response({
|
||||
success: true
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
QUnit.test("setting featured topic on profile", async assert => {
|
||||
await visit("/u/eviltrout/preferences/profile");
|
||||
|
||||
assert.ok(
|
||||
!exists(".featured-topic-link"),
|
||||
"no featured topic link to present"
|
||||
);
|
||||
assert.ok(
|
||||
!exists(".clear-feature-topic-on-profile-btn"),
|
||||
"clear button not present"
|
||||
);
|
||||
|
||||
const selectTopicBtn = find(".feature-topic-on-profile-btn:first");
|
||||
assert.ok(exists(selectTopicBtn), "feature topic button is present");
|
||||
|
||||
await click(selectTopicBtn);
|
||||
|
||||
assert.ok(exists(".feature-topic-on-profile"), "topic picker modal is open");
|
||||
|
||||
const topicRadioBtn = find('input[name="choose_topic_id"]:first');
|
||||
assert.ok(exists(topicRadioBtn), "Topic options are prefilled");
|
||||
await click(topicRadioBtn);
|
||||
|
||||
await click(".save-featured-topic-on-profile");
|
||||
|
||||
assert.ok(
|
||||
exists(".featured-topic-link"),
|
||||
"link to featured topic is present"
|
||||
);
|
||||
assert.ok(
|
||||
exists(".clear-feature-topic-on-profile-btn"),
|
||||
"clear button is present"
|
||||
);
|
||||
});
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
import { moduleForWidget, widgetTest } from "helpers/widget-test";
|
||||
import Topic from "discourse/models/topic";
|
||||
import Category from "discourse/models/category";
|
||||
|
||||
moduleForWidget("topic-admin-menu-button");
|
||||
|
||||
const createArgs = topic => {
|
||||
return {
|
||||
topic: topic,
|
||||
openUpwards: "true",
|
||||
toggleMultiSelect: () => {},
|
||||
deleteTopic: () => {},
|
||||
recoverTopic: () => {},
|
||||
toggleFeaturedOnProfile: () => {},
|
||||
toggleClosed: () => {},
|
||||
toggleArchived: () => {},
|
||||
toggleVisibility: () => {},
|
||||
showTopicStatusUpdate: () => {},
|
||||
showFeatureTopic: () => {},
|
||||
showChangeTimestamp: () => {},
|
||||
resetBumpDate: () => {},
|
||||
convertToPublicTopic: () => {},
|
||||
convertToPrivateMessage: () => {}
|
||||
};
|
||||
};
|
||||
|
||||
widgetTest("topic-admin-menu-button is present for admin/moderators", {
|
||||
template: '{{mount-widget widget="topic-admin-menu-button" args=args}}',
|
||||
|
||||
beforeEach() {
|
||||
this.currentUser.setProperties({
|
||||
admin: true,
|
||||
moderator: true,
|
||||
id: 123
|
||||
});
|
||||
const topic = Topic.create({ user_id: this.currentUser.id });
|
||||
topic.category = Category.create({ read_restricted: true });
|
||||
this.siteSettings.allow_featured_topic_on_user_profiles = true;
|
||||
this.set("args", createArgs(topic));
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.ok(exists(".toggle-admin-menu"), "admin wrench is present");
|
||||
}
|
||||
});
|
||||
|
||||
widgetTest(
|
||||
"topic-admin-menu-button shows for non-admin when the use can feature the topic",
|
||||
{
|
||||
template: '{{mount-widget widget="topic-admin-menu-button" args=args}}',
|
||||
|
||||
beforeEach() {
|
||||
this.currentUser.setProperties({
|
||||
admin: false,
|
||||
moderator: false,
|
||||
id: 123
|
||||
});
|
||||
const topic = Topic.create({ user_id: this.currentUser.id });
|
||||
topic.category = Category.create({ read_restricted: false });
|
||||
this.siteSettings.allow_featured_topic_on_user_profiles = true;
|
||||
this.set("args", createArgs(topic));
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.ok(exists(".toggle-admin-menu"), "admin wrench is present");
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
widgetTest(
|
||||
"topic-admin-menu-button hides for non-admin when there is no action",
|
||||
{
|
||||
template: '{{mount-widget widget="topic-admin-menu-button" args=args}}',
|
||||
|
||||
beforeEach() {
|
||||
this.currentUser.setProperties({
|
||||
admin: false,
|
||||
moderator: false,
|
||||
id: 123
|
||||
});
|
||||
const topic = Topic.create({ user_id: this.currentUser.id });
|
||||
topic.category = Category.create({ read_restricted: true });
|
||||
this.siteSettings.allow_featured_topic_on_user_profiles = true;
|
||||
this.set("args", createArgs(topic));
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.ok(!exists(".toggle-admin-menu"), "admin wrench is present");
|
||||
}
|
||||
}
|
||||
);
|
||||
Reference in New Issue
Block a user