While this bug was already present in the general admin search, the combination of both search and filters was very uncommon. I've only found this combinations in the users section, where you've got the "erased" filter, but in this case searching for erased users doesn't really make sense since their username and email have been deleted and so there's nothing to find. So the hidden content seemed to be the only affected section. However, we're adding the field to every section so we don't have to make sure we add it when we need it (like we did in the SDGManagement section).
126 lines
4.7 KiB
Ruby
126 lines
4.7 KiB
Ruby
require "rails_helper"
|
|
|
|
describe "Hidden content search", :admin do
|
|
scenario "finds matching records" do
|
|
create(:budget_investment, :hidden, title: "New football field")
|
|
create(:budget_investment, :hidden, title: "New basketball field")
|
|
create(:budget_investment, :hidden, title: "New sports center")
|
|
|
|
visit admin_hidden_budget_investments_path
|
|
fill_in "search", with: "field"
|
|
click_button "Search"
|
|
|
|
expect(page).not_to have_content "New sports center"
|
|
expect(page).to have_content "New football field"
|
|
expect(page).to have_content "New basketball field"
|
|
end
|
|
|
|
scenario "returns no results if no records match the term" do
|
|
create(:comment, :hidden, body: "I like this feature")
|
|
|
|
visit admin_hidden_comments_path
|
|
fill_in "search", with: "love"
|
|
click_button "Search"
|
|
|
|
expect(page).to have_content "There are no hidden comments"
|
|
expect(page).not_to have_content "I like this feature"
|
|
expect(page).not_to have_content "I hate this feature"
|
|
end
|
|
|
|
scenario "returns all records when the search term is empty" do
|
|
create(:debate, :hidden, title: "Can we make it better?")
|
|
create(:debate, :hidden, title: "Can we make it worse?")
|
|
|
|
visit admin_hidden_debates_path(search: "worse")
|
|
|
|
expect(page).not_to have_content "Can we make it better?"
|
|
expect(page).to have_content "Can we make it worse?"
|
|
|
|
fill_in "search", with: " "
|
|
click_button "Search"
|
|
|
|
expect(page).to have_content "Can we make it better?"
|
|
expect(page).to have_content "Can we make it worse?"
|
|
expect(page).not_to have_content "There are no hidden debates"
|
|
end
|
|
|
|
scenario "keeps search parameters after restoring a record" do
|
|
create(:proposal_notification, :hidden, title: "Someone is telling you something")
|
|
create(:proposal_notification, :hidden, title: "Someone else says whatever")
|
|
create(:proposal_notification, :hidden, title: "Nobody is saying anything")
|
|
|
|
visit admin_hidden_proposal_notifications_path(search: "Someone")
|
|
|
|
expect(page).to have_content "Someone is telling you something"
|
|
expect(page).to have_content "Someone else says whatever"
|
|
expect(page).not_to have_content "Nobody is saying anything"
|
|
|
|
within "tr", text: "Someone is telling you something" do
|
|
accept_confirm("Are you sure? Restore") { click_button "Restore" }
|
|
end
|
|
|
|
expect(page).not_to have_content "Someone is telling you something"
|
|
expect(page).to have_content "Someone else says whatever"
|
|
expect(page).not_to have_content "Nobody is saying anything"
|
|
end
|
|
|
|
scenario "keeps search parameters after confirming moderation" do
|
|
create(:proposal, :hidden, title: "Reduce the incoming traffic")
|
|
create(:proposal, :hidden, title: "Reduce pollution")
|
|
create(:proposal, :hidden, title: "Increment pollution")
|
|
|
|
visit admin_hidden_proposals_path(search: "Reduce")
|
|
|
|
expect(page).to have_content "Reduce the incoming traffic"
|
|
expect(page).to have_content "Reduce pollution"
|
|
expect(page).not_to have_content "Increment pollution"
|
|
|
|
within("tr", text: "Reduce the incoming traffic") { click_button "Confirm moderation" }
|
|
|
|
expect(page).not_to have_content "Reduce the incoming traffic"
|
|
expect(page).to have_content "Reduce pollution"
|
|
expect(page).not_to have_content "Increment pollution"
|
|
end
|
|
|
|
scenario "keeps search parameters while browsing through filters" do
|
|
create(:user, :hidden, username: "person1")
|
|
create(:user, :hidden, username: "alien1")
|
|
create(:user, :hidden, :with_confirmed_hide, username: "person2")
|
|
create(:user, :hidden, :with_confirmed_hide, username: "alien2")
|
|
|
|
visit admin_hidden_users_path(search: "person")
|
|
|
|
expect(page).to have_content "person1"
|
|
expect(page).not_to have_content "person2"
|
|
expect(page).not_to have_content "alien1"
|
|
expect(page).not_to have_content "alien2"
|
|
|
|
click_link "Confirmed"
|
|
|
|
expect(page).not_to have_content "person1"
|
|
expect(page).to have_content "person2"
|
|
expect(page).not_to have_content "alien1"
|
|
expect(page).not_to have_content "alien2"
|
|
end
|
|
|
|
scenario "keeps filter parameters after searching" do
|
|
create(:user, :hidden, :with_confirmed_hide, username: "person1")
|
|
create(:user, :hidden, :with_confirmed_hide, username: "alien1")
|
|
create(:user, :hidden, username: "person2")
|
|
create(:user, :hidden, username: "alien2")
|
|
|
|
visit admin_hidden_users_path(filter: "with_confirmed_hide")
|
|
|
|
fill_in "search", with: "alien"
|
|
click_button "Search"
|
|
|
|
expect(page).not_to have_content "person1"
|
|
expect(page).to have_content "alien1"
|
|
expect(page).not_to have_content "person2"
|
|
expect(page).not_to have_content "alien2"
|
|
|
|
expect(page).to have_content "Confirmed"
|
|
expect(page).not_to have_link "Confirmed"
|
|
end
|
|
end
|