discourse/spec/system/admin_flags_spec.rb
Krzysztof Kotlarek 4b1e017722
FIX: move something else flag to the bottom (#27366)
The mistake was made when flags were moved to the database. The `notify_moderators` (something else) flag should be the last position on the list.

This commit contains 3 changes:
- update fixtures order;
- remove position and enable from fixtures (they can be overridden by admin and we don't want seed to restore them);
- migration to fix data if the order was not changed by admin.
2024-06-06 15:45:30 +10:00

75 lines
2.3 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 }
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")
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")
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")
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 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