@@ -418,10 +418,13 class User < Principal | |||
|
418 | 418 | def projects_by_role |
|
419 | 419 | return @projects_by_role if @projects_by_role |
|
420 | 420 | |
|
421 |
@projects_by_role = Hash.new |
|
|
421 | @projects_by_role = Hash.new([]) | |
|
422 | 422 | memberships.each do |membership| |
|
423 |
membership. |
|
|
424 | @projects_by_role[role] << membership.project if membership.project | |
|
423 | if membership.project | |
|
424 | membership.roles.each do |role| | |
|
425 | @projects_by_role[role] = [] unless @projects_by_role.key?(role) | |
|
426 | @projects_by_role[role] << membership.project | |
|
427 | end | |
|
425 | 428 | end |
|
426 | 429 | end |
|
427 | 430 | @projects_by_role.each do |role, projects| |
@@ -744,6 +744,13 class UserTest < ActiveSupport::TestCase | |||
|
744 | 744 | assert_equal [2], user.projects_by_role[Role.find(2)].collect(&:id).sort |
|
745 | 745 | end |
|
746 | 746 | |
|
747 | def test_accessing_projects_by_role_with_no_projects_should_return_an_empty_array | |
|
748 | user = User.find(2) | |
|
749 | assert_equal [], user.projects_by_role[Role.find(3)] | |
|
750 | # should not update the hash | |
|
751 | assert_nil user.projects_by_role.values.detect(&:blank?) | |
|
752 | end | |
|
753 | ||
|
747 | 754 | def test_projects_by_role_for_user_with_no_role |
|
748 | 755 | user = User.generate! |
|
749 | 756 | assert_equal({}, user.projects_by_role) |
General Comments 0
You need to be logged in to leave comments.
Login now