From c6fc0062d789d9bf6c2c4235d66327f4a2b42dc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Fri, 12 Jul 2019 00:29:30 +0200 Subject: [PATCH 1/3] Fix typo --- app/assets/javascripts/columns_selector.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/columns_selector.js b/app/assets/javascripts/columns_selector.js index b4d95334f..13219831e 100644 --- a/app/assets/javascripts/columns_selector.js +++ b/app/assets/javascripts/columns_selector.js @@ -1,7 +1,7 @@ (function() { "use strict"; App.ColumnsSelector = { - initColums: function() { + initColumns: function() { var c_value, columns; App.ColumnsSelector.hideAll(); c_value = App.ColumnsSelector.currentValue(); @@ -71,7 +71,7 @@ }, initialize: function() { App.ColumnsSelector.initChecks(); - App.ColumnsSelector.initColums(); + App.ColumnsSelector.initColumns(); $("#js-columns-selector").on({ click: function(event) { App.ColumnsSelector.toggleOptions(event); From 9d6ed7a0855f1d51935a07d544e1d6c9ef6caeba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Fri, 12 Jul 2019 00:40:15 +0200 Subject: [PATCH 2/3] Show only defined columns on inserted rows When we were inserting a row or replacing an existing one (just like we do when we click the link to select an investment), we were entering a row containing all columns, and all of them were displayed even if they had been excluded using the column selector. This caused the table to move in a strange way, which sometimes made the investment selection tests fail. --- app/assets/javascripts/columns_selector.js | 3 +++ .../budget_investments/toggle_selection.js.erb | 2 +- spec/features/admin/budget_investments_spec.rb | 15 +++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/columns_selector.js b/app/assets/javascripts/columns_selector.js index 13219831e..db22bb57d 100644 --- a/app/assets/javascripts/columns_selector.js +++ b/app/assets/javascripts/columns_selector.js @@ -82,6 +82,9 @@ App.ColumnsSelector.toggleColumn(event); } }); + $(".column-selecteable").on("inserted", function() { + App.ColumnsSelector.initColumns(); + }); } }; }).call(this); diff --git a/app/views/admin/budget_investments/toggle_selection.js.erb b/app/views/admin/budget_investments/toggle_selection.js.erb index 6ba72db2a..ecf457e8c 100644 --- a/app/views/admin/budget_investments/toggle_selection.js.erb +++ b/app/views/admin/budget_investments/toggle_selection.js.erb @@ -1 +1 @@ -$("#<%= dom_id(@investment) %>").html("<%= j render("select_investment", investment: @investment) %>"); +$("#<%= dom_id(@investment) %>").html("<%= j render("select_investment", investment: @investment) %>").trigger("inserted"); diff --git a/spec/features/admin/budget_investments_spec.rb b/spec/features/admin/budget_investments_spec.rb index b0686a9d4..a1c79fa33 100644 --- a/spec/features/admin/budget_investments_spec.rb +++ b/spec/features/admin/budget_investments_spec.rb @@ -1892,6 +1892,21 @@ describe "Admin budget investments" do "visible_to_valuators,selected,incompatible,author") end + + scenario "Select an investment when some columns are not displayed", :js do + investment.update_attribute(:title, "Don't display me, please!") + + visit admin_budget_budget_investments_path(budget) + within("#js-columns-selector") { find("strong", text: "Columns").click } + within("#js-columns-selector-wrapper") { uncheck "Title" } + + within("#budget_investment_#{investment.id}") do + click_link "Selected" + + expect(page).to have_link "Select" + expect(page).not_to have_content "Don't display me, please!" + end + end end end From cf5b538c1c85f0ef91b0ddd2df92296f158dd58b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Fri, 12 Jul 2019 00:43:01 +0200 Subject: [PATCH 3/3] Check page between AJAX requests While the test should work without this assertion, the intention of the test is to check what happens if a user selects and investment and, once it's selected, clicks the "next" link. --- spec/features/admin/budget_investments_spec.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/features/admin/budget_investments_spec.rb b/spec/features/admin/budget_investments_spec.rb index a1c79fa33..51f983939 100644 --- a/spec/features/admin/budget_investments_spec.rb +++ b/spec/features/admin/budget_investments_spec.rb @@ -1585,6 +1585,8 @@ describe "Admin budget investments" do within("#budget_investment_#{selected_bi.id}") do click_link("Selected") + + expect(page).to have_link "Select" end click_link("Next")