diff --git a/app/models/person.rb b/app/models/person.rb index bbb03b0..c0f0d9a 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -5,8 +5,12 @@ class Person < Profile has_many :friendships has_many :friends, :class_name => 'Person', :through => :friendships + def suggested_friend_groups + friend_groups + [ _('friends'), _('work'), _('school'), _('family') ] + end + def friend_groups - ([_('friends'), _('work'), _('school'), _('family')] + friendships.map {|item| item.group}).uniq + friendships.map {|item| item.group}.uniq end # has_many :person_friendships diff --git a/test/unit/person_test.rb b/test/unit/person_test.rb index 1493c45..a0d45a4 100644 --- a/test/unit/person_test.rb +++ b/test/unit/person_test.rb @@ -158,8 +158,15 @@ class PersonTest < Test::Unit::TestCase end - should 'provide default friend groups list' do - assert_equivalent [ 'friends', 'work', 'school', 'family' ], Person.new.friend_groups + should 'suggest default friend groups list' do + p = Person.new + assert_equivalent [ 'friends', 'work', 'school', 'family' ], p.suggested_friend_groups + end + + should 'suggest current groups as well' do + p = Person.new + p.expects(:friend_groups).returns(['group1', 'group2']) + assert_equivalent [ 'friends', 'work', 'school', 'family', 'group1', 'group2' ], p.suggested_friend_groups end should 'list friend groups' do @@ -172,8 +179,7 @@ class PersonTest < Test::Unit::TestCase Friendship.create!(:person => p1, :friend => p3, :group => 'group2') Friendship.create!(:person => p1, :friend => p4, :group => 'group1') - assert_includes p1.friend_groups, 'group1' - assert_includes p1.friend_groups, 'group2' + assert_equivalent ['group1', 'group2'], p1.friend_groups end end -- libgit2 0.21.2