From acae610995c0199871f5ebbe1e1ea23685a4f2b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 12 Sep 2016 18:15:18 +0200 Subject: [PATCH] adds model specs for archived proposal --- spec/features/proposals_spec.rb | 19 +++++++------------ spec/models/proposal_spec.rb | 19 +++++++++++++++++++ spec/support/common_actions.rb | 4 ++-- 3 files changed, 28 insertions(+), 14 deletions(-) diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index 70dcfec9f..7b86ff0c9 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -678,7 +678,7 @@ feature 'Proposals' do feature 'Archived proposals' do - scenario 'Archived proposals show on archived tab' do + scenario 'Show on archived tab' do create_featured_proposals archived_proposals = create_archived_proposals @@ -692,7 +692,7 @@ feature 'Proposals' do end end - scenario 'Archived proposals do not show support buttons in index' do + scenario 'Do not show support buttons in index' do create_featured_proposals archived_proposals = create_archived_proposals @@ -708,19 +708,14 @@ feature 'Proposals' do end end - scenario 'Archived proposals do not show support buttons in show' do + scenario 'Do not show support buttons in show' do create_featured_proposals archived_proposals = create_archived_proposals - visit proposals_path - - within("#proposals-list") do - archived_proposals.each do |proposal| - within("#proposal_#{proposal.id}_votes") do - expect(page).to_not have_css(".supports") - expect(page).to have_content "This proposal has been archived and can't collect supports" - end - end + archived_proposals.each do |proposal| + visit proposal_path(proposal) + expect(page).to_not have_css(".supports") + expect(page).to have_content "This proposal has been archived and can't collect supports" end end diff --git a/spec/models/proposal_spec.rb b/spec/models/proposal_spec.rb index 247cd9e66..5ef042fca 100644 --- a/spec/models/proposal_spec.rb +++ b/spec/models/proposal_spec.rb @@ -811,4 +811,23 @@ describe Proposal do end end + describe "archived" do + before(:all) do + @new_proposal = create(:proposal) + @archived_proposal = create(:proposal, created_at: (Setting["months_to_archive_proposals"].to_i + 1).months.ago) + end + + it "archived? is true only for proposals created more than n (configured months) ago" do + expect(@new_proposal.archived?).to eq false + expect(@archived_proposal.archived?).to eq true + end + + it "scope archived" do + archived = Proposal.archived + + expect(archived.size).to eq(1) + expect(archived.first).to eq(@archived_proposal) + end + end + end diff --git a/spec/support/common_actions.rb b/spec/support/common_actions.rb index 5e125cf8f..af57eb61c 100644 --- a/spec/support/common_actions.rb +++ b/spec/support/common_actions.rb @@ -193,8 +193,8 @@ module CommonActions end def create_archived_proposals - [create(:proposal, title: "This is an expired proposal", created_at: Time.now - Setting["months_to_archive_proposals"].to_i.month), - create(:proposal, title: "This is an oldest expired proposal", created_at: Time.now - Setting["months_to_archive_proposals"].to_i.month - 2.month)] + [create(:proposal, title: "This is an expired proposal", created_at: Setting["months_to_archive_proposals"].to_i.months.ago), + create(:proposal, title: "This is an oldest expired proposal", created_at: (Setting["months_to_archive_proposals"].to_i + 2).months.ago)] end def tag_names(tag_cloud)