Enable RSpec/ExpectActual cop and fix all issues

Always use a variable and not a literal as `expect` argument

Read about cop at http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/ExpectActual
This commit is contained in:
Bertocq
2018-01-07 01:38:33 +01:00
parent 0698043340
commit f6aed3f9f1
9 changed files with 128 additions and 100 deletions

View File

@@ -74,4 +74,7 @@ RSpec/ExampleLength:
Enabled: false Enabled: false
RSpec/ExampleWording: RSpec/ExampleWording:
Enabled: true
RSpec/ExpectActual:
Enabled: true Enabled: true

View File

@@ -203,17 +203,20 @@ feature 'Budget Investments' do
end end
scenario 'Proposals are ordered by confidence_score', :js do scenario 'Proposals are ordered by confidence_score', :js do
create(:budget_investment, heading: heading, title: 'Best proposal').update_column(:confidence_score, 10) best_proposal = create(:budget_investment, heading: heading, title: 'Best proposal')
create(:budget_investment, heading: heading, title: 'Worst proposal').update_column(:confidence_score, 2) best_proposal.update_column(:confidence_score, 10)
create(:budget_investment, heading: heading, title: 'Medium proposal').update_column(:confidence_score, 5) worst_proposal = create(:budget_investment, heading: heading, title: 'Worst proposal')
worst_proposal.update_column(:confidence_score, 2)
medium_proposal = create(:budget_investment, heading: heading, title: 'Medium proposal')
medium_proposal.update_column(:confidence_score, 5)
visit budget_investments_path(budget, heading_id: heading.id) visit budget_investments_path(budget, heading_id: heading.id)
click_link 'highest rated' click_link 'highest rated'
expect(page).to have_selector('a.active', text: 'highest rated') expect(page).to have_selector('a.active', text: 'highest rated')
within '#budget-investments' do within '#budget-investments' do
expect('Best proposal').to appear_before('Medium proposal') expect(best_proposal.title).to appear_before(medium_proposal.title)
expect('Medium proposal').to appear_before('Worst proposal') expect(medium_proposal.title).to appear_before(worst_proposal.title)
end end
expect(current_url).to include('order=confidence_score') expect(current_url).to include('order=confidence_score')
@@ -739,9 +742,11 @@ feature 'Budget Investments' do
end end
scenario 'Order by cost (only when balloting)' do scenario 'Order by cost (only when balloting)' do
create(:budget_investment, :selected, heading: heading, title: 'Build a nice house', price: 1000).update_column(:confidence_score, 10) mid_investment = create(:budget_investment, :selected, heading: heading, title: 'Build a nice house', price: 1000)
create(:budget_investment, :selected, heading: heading, title: 'Build an ugly house', price: 1000).update_column(:confidence_score, 5) mid_investment.update_column(:confidence_score, 10)
create(:budget_investment, :selected, heading: heading, title: 'Build a skyscraper', price: 20000) low_investment = create(:budget_investment, :selected, heading: heading, title: 'Build an ugly house', price: 1000)
low_investment.update_column(:confidence_score, 5)
high_investment = create(:budget_investment, :selected, heading: heading, title: 'Build a skyscraper', price: 20000)
visit budget_investments_path(budget, heading_id: heading.id) visit budget_investments_path(budget, heading_id: heading.id)
@@ -749,8 +754,8 @@ feature 'Budget Investments' do
expect(page).to have_selector('a.active', text: 'by price') expect(page).to have_selector('a.active', text: 'by price')
within '#budget-investments' do within '#budget-investments' do
expect('Build a skyscraper').to appear_before('Build a nice house') expect(high_investment.title).to appear_before(mid_investment.title)
expect('Build a nice house').to appear_before('Build an ugly house') expect(mid_investment.title).to appear_before(low_investment.title)
end end
expect(current_url).to include('order=price') expect(current_url).to include('order=price')

View File

