From 81c4a133055267427989b0dfb4db21678c52ef40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baza=CC=81n?= Date: Tue, 9 May 2017 17:36:42 +0200 Subject: [PATCH] shows links to unfeasible/selected only after budget is balloting --- app/views/budgets/groups/show.html.erb | 36 +++++++++-------- app/views/budgets/show.html.erb | 36 +++++++++-------- spec/features/budgets/budgets_spec.rb | 55 +++++++++++++++++++++++--- 3 files changed, 87 insertions(+), 40 deletions(-) diff --git a/app/views/budgets/groups/show.html.erb b/app/views/budgets/groups/show.html.erb index d2e1c01fc..27d747c64 100644 --- a/app/views/budgets/groups/show.html.erb +++ b/app/views/budgets/groups/show.html.erb @@ -45,24 +45,26 @@ -<% unless @current_filter == "unfeasible" %> -
-
- - <%= link_to t("budgets.groups.show.unfeasible"), - budget_path(@budget, filter: "unfeasible") %> - +<% if @budget.balloting_or_later? %> + <% unless @current_filter == "unfeasible" %> +
+
+ + <%= link_to t("budgets.groups.show.unfeasible"), + budget_path(@budget, filter: "unfeasible") %> + +
-
-<% end %> + <% end %> -<% unless @current_filter == "unselected" %> -
-
- - <%= link_to t("budgets.groups.show.unselected"), - budget_path(@budget, filter: "unselected") %> - + <% unless @current_filter == "unselected" %> +
+
+ + <%= link_to t("budgets.groups.show.unselected"), + budget_path(@budget, filter: "unselected") %> + +
-
+ <% end %> <% end %> diff --git a/app/views/budgets/show.html.erb b/app/views/budgets/show.html.erb index f67b3ca9d..84b7691f3 100644 --- a/app/views/budgets/show.html.erb +++ b/app/views/budgets/show.html.erb @@ -70,24 +70,26 @@
-<% unless @current_filter == "unfeasible" %> -
-
- - <%= link_to t("budgets.show.unfeasible"), - budget_path(@budget, filter: "unfeasible") %> - +<% if @budget.balloting_or_later? %> + <% unless @current_filter == "unfeasible" %> +
+
+ + <%= link_to t("budgets.show.unfeasible"), + budget_path(@budget, filter: "unfeasible") %> + +
-
-<% end %> + <% end %> -<% unless @current_filter == "unselected" %> -
-
- - <%= link_to t("budgets.show.unselected"), - budget_path(@budget, filter: "unselected") %> - + <% unless @current_filter == "unselected" %> +
+
+ + <%= link_to t("budgets.show.unselected"), + budget_path(@budget, filter: "unselected") %> + +
-
+ <% end %> <% end %> diff --git a/spec/features/budgets/budgets_spec.rb b/spec/features/budgets/budgets_spec.rb index 4d4d603f3..81530a43d 100644 --- a/spec/features/budgets/budgets_spec.rb +++ b/spec/features/budgets/budgets_spec.rb @@ -8,14 +8,57 @@ feature 'Budgets' do budgets.each {|budget| expect(page).to have_link(budget.name)} end - scenario 'Show' do - budget = create(:budget) - group1 = create(:budget_group, budget: budget) - group2 = create(:budget_group, budget: budget) + context 'Show' do - visit budget_path(budget) + scenario "List all groups" do + budget = create(:budget) + group1 = create(:budget_group, budget: budget) + group2 = create(:budget_group, budget: budget) + + visit budget_path(budget) + + budget.groups.each {|group| expect(page).to have_link(group.name)} + end + + scenario "Links to unfeasible and selected if balloting or later" do + budget = create(:budget, :selecting) + group = create(:budget_group, budget: budget) + + visit budget_path(budget) + + expect(page).to_not have_link "See unfeasible investments" + expect(page).to_not have_link "See investments not selected for balloting phase" + + click_link group.name + + expect(page).to_not have_link "See unfeasible investments" + expect(page).to_not have_link "See investments not selected for balloting phase" + + budget.update(phase: :balloting) + + visit budget_path(budget) + + expect(page).to have_link "See unfeasible investments" + expect(page).to have_link "See investments not selected for balloting phase" + + click_link group.name + + expect(page).to have_link "See unfeasible investments" + expect(page).to have_link "See investments not selected for balloting phase" + + budget.update(phase: :finished) + + visit budget_path(budget) + + expect(page).to have_link "See unfeasible investments" + expect(page).to have_link "See investments not selected for balloting phase" + + click_link group.name + + expect(page).to have_link "See unfeasible investments" + expect(page).to have_link "See investments not selected for balloting phase" + end - budget.groups.each {|group| expect(page).to have_link(group.name)} end context 'Accepting' do