Skip to content

Commit

Permalink
changes moderation/proposals: only show flagged
Browse files Browse the repository at this point in the history
To view all use the filter "All".
  • Loading branch information
xuanxu committed Sep 18, 2015
1 parent b7185bf commit 37c696b
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 6 deletions.
4 changes: 2 additions & 2 deletions app/models/concerns/flaggable.rb
Expand Up @@ -4,8 +4,8 @@ module Flaggable
included do
has_many :flags, as: :flaggable
scope :flagged, -> { where("flags_count > 0") }
scope :pending_flag_review, -> { where(ignored_flag_at: nil, hidden_at: nil) }
scope :with_ignored_flag, -> { where.not(ignored_flag_at: nil).where(hidden_at: nil) }
scope :pending_flag_review, -> { flagged.where(ignored_flag_at: nil, hidden_at: nil) }
scope :with_ignored_flag, -> { flagged.where.not(ignored_flag_at: nil).where(hidden_at: nil) }
end

def ignored_flag?
Expand Down
26 changes: 22 additions & 4 deletions spec/features/moderation/proposals_spec.rb
Expand Up @@ -48,6 +48,9 @@
background do
@proposal = create(:proposal)
visit moderation_proposals_path
within('.sub-nav') do
click_link "All"
end

within("#proposal_#{@proposal.id}") do
check "proposal_#{@proposal.id}_check"
Expand Down Expand Up @@ -141,37 +144,52 @@
end

scenario "Filtering proposals" do
create(:proposal, title: "Pending proposal")
create(:proposal, title: "Regular proposal")
create(:proposal, :flagged, title: "Pending proposal")
create(:proposal, :hidden, title: "Hidden proposal")
create(:proposal, :with_ignored_flag, title: "Ignored proposal")
create(:proposal, :flagged, :with_ignored_flag, title: "Ignored proposal")

visit moderation_proposals_path(filter: 'all')
expect(page).to have_content('Regular proposal')
expect(page).to have_content('Pending proposal')
expect(page).to_not have_content('Hidden proposal')
expect(page).to have_content('Ignored proposal')

visit moderation_proposals_path(filter: 'pending_flag_review')
expect(page).to_not have_content('Regular proposal')
expect(page).to have_content('Pending proposal')
expect(page).to_not have_content('Hidden proposal')
expect(page).to_not have_content('Ignored proposal')

visit moderation_proposals_path(filter: 'with_ignored_flag')
expect(page).to_not have_content('Regular proposal')
expect(page).to_not have_content('Pending proposal')
expect(page).to_not have_content('Hidden proposal')
expect(page).to have_content('Ignored proposal')
end

scenario "sorting proposals" do
create(:proposal, title: "Flagged proposal", created_at: Time.now - 1.day, flags_count: 5)
create(:proposal, title: "Flagged newer proposal", created_at: Time.now - 12.hours, flags_count: 3)
create(:proposal, title: "Newer proposal", created_at: Time.now)

visit moderation_proposals_path(order: 'created_at')

expect("Newer proposal").to appear_before("Flagged proposal")
expect("Flagged newer proposal").to appear_before("Flagged proposal")

visit moderation_proposals_path(order: 'flags')

expect("Flagged proposal").to appear_before("Newer proposal")
expect("Flagged proposal").to appear_before("Flagged newer proposal")

visit moderation_proposals_path(filter: 'all', order: 'created_at')

expect("Newer proposal").to appear_before("Flagged newer proposal")
expect("Flagged newer proposal").to appear_before("Flagged proposal")

visit moderation_proposals_path(filter: 'all', order: 'flags')

expect("Flagged proposal").to appear_before("Flagged newer proposal")
expect("Flagged newer proposal").to appear_before("Newer proposal")
end
end
end

0 comments on commit 37c696b

Please sign in to comment.