@@ -309,20 +309,26 @@ feature 'Debates' do
feature 'Debate index order filters' do feature 'Debate index order filters' do
scenario 'Default order is hot_score', :js do scenario 'Default order is hot_score', :js do
create(:debate, title: 'Best').update_column(:hot_score, 10) best_debate = create(:debate, title: 'Best')
create(:debate, title: 'Worst').update_column(:hot_score, 2) best_debate.update_column(:hot_score, 10)
create(:debate, title: 'Medium').update_column(:hot_score, 5) worst_debate = create(:debate, title: 'Worst')
worst_debate.update_column(:hot_score, 2)
medium_debate = create(:debate, title: 'Medium')
medium_debate.update_column(:hot_score, 5)
visit debates_path visit debates_path
expect('Best').to appear_before('Medium') expect(best_debate.title).to appear_before(medium_debate.title)
expect('Medium').to appear_before('Worst') expect(medium_debate.title).to appear_before(worst_debate.title)
end end
scenario 'Debates are ordered by confidence_score', :js do scenario 'Debates are ordered by confidence_score', :js do
create(:debate, title: 'Best').update_column(:confidence_score, 10) best_debate = create(:debate, title: 'Best')
create(:debate, title: 'Worst').update_column(:confidence_score, 2) best_debate.update_column(:confidence_score, 10)
create(:debate, title: 'Medium').update_column(:confidence_score, 5) worst_debate = create(:debate, title: 'Worst')
worst_debate.update_column(:confidence_score, 2)
medium_debate = create(:debate, title: 'Medium')
medium_debate.update_column(:confidence_score, 5)
visit debates_path visit debates_path
click_link 'highest rated' click_link 'highest rated'
@@ -330,8 +336,8 @@ feature 'Debates' do
expect(page).to have_selector('a.active', text: 'highest rated') expect(page).to have_selector('a.active', text: 'highest rated')
within '#debates' do within '#debates' do
expect('Best').to appear_before('Medium') expect(best_debate.title).to appear_before(medium_debate.title)
expect('Medium').to appear_before('Worst') expect(medium_debate.title).to appear_before(worst_debate.title)
end end
expect(current_url).to include('order=confidence_score') expect(current_url).to include('order=confidence_score')
@@ -339,9 +345,9 @@ feature 'Debates' do
end end
scenario 'Debates are ordered by newest', :js do scenario 'Debates are ordered by newest', :js do
create(:debate, title: 'Best', created_at: Time.current) best_debate = create(:debate, title: 'Best', created_at: Time.current)
create(:debate, title: 'Medium', created_at: Time.current - 1.hour) medium_debate = create(:debate, title: 'Medium', created_at: Time.current - 1.hour)
create(:debate, title: 'Worst', created_at: Time.current - 1.day) worst_debate = create(:debate, title: 'Worst', created_at: Time.current - 1.day)
visit debates_path visit debates_path
click_link 'newest' click_link 'newest'
@@ -349,8 +355,8 @@ feature 'Debates' do
expect(page).to have_selector('a.active', text: 'newest') expect(page).to have_selector('a.active', text: 'newest')
within '#debates' do within '#debates' do
expect('Best').to appear_before('Medium') expect(best_debate.title).to appear_before(medium_debate.title)
expect('Medium').to appear_before('Worst') expect(medium_debate.title).to appear_before(worst_debate.title)
end end
expect(current_url).to include('order=created_at') expect(current_url).to include('order=created_at')
@@ -359,11 +365,12 @@ feature 'Debates' do
context 'Recommendations' do context 'Recommendations' do
let!(:best_debate) { create(:debate, title: 'Best', cached_votes_total: 10, tag_list: "Sport") }
let!(:medium_debate) { create(:debate, title: 'Medium', cached_votes_total: 5, tag_list: "Sport") }
let!(:worst_debate) { create(:debate, title: 'Worst', cached_votes_total: 1, tag_list: "Sport") }
background do background do
Setting['feature.user.recommendations'] = true Setting['feature.user.recommendations'] = true
create(:debate, title: 'Best', cached_votes_total: 10, tag_list: "Sport")
create(:debate, title: 'Medium', cached_votes_total: 5, tag_list: "Sport")
create(:debate, title: 'Worst', cached_votes_total: 1, tag_list: "Sport")
end end
after do after do
@@ -411,8 +418,8 @@ feature 'Debates' do
expect(page).to have_selector('a.active', text: 'recommendations') expect(page).to have_selector('a.active', text: 'recommendations')
within '#debates' do within '#debates' do
expect('Best').to appear_before('Medium') expect(best_debate.title).to appear_before(medium_debate.title)
expect('Medium').to appear_before('Worst') expect(medium_debate.title).to appear_before(worst_debate.title)
end end
expect(current_url).to include('order=recommendations') expect(current_url).to include('order=recommendations')

