Skip to content

Commit

Permalink
Issue counter doesn't show up for zero open issues.
Browse files Browse the repository at this point in the history
  • Loading branch information
pwnall committed Apr 25, 2012
1 parent 270ce55 commit 2c08859
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 40 deletions.
19 changes: 10 additions & 9 deletions app/helpers/issues_helper.rb
Expand Up @@ -7,18 +7,19 @@ def issue_author_image(issue)
:style => 'width: 20px; height: 20px;' :style => 'width: 20px; height: 20px;'
end end


# Returns array of open issues a user can read # Returns array of closed issues that a user can read.
def readable_open_issues(issues, user)
issues.select { |i| i.can_read?(user) && i.open? }
end

# Returns array of closed issues a user can read
def readable_closed_issues(issues, user) def readable_closed_issues(issues, user)
issues.select { |i| i.can_read?(user) && !i.open? } issues.select { |i| i.can_read?(user) && !i.open? }
end end


# Returns number of readable open issues # Returns array of open issues that a user can read.
def readable_open_issues_counter(issues, user) def readable_open_issues(issues, user)
issues.select { |i| i.can_read?(user) && i.open? }.length issues.select { |i| i.can_read?(user) && i.open? }
end

# Returns a user notification counting the number of open issues.
def issue_counter(repository, user)
count = readable_open_issues(repository.issues, user).length
count == 0 ? '' : "(#{count})"
end end
end end
3 changes: 1 addition & 2 deletions app/views/repositories/_repository.html.erb
Expand Up @@ -83,8 +83,7 @@
repository) %> repository) %>
</li> </li>
<li> <li>
<%= link_to "Issues (#{readable_open_issues_counter(repository.issues, <%= link_to "Issues #{issue_counter(repository, current_user)}",
current_user)})",
profile_repository_issues_path(repository.profile, repository) %> profile_repository_issues_path(repository.profile, repository) %>
</li> </li>
<% if repository.can_edit? current_user %> <% if repository.can_edit? current_user %>
Expand Down
50 changes: 21 additions & 29 deletions test/unit/helpers/issues_helper_test.rb
@@ -1,41 +1,33 @@
require 'test_helper' require 'test_helper'


class IssuesHelperTest < ActionView::TestCase class IssuesHelperTest < ActionView::TestCase
test "readable open issues" do setup do
readable_issues = readable_open_issues([issues(:public_ghost_pizza), @repository = repositories(:public_ghost)
issues(:public_ghost_dead_code), issues(:public_ghost_code_language), @issues = @repository.issues
issues(:public_ghost_jquery)], users(:costan))
assert_equal [issues(:public_ghost_dead_code)], readable_issues

readable_issues = readable_open_issues([issues(:public_ghost_pizza),
issues(:public_ghost_dead_code), issues(:public_ghost_code_language),
issues(:public_ghost_jquery)], users(:rms))
assert_equal [issues(:public_ghost_pizza),
issues(:public_ghost_dead_code)].sort, readable_issues.sort
end end


test "readable closed issues" do test "readable closed issues" do
readable_issues = readable_closed_issues([issues(:public_ghost_pizza), assert_equal [issues(:public_ghost_jquery)],
issues(:public_ghost_dead_code), issues(:public_ghost_code_language), readable_closed_issues(@issues, users(:costan))
issues(:public_ghost_jquery)], users(:costan))
assert_equal [issues(:public_ghost_jquery)], readable_issues


readable_issues = readable_closed_issues([issues(:public_ghost_pizza), assert_equal [issues(:public_ghost_jquery),
issues(:public_ghost_dead_code), issues(:public_ghost_code_language), issues(:public_ghost_code_language)].sort,
issues(:public_ghost_jquery)], users(:rms)) readable_closed_issues(@issues, users(:rms)).sort
assert_equal [issues(:public_ghost_jquery),
issues(:public_ghost_code_language)].sort, readable_issues.sort
end end


test "readable open issues counter" do test "readable open issues" do
num = readable_open_issues_counter([issues(:public_ghost_pizza), assert_equal [issues(:public_ghost_dead_code)],
issues(:public_ghost_dead_code), issues(:public_ghost_code_language), readable_open_issues(@issues, users(:costan))
issues(:public_ghost_jquery)], users(:costan))
assert_equal 1, num


num = readable_open_issues_counter([issues(:public_ghost_pizza), assert_equal [issues(:public_ghost_security_vulnerability),
issues(:public_ghost_dead_code), issues(:public_ghost_code_language), issues(:public_ghost_pizza),
issues(:public_ghost_jquery)], users(:rms)) issues(:public_ghost_dead_code)].sort,
assert_equal 2, num readable_open_issues(@issues, users(:rms)).sort
end

test "open issue counter" do
assert_equal '(3)', issue_counter(@repository, users(:rms))
assert_equal '(1)', issue_counter(@repository, users(:costan))
assert_equal '', issue_counter(Repository.new, users(:costan))
end end
end end

0 comments on commit 2c08859

Please sign in to comment.