From 67663804c5db63588fd74a70ff90bfba934397c6 Mon Sep 17 00:00:00 2001 From: Bertocq Date: Sat, 3 Feb 2018 18:45:36 +0100 Subject: [PATCH 1/3] Improve investments milestone scenario for ordering Milestones should be listed ordered by publication date instead of creation date. The spec was creating only one milestone and not even expecting the descriptions to be present in the page. --- spec/features/budgets/investments_spec.rb | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/spec/features/budgets/investments_spec.rb b/spec/features/budgets/investments_spec.rb index d6fa36318..b41d8a712 100644 --- a/spec/features/budgets/investments_spec.rb +++ b/spec/features/budgets/investments_spec.rb @@ -910,9 +910,14 @@ feature 'Budget Investments' do scenario "Show milestones", :js do user = create(:user) investment = create(:budget_investment) - milestone = create(:budget_investment_milestone, investment: investment, title: "New text to show") - image = create(:image, imageable: milestone) - document = create(:document, documentable: milestone) + create(:budget_investment_milestone, investment: investment, + description: "Last milestone", + publication_date: Date.tomorrow) + first_milestone = create(:budget_investment_milestone, investment: investment, + description: "First milestone", + publication_date: Date.yesterday) + image = create(:image, imageable: first_milestone) + document = create(:document, documentable: first_milestone) login_as(user) visit budget_investment_path(budget_id: investment.budget.id, id: investment.id) @@ -920,10 +925,12 @@ feature 'Budget Investments' do find("#tab-milestones-label").trigger('click') within("#tab-milestones") do - expect(page).to have_content(milestone.description) - expect(page).to have_content(Date.current) - expect(page.find("#image_#{milestone.id}")['alt']).to have_content image.title - expect(page).to have_link document.title + expect(first_milestone.description).to appear_before('Last milestone') + expect(page).to have_content(Date.tomorrow) + expect(page).to have_content(Date.yesterday) + expect(page).not_to have_content(Date.current) + expect(page.find("#image_#{first_milestone.id}")['alt']).to have_content(image.title) + expect(page).to have_link(document.title) end end From a297faec4b440b85f3a96333d56fe790687675f5 Mon Sep 17 00:00:00 2001 From: Bertocq Date: Sat, 3 Feb 2018 18:49:06 +0100 Subject: [PATCH 2/3] Add order scope to milestone for publication date --- app/models/budget/investment/milestone.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/models/budget/investment/milestone.rb b/app/models/budget/investment/milestone.rb index 98ea506e9..a81638d0b 100644 --- a/app/models/budget/investment/milestone.rb +++ b/app/models/budget/investment/milestone.rb @@ -14,6 +14,9 @@ class Budget validates :investment, presence: true validates :publication_date, presence: true + + scope :order_by_publication_date, -> { order(publication_date: :asc) } + def self.title_max_length 80 end From 770086779efde7c6cf8f4dd3c6380e98d1bd0d0c Mon Sep 17 00:00:00 2001 From: Bertocq Date: Sat, 3 Feb 2018 19:15:59 +0100 Subject: [PATCH 3/3] Use new milestone order_by_publication_date order scope --- app/views/admin/budget_investments/_milestones.html.erb | 2 +- app/views/budgets/investments/_milestones.html.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/admin/budget_investments/_milestones.html.erb b/app/views/admin/budget_investments/_milestones.html.erb index b62065f42..75d4c65a1 100644 --- a/app/views/admin/budget_investments/_milestones.html.erb +++ b/app/views/admin/budget_investments/_milestones.html.erb @@ -12,7 +12,7 @@ - <% @investment.milestones.each do |milestone| %> + <% @investment.milestones.order_by_publication_date.each do |milestone| %> <%= milestone.id %> diff --git a/app/views/budgets/investments/_milestones.html.erb b/app/views/budgets/investments/_milestones.html.erb index 9e0f215c3..a9de80429 100644 --- a/app/views/budgets/investments/_milestones.html.erb +++ b/app/views/budgets/investments/_milestones.html.erb @@ -8,7 +8,7 @@ <% end %>
    - <% @investment.milestones.each do |milestone| %> + <% @investment.milestones.order_by_publication_date.each do |milestone| %>
  • <% if milestone.publication_date.present? %>