View File

@@ -275,10 +275,10 @@ feature 'Budget Investments' do
scenario "Filtering budget investments by heading to be printed", :js do scenario "Filtering budget investments by heading to be printed", :js do
district_9 = create(:budget_heading, group: @group, name: "District Nine") district_9 = create(:budget_heading, group: @group, name: "District Nine")
create(:budget_investment, budget: @budget, title: 'Change district 9', heading: district_9, cached_votes_up: 10) low_investment = create(:budget_investment, budget: @budget, title: 'Nuke district 9', heading: district_9, cached_votes_up: 1)
create(:budget_investment, budget: @budget, title: 'Destroy district 9', heading: district_9, cached_votes_up: 100) mid_investment = create(:budget_investment, budget: @budget, title: 'Change district 9', heading: district_9, cached_votes_up: 10)
create(:budget_investment, budget: @budget, title: 'Nuke district 9', heading: district_9, cached_votes_up: 1) top_investment = create(:budget_investment, budget: @budget, title: 'Destroy district 9', heading: district_9, cached_votes_up: 100)
create(:budget_investment, budget: @budget, title: 'Add new districts to the city') unvoted_investment = create(:budget_investment, budget: @budget, title: 'Add new districts to the city')
user = create(:user, :level_two) user = create(:user, :level_two)
login_managed_user(user) login_managed_user(user)
@@ -290,19 +290,19 @@ feature 'Budget Investments' do
end end
within '#budget-investments' do within '#budget-investments' do
expect(page).to have_content('Add new districts to the city') expect(page).to have_content(unvoted_investment.title)
expect(page).to have_content('Change district 9') expect(page).to have_content(mid_investment.title)
expect(page).to have_content('Destroy district 9') expect(page).to have_content(top_investment.title)
expect(page).to have_content('Nuke district 9') expect(page).to have_content(low_investment.title)
end end
select 'Whole city: District Nine', from: 'heading_id' select 'Whole city: District Nine', from: 'heading_id'
click_button("Search") click_button("Search")
within '#budget-investments' do within '#budget-investments' do
expect(page).to_not have_content('Add new districts to the city') expect(page).to_not have_content(unvoted_investment.title)
expect('Destroy district 9').to appear_before('Change district 9') expect(top_investment.title).to appear_before(mid_investment.title)
expect('Change district 9').to appear_before('Nuke district 9') expect(mid_investment.title).to appear_before(low_investment.title)
end end
end end

View File

@@ -194,9 +194,12 @@ feature 'Proposals' do
end end
scenario "Filtering proposals to be printed", :js do scenario "Filtering proposals to be printed", :js do
create(:proposal, title: 'Worst proposal').update_column(:confidence_score, 2) worst_proposal = create(:proposal, title: 'Worst proposal')
create(:proposal, title: 'Best proposal').update_column(:confidence_score, 10) worst_proposal.update_column(:confidence_score, 2)
create(:proposal, title: 'Medium proposal').update_column(:confidence_score, 5) best_proposal = create(:proposal, title: 'Best proposal')
best_proposal.update_column(:confidence_score, 10)
medium_proposal = create(:proposal, title: 'Medium proposal')
medium_proposal.update_column(:confidence_score, 5)
user = create(:user, :level_two) user = create(:user, :level_two)
login_managed_user(user) login_managed_user(user)
@@ -206,8 +209,8 @@ feature 'Proposals' do
expect(page).to have_selector('.js-order-selector[data-order="confidence_score"]') expect(page).to have_selector('.js-order-selector[data-order="confidence_score"]')
within(".proposals-list") do within(".proposals-list") do
expect('Best proposal').to appear_before('Medium proposal') expect(best_proposal.title).to appear_before(medium_proposal.title)
expect('Medium proposal').to appear_before('Worst proposal') expect(medium_proposal.title).to appear_before(worst_proposal.title)
end end
select 'newest', from: 'order-selector' select 'newest', from: 'order-selector'
@@ -218,8 +221,8 @@ feature 'Proposals' do
expect(current_url).to include('page=1') expect(current_url).to include('page=1')
within(".proposals-list") do within(".proposals-list") do
expect('Medium proposal').to appear_before('Best proposal') expect(medium_proposal.title).to appear_before(best_proposal.title)
expect('Best proposal').to appear_before('Worst proposal') expect(best_proposal.title).to appear_before(worst_proposal.title)
end end
end end

