mirror of
https://github.com/discourse/discourse.git
synced 2024-11-26 09:43:44 +08:00
4157161578
Before checking if flags were reordered on the topic page, we need to ensure that the reorder action was finished. To achieve it "saving" CSS is added and removed when AJAX call is completed.
152 lines
4.9 KiB
Ruby
152 lines
4.9 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
describe "Admin Flags Page", type: :system do
|
|
fab!(:admin)
|
|
fab!(:topic)
|
|
fab!(:post) { Fabricate(:post, topic: topic) }
|
|
|
|
let(:topic_page) { PageObjects::Pages::Topic.new }
|
|
let(:admin_flags_page) { PageObjects::Pages::AdminFlags.new }
|
|
let(:admin_flag_form_page) { PageObjects::Pages::AdminFlagForm.new }
|
|
|
|
before { sign_in(admin) }
|
|
|
|
it "allows admin to disable flags" do
|
|
topic_page.visit_topic(post.topic)
|
|
topic_page.open_flag_topic_modal
|
|
expect(all(".flag-action-type-details strong").map(&:text)).to eq(
|
|
["It's Inappropriate", "It's Spam", "It's Illegal", "Something Else"],
|
|
)
|
|
|
|
visit "/admin/config/flags"
|
|
admin_flags_page.toggle("spam")
|
|
expect(page).not_to have_css(".admin-flag-item.spam.saving")
|
|
|
|
topic_page.visit_topic(post.topic)
|
|
topic_page.open_flag_topic_modal
|
|
expect(all(".flag-action-type-details strong").map(&:text)).to eq(
|
|
["It's Inappropriate", "It's Illegal", "Something Else"],
|
|
)
|
|
|
|
Flag.system.where(name: "spam").update!(enabled: true)
|
|
end
|
|
|
|
it "allows admin to change order of flags" do
|
|
topic_page.visit_topic(post.topic)
|
|
topic_page.open_flag_topic_modal
|
|
expect(all(".flag-action-type-details strong").map(&:text)).to eq(
|
|
["It's Inappropriate", "It's Spam", "It's Illegal", "Something Else"],
|
|
)
|
|
|
|
visit "/admin/config/flags"
|
|
admin_flags_page.move_down("spam")
|
|
expect(page).not_to have_css(".admin-flag-item.spam.saving")
|
|
|
|
topic_page.visit_topic(post.topic)
|
|
topic_page.open_flag_topic_modal
|
|
expect(all(".flag-action-type-details strong").map(&:text)).to eq(
|
|
["It's Inappropriate", "It's Illegal", "It's Spam", "Something Else"],
|
|
)
|
|
|
|
visit "/admin/config/flags"
|
|
admin_flags_page.move_up("spam")
|
|
expect(page).not_to have_css(".admin-flag-item.spam.saving")
|
|
|
|
topic_page.visit_topic(post.topic)
|
|
topic_page.open_flag_topic_modal
|
|
expect(all(".flag-action-type-details strong").map(&:text)).to eq(
|
|
["It's Inappropriate", "It's Spam", "It's Illegal", "Something Else"],
|
|
)
|
|
end
|
|
|
|
it "allows admin to create, edit and delete flags" do
|
|
topic_page.visit_topic(post.topic)
|
|
topic_page.open_flag_topic_modal
|
|
expect(all(".flag-action-type-details strong").map(&:text)).to eq(
|
|
["It's Inappropriate", "It's Spam", "It's Illegal", "Something Else"],
|
|
)
|
|
|
|
visit "/admin/config/flags"
|
|
|
|
admin_flags_page.click_add_flag
|
|
|
|
expect(admin_flag_form_page).to have_disabled_save_button
|
|
|
|
admin_flag_form_page.fill_in_name("Vulgar")
|
|
admin_flag_form_page.fill_in_description("New flag description")
|
|
admin_flag_form_page.fill_in_applies_to("Topic")
|
|
admin_flag_form_page.fill_in_applies_to("Post")
|
|
admin_flag_form_page.click_save
|
|
|
|
expect(all(".admin-flag-item__name").map(&:text)).to eq(
|
|
[
|
|
"Send @%{username} a message",
|
|
"Off-Topic",
|
|
"Inappropriate",
|
|
"Spam",
|
|
"Illegal",
|
|
"Something Else",
|
|
"Vulgar",
|
|
],
|
|
)
|
|
|
|
topic_page.visit_topic(post.topic)
|
|
topic_page.open_flag_topic_modal
|
|
expect(all(".flag-action-type-details strong").map(&:text)).to eq(
|
|
["It's Inappropriate", "It's Spam", "It's Illegal", "Something Else", "Vulgar"],
|
|
)
|
|
|
|
visit "/admin/config/flags"
|
|
|
|
admin_flags_page.click_edit_flag("vulgar")
|
|
|
|
admin_flag_form_page.fill_in_name("Tasteless")
|
|
admin_flag_form_page.click_save
|
|
|
|
topic_page.visit_topic(post.topic)
|
|
topic_page.open_flag_topic_modal
|
|
expect(all(".flag-action-type-details strong").map(&:text)).to eq(
|
|
["It's Inappropriate", "It's Spam", "It's Illegal", "Something Else", "Tasteless"],
|
|
)
|
|
|
|
visit "/admin/config/flags"
|
|
admin_flags_page.click_delete_flag("tasteless")
|
|
admin_flags_page.confirm_delete
|
|
expect(page).not_to have_css(".admin-flag-item.tasteless.saving")
|
|
|
|
topic_page.visit_topic(post.topic)
|
|
topic_page.open_flag_topic_modal
|
|
expect(all(".flag-action-type-details strong").map(&:text)).to eq(
|
|
["It's Inappropriate", "It's Spam", "It's Illegal", "Something Else"],
|
|
)
|
|
end
|
|
|
|
it "does not allow to move notify user flag" do
|
|
visit "/admin/config/flags"
|
|
expect(page).not_to have_css(".notify_user .flag-menu-trigger")
|
|
end
|
|
|
|
it "does not allow bottom flag to move down" do
|
|
visit "/admin/config/flags"
|
|
admin_flags_page.open_flag_menu("notify_moderators")
|
|
expect(page).not_to have_css(".dropdown-menu__item .move-down")
|
|
end
|
|
|
|
it "does not allow to system flag to be edited" do
|
|
visit "/admin/config/flags"
|
|
expect(page).to have_css(".off_topic .admin-flag-item__edit[disabled]")
|
|
end
|
|
|
|
it "does not allow to system flag to be deleted" do
|
|
visit "/admin/config/flags"
|
|
admin_flags_page.open_flag_menu("notify_moderators")
|
|
expect(page).to have_css(".admin-flag-item__delete[disabled]")
|
|
end
|
|
|
|
it "does not allow top flag to move up" do
|
|
visit "/admin/config/flags"
|
|
admin_flags_page.open_flag_menu("off_topic")
|
|
expect(page).not_to have_css(".dropdown-menu__item .move-up")
|
|
end
|
|
end
|