Use a button to toggle investment selection

As mentioned in commit 5311daadf, using buttons for non-GET requests has
several advantages over using links.
This commit is contained in:
Javi Martín
2021-08-21 00:54:04 +02:00
parent cf0d8258ed
commit 9e5566cee4
3 changed files with 20 additions and 20 deletions

View File

@@ -1,5 +1,5 @@
<% if can?(:toggle_selection, investment) %>
<%= link_to text, path, method: :patch, remote: true, class: html_class %>
<%= button_to text, path, method: :patch, remote: true, class: html_class %>
<% elsif selected? %>
<%= selected_text %>
<% end %>

View File

@@ -15,22 +15,22 @@ describe Admin::BudgetInvestments::ToggleSelectionComponent, :admin do
expect(page).not_to be_rendered
end
it "renders a link to select unselected evaluated investments" do
it "renders a button to select unselected evaluated investments" do
valuation_finished_investment = create(:budget_investment, :feasible, :finished, budget: budget)
render_inline Admin::BudgetInvestments::ToggleSelectionComponent.new(valuation_finished_investment)
expect(page).to have_link "Select"
expect(page).not_to have_link "Selected"
expect(page).to have_button "Select"
expect(page).not_to have_button "Selected"
end
it "renders a link to deselect selected investments" do
it "renders a button to deselect selected investments" do
selected_investment = create(:budget_investment, :selected, budget: budget)
render_inline Admin::BudgetInvestments::ToggleSelectionComponent.new(selected_investment)
expect(page).to have_link "Selected"
expect(page).not_to have_link "Select"
expect(page).to have_button "Selected"
expect(page).not_to have_button "Select"
end
end
@@ -58,7 +58,7 @@ describe Admin::BudgetInvestments::ToggleSelectionComponent, :admin do
render_inline Admin::BudgetInvestments::ToggleSelectionComponent.new(selected_investment)
expect(page).to have_content "Selected"
expect(page).not_to have_link "Selected"
expect(page).not_to have_button "Selected"
end
end
end

View File

@@ -1411,8 +1411,8 @@ describe "Admin budget investments", :admin do
visit admin_budget_budget_investments_path(budget)
within("#budget_investment_#{feasible_vf_bi.id}") do
click_link("Select")
expect(page).to have_link("Selected")
click_button "Select"
expect(page).to have_button "Selected"
end
click_link "Advanced filters"
@@ -1421,8 +1421,8 @@ describe "Admin budget investments", :admin do
click_button("Filter")
within("#budget_investment_#{feasible_vf_bi.id}") do
expect(page).not_to have_link("Select")
expect(page).to have_link("Selected")
expect(page).not_to have_button "Select"
expect(page).to have_button "Selected"
end
end
@@ -1436,9 +1436,9 @@ describe "Admin budget investments", :admin do
expect(page).to have_content("There are 2 investments")
within("#budget_investment_#{selected_bi.id}") do
click_link("Selected")
click_button "Selected"
expect(page).to have_link("Select")
expect(page).to have_button "Select"
end
click_button("Filter")
@@ -1448,8 +1448,8 @@ describe "Admin budget investments", :admin do
visit admin_budget_budget_investments_path(budget)
within("#budget_investment_#{selected_bi.id}") do
expect(page).to have_link("Select")
expect(page).not_to have_link("Selected")
expect(page).to have_button "Select"
expect(page).not_to have_button "Selected"
end
end
@@ -1462,9 +1462,9 @@ describe "Admin budget investments", :admin do
visit admin_budget_budget_investments_path(budget)
within("#budget_investment_#{selected_bi.id}") do
click_link("Selected")
click_button "Selected"
expect(page).to have_link "Select"
expect(page).to have_button "Select"
end
click_link("Next")
@@ -1802,9 +1802,9 @@ describe "Admin budget investments", :admin do
within("#js-columns-selector-wrapper") { uncheck "Title" }
within("#budget_investment_#{investment.id}") do
click_link "Selected"
click_button "Selected"
expect(page).to have_link "Select"
expect(page).to have_button "Select"
expect(page).not_to have_content "Don't display me, please!"
end
end