View File

@@ -170,27 +170,27 @@ feature 'Moderate comments' do
end end
scenario "sorting comments" do scenario "sorting comments" do
create(:comment, body: "Flagged comment", created_at: Time.current - 1.day, flags_count: 5) flagged_comment = create(:comment, body: "Flagged comment", created_at: Time.current - 1.day, flags_count: 5)
create(:comment, body: "Flagged newer comment", created_at: Time.current - 12.hours, flags_count: 3) flagged_new_comment = create(:comment, body: "Flagged new comment", created_at: Time.current - 12.hours, flags_count: 3)
create(:comment, body: "Newer comment", created_at: Time.current) newer_comment = create(:comment, body: "Newer comment", created_at: Time.current)
visit moderation_comments_path(order: 'newest') visit moderation_comments_path(order: 'newest')
expect("Flagged newer comment").to appear_before("Flagged comment") expect(flagged_new_comment.body).to appear_before(flagged_comment.body)
visit moderation_comments_path(order: 'flags') visit moderation_comments_path(order: 'flags')
expect("Flagged comment").to appear_before("Flagged newer comment") expect(flagged_comment.body).to appear_before(flagged_new_comment.body)
visit moderation_comments_path(filter: 'all', order: 'newest') visit moderation_comments_path(filter: 'all', order: 'newest')
expect("Newer comment").to appear_before("Flagged newer comment") expect(newer_comment.body).to appear_before(flagged_new_comment.body)
expect("Flagged newer comment").to appear_before("Flagged comment") expect(flagged_new_comment.body).to appear_before(flagged_comment.body)
visit moderation_comments_path(filter: 'all', order: 'flags') visit moderation_comments_path(filter: 'all', order: 'flags')
expect("Flagged comment").to appear_before("Flagged newer comment") expect(flagged_comment.body).to appear_before(flagged_new_comment.body)
expect("Flagged newer comment").to appear_before("Newer comment") expect(flagged_new_comment.body).to appear_before(newer_comment.body)
end end
end end
end end

View File

@@ -179,27 +179,27 @@ feature 'Moderate debates' do
end end
scenario "sorting debates" do scenario "sorting debates" do
create(:debate, title: "Flagged debate", created_at: Time.current - 1.day, flags_count: 5) flagged_debate = create(:debate, title: "Flagged debate", created_at: Time.current - 1.day, flags_count: 5)
create(:debate, title: "Flagged newer debate", created_at: Time.current - 12.hours, flags_count: 3) flagged_new_debate = create(:debate, title: "Flagged new debate", created_at: Time.current - 12.hours, flags_count: 3)
create(:debate, title: "Newer debate", created_at: Time.current) newer_debate = create(:debate, title: "Newer debate", created_at: Time.current)
visit moderation_debates_path(order: 'created_at') visit moderation_debates_path(order: 'created_at')
expect("Flagged newer debate").to appear_before("Flagged debate") expect(flagged_new_debate.title).to appear_before(flagged_debate.title)
visit moderation_debates_path(order: 'flags') visit moderation_debates_path(order: 'flags')
expect("Flagged debate").to appear_before("Flagged newer debate") expect(flagged_debate.title).to appear_before(flagged_new_debate.title)
visit moderation_debates_path(filter: 'all', order: 'created_at') visit moderation_debates_path(filter: 'all', order: 'created_at')
expect("Newer debate").to appear_before("Flagged newer debate") expect(newer_debate.title).to appear_before(flagged_new_debate.title)
expect("Flagged newer debate").to appear_before("Flagged debate") expect(flagged_new_debate.title).to appear_before(flagged_debate.title)
visit moderation_debates_path(filter: 'all', order: 'flags') visit moderation_debates_path(filter: 'all', order: 'flags')
expect("Flagged debate").to appear_before("Flagged newer debate") expect(flagged_debate.title).to appear_before(flagged_new_debate.title)
expect("Flagged newer debate").to appear_before("Newer debate") expect(flagged_new_debate.title).to appear_before(newer_debate.title)
end end
end end
end end

View File

@@ -179,27 +179,27 @@ feature 'Moderate proposals' do
end end
scenario "sorting proposals" do scenario "sorting proposals" do
create(:proposal, title: "Flagged proposal", created_at: Time.current - 1.day, flags_count: 5) flagged_proposal = create(:proposal, title: "Flagged proposal", created_at: Time.current - 1.day, flags_count: 5)
create(:proposal, title: "Flagged newer proposal", created_at: Time.current - 12.hours, flags_count: 3) flagged_new_proposal = create(:proposal, title: "Flagged new proposal", created_at: Time.current - 12.hours, flags_count: 3)
create(:proposal, title: "Newer proposal", created_at: Time.current) newer_proposal = create(:proposal, title: "Newer proposal", created_at: Time.current)
visit moderation_proposals_path(order: 'created_at') visit moderation_proposals_path(order: 'created_at')
expect("Flagged newer proposal").to appear_before("Flagged proposal") expect(flagged_new_proposal.title).to appear_before(flagged_proposal.title)
visit moderation_proposals_path(order: 'flags') visit moderation_proposals_path(order: 'flags')
expect("Flagged proposal").to appear_before("Flagged newer proposal") expect(flagged_proposal.title).to appear_before(flagged_new_proposal.title)
visit moderation_proposals_path(filter: 'all', order: 'created_at') visit moderation_proposals_path(filter: 'all', order: 'created_at')
expect("Newer proposal").to appear_before("Flagged newer proposal") expect(newer_proposal.title).to appear_before(flagged_new_proposal.title)
expect("Flagged newer proposal").to appear_before("Flagged proposal") expect(flagged_new_proposal.title).to appear_before(flagged_proposal.title)
visit moderation_proposals_path(filter: 'all', order: 'flags') visit moderation_proposals_path(filter: 'all', order: 'flags')
expect("Flagged proposal").to appear_before("Flagged newer proposal") expect(flagged_proposal.title).to appear_before(flagged_new_proposal.title)
expect("Flagged newer proposal").to appear_before("Newer proposal") expect(flagged_new_proposal.title).to appear_before(newer_proposal.title)
end end
end end
end end

View File

@@ -634,30 +634,36 @@ feature 'Proposals' do
scenario 'Default order is hot_score', :js do scenario 'Default order is hot_score', :js do
create_featured_proposals create_featured_proposals
create(:proposal, title: 'Best proposal').update_column(:hot_score, 10) best_proposal = create(:proposal, title: 'Best proposal')
create(:proposal, title: 'Worst proposal').update_column(:hot_score, 2) best_proposal.update_column(:hot_score, 10)
create(:proposal, title: 'Medium proposal').update_column(:hot_score, 5) worst_proposal = create(:proposal, title: 'Worst proposal')
worst_proposal.update_column(:hot_score, 2)
medium_proposal = create(:proposal, title: 'Medium proposal')
medium_proposal.update_column(:hot_score, 5)
visit proposals_path visit proposals_path
expect('Best proposal').to appear_before('Medium proposal') expect(best_proposal.title).to appear_before(medium_proposal.title)
expect('Medium proposal').to appear_before('Worst proposal') expect(medium_proposal.title).to appear_before(worst_proposal.title)
end end
scenario 'Proposals are ordered by confidence_score', :js do scenario 'Proposals are ordered by confidence_score', :js do
create_featured_proposals create_featured_proposals
create(:proposal, title: 'Best proposal').update_column(:confidence_score, 10) best_proposal = create(:proposal, title: 'Best proposal')
create(:proposal, title: 'Worst proposal').update_column(:confidence_score, 2) best_proposal.update_column(:confidence_score, 10)
create(:proposal, title: 'Medium proposal').update_column(:confidence_score, 5) worst_proposal = create(:proposal, title: 'Worst proposal')
worst_proposal.update_column(:confidence_score, 2)
medium_proposal = create(:proposal, title: 'Medium proposal')
medium_proposal.update_column(:confidence_score, 5)
visit proposals_path visit proposals_path
click_link 'highest rated' click_link 'highest rated'
expect(page).to have_selector('a.active', text: 'highest rated') expect(page).to have_selector('a.active', text: 'highest rated')
within '#proposals' do within '#proposals' do
expect('Best proposal').to appear_before('Medium proposal') expect(best_proposal.title).to appear_before(medium_proposal.title)
expect('Medium proposal').to appear_before('Worst proposal') expect(medium_proposal.title).to appear_before(worst_proposal.title)
end end
expect(current_url).to include('order=confidence_score') expect(current_url).to include('order=confidence_score')
@@ -667,17 +673,17 @@ feature 'Proposals' do
scenario 'Proposals are ordered by newest', :js do scenario 'Proposals are ordered by newest', :js do
create_featured_proposals create_featured_proposals
create(:proposal, title: 'Best proposal', created_at: Time.current) best_proposal = create(:proposal, title: 'Best proposal', created_at: Time.current)
create(:proposal, title: 'Medium proposal', created_at: Time.current - 1.hour) medium_proposal = create(:proposal, title: 'Medium proposal', created_at: Time.current - 1.hour)
create(:proposal, title: 'Worst proposal', created_at: Time.current - 1.day) worst_proposal = create(:proposal, title: 'Worst proposal', created_at: Time.current - 1.day)
visit proposals_path visit proposals_path
click_link 'newest' click_link 'newest'
expect(page).to have_selector('a.active', text: 'newest') expect(page).to have_selector('a.active', text: 'newest')
within '#proposals' do within '#proposals' do
expect('Best proposal').to appear_before('Medium proposal') expect(best_proposal.title).to appear_before(medium_proposal.title)
expect('Medium proposal').to appear_before('Worst proposal') expect(medium_proposal.title).to appear_before(worst_proposal.title)
end end
expect(current_url).to include('order=created_at') expect(current_url).to include('order=created_at')
@@ -686,11 +692,12 @@ feature 'Proposals' do
context 'Recommendations' do context 'Recommendations' do
let!(:best_proposal) { create(:proposal, title: 'Best', cached_votes_up: 10, tag_list: "Sport") }
let!(:medium_proposal) { create(:proposal, title: 'Medium', cached_votes_up: 5, tag_list: "Sport") }
let!(:worst_proposal) { create(:proposal, title: 'Worst', cached_votes_up: 1, tag_list: "Sport") }
before do before do
Setting['feature.user.recommendations'] = true Setting['feature.user.recommendations'] = true
create(:proposal, title: 'Best', cached_votes_up: 10, tag_list: "Sport")
create(:proposal, title: 'Medium', cached_votes_up: 5, tag_list: "Sport")
create(:proposal, title: 'Worst', cached_votes_up: 1, tag_list: "Sport")
end end
after do after do
@@ -738,8 +745,8 @@ feature 'Proposals' do
expect(page).to have_selector('a.active', text: 'recommendations') expect(page).to have_selector('a.active', text: 'recommendations')
within '#proposals-list' do within '#proposals-list' do
expect('Best').to appear_before('Medium') expect(best_proposal.title).to appear_before(medium_proposal.title)
expect('Medium').to appear_before('Worst') expect(medium_proposal.title).to appear_before(worst_proposal.title)
end end
expect(current_url).to include('order=recommendations') expect(current_url).to include('order=recommendations')
@@ -1621,14 +1628,17 @@ feature 'Proposals' do
scenario "Orders proposals by votes" do scenario "Orders proposals by votes" do
create(:tag, :category, name: 'culture') create(:tag, :category, name: 'culture')
create(:proposal, title: 'Best', tag_list: 'culture').update_column(:confidence_score, 10) best_proposal = create(:proposal, title: 'Best', tag_list: 'culture')
create(:proposal, title: 'Worst', tag_list: 'culture').update_column(:confidence_score, 2) best_proposal.update_column(:confidence_score, 10)
create(:proposal, title: 'Medium', tag_list: 'culture').update_column(:confidence_score, 5) worst_proposal = create(:proposal, title: 'Worst', tag_list: 'culture')
worst_proposal.update_column(:confidence_score, 2)
medium_proposal = create(:proposal, title: 'Medium', tag_list: 'culture')
medium_proposal.update_column(:confidence_score, 5)
visit summary_proposals_path visit summary_proposals_path
expect('Best').to appear_before('Medium') expect(best_proposal.title).to appear_before(medium_proposal.title)
expect('Medium').to appear_before('Worst') expect(medium_proposal.title).to appear_before(worst_proposal.title)
end end
scenario "Displays proposals from last week" do scenario "Displays proposals from last week" do