Commit a0c06c26d2d35f38a9b71ddc0c5f0cbfe417a11b
1 parent
4596ef42
Fixes tests for external persons.
Signed-off-by: Gabriel Silva <gabriel93.silva@gmail.com> Signed-off-by: DylanGuedes <djmgguedes@gmail.com>
Showing
5 changed files
with
46 additions
and
22 deletions
Show diff stats
app/models/concerns/follower.rb
... | ... | @@ -13,4 +13,28 @@ module Follower |
13 | 13 | profile.followed_by?(self) |
14 | 14 | end |
15 | 15 | |
16 | + def unfollow(profile) | |
17 | + ProfileFollower.with_follower(self).with_profile(profile).destroy_all | |
18 | + end | |
19 | + | |
20 | + def followed_profiles | |
21 | + Profile.followed_by self | |
22 | + end | |
23 | + | |
24 | + def update_profile_circles(profile, new_circles) | |
25 | + profile_circles = ProfileFollower.with_profile(profile).with_follower(self).map(&:circle) | |
26 | + circles_to_add = new_circles - profile_circles | |
27 | + circles_to_remove = profile_circles - new_circles | |
28 | + circles_to_add.each do |new_circle| | |
29 | + ProfileFollower.create(profile: profile, circle: new_circle) | |
30 | + end | |
31 | + | |
32 | + ProfileFollower.where('circle_id IN (?) AND profile_id = ?', | |
33 | + circles_to_remove.map(&:id), profile.id).destroy_all | |
34 | + end | |
35 | + | |
36 | + def remove_profile_from_circle(profile, circle) | |
37 | + ProfileFollower.with_profile(profile).with_circle(circle).destroy_all | |
38 | + end | |
39 | + | |
16 | 40 | end | ... | ... |
app/models/external_person.rb
... | ... | @@ -200,7 +200,8 @@ class ExternalPerson < ActiveRecord::Base |
200 | 200 | relationships_cache_key: '', is_member_of?: false, |
201 | 201 | each_friend: nil, is_last_admin?: false, is_last_admin_leaving?: false, |
202 | 202 | leave: nil, last_notification: nil, notification_time: 0, notifier: nil, |
203 | - remove_suggestion: nil, allow_invitation_from?: false | |
203 | + remove_suggestion: nil, allow_invitation_from?: false, in_social_circle?: false, | |
204 | + allow_followers: false, in_circles: Circle.none, followers: [], in_circle?: false | |
204 | 205 | } |
205 | 206 | |
206 | 207 | derivated_methods = generate_derivated_methods(methods_and_responses) | ... | ... |
app/models/person.rb
... | ... | @@ -182,26 +182,6 @@ class Person < Profile |
182 | 182 | end |
183 | 183 | end |
184 | 184 | |
185 | - def update_profile_circles(profile, new_circles) | |
186 | - profile_circles = ProfileFollower.with_profile(profile).with_follower(self).map(&:circle) | |
187 | - circles_to_add = new_circles - profile_circles | |
188 | - circles_to_remove = profile_circles - new_circles | |
189 | - circles_to_add.each do |new_circle| | |
190 | - ProfileFollower.create(profile: profile, circle: new_circle) | |
191 | - end | |
192 | - | |
193 | - ProfileFollower.where('circle_id IN (?) AND profile_id = ?', | |
194 | - circles_to_remove.map(&:id), profile.id).destroy_all | |
195 | - end | |
196 | - | |
197 | - def unfollow(profile) | |
198 | - ProfileFollower.with_follower(self).with_profile(profile).destroy_all | |
199 | - end | |
200 | - | |
201 | - def remove_profile_from_circle(profile, circle) | |
202 | - ProfileFollower.with_profile(profile).with_circle(circle).destroy_all | |
203 | - end | |
204 | - | |
205 | 185 | def already_request_friendship?(person) |
206 | 186 | person.tasks.where(requestor_id: self.id, type: 'AddFriend', status: Task::Status::ACTIVE).first |
207 | 187 | end | ... | ... |
app/models/profile.rb
test/unit/external_person_test.rb
... | ... | @@ -134,4 +134,24 @@ class ExternalPersonTest < ActiveSupport::TestCase |
134 | 134 | assert_respond_to ExternalPerson.new, method.to_sym unless method =~ /^autosave_.*|validate_.*|^before_.*|^after_.*|^assignment_.*|^(city|state)_.*/ |
135 | 135 | end |
136 | 136 | end |
137 | + | |
138 | + should 'be able to follow people' do | |
139 | + person = fast_create(Person, :environment_id => Environment.default.id) | |
140 | + circle = Circle.create(person: @external_person, profile_type: "Person", name: "FRIENDSSS") | |
141 | + | |
142 | + assert_difference "@external_person.followed_profiles.count" do | |
143 | + @external_person.follow(person, circle) | |
144 | + end | |
145 | + end | |
146 | + | |
147 | + should 'be able to unfolllow people' do | |
148 | + person = fast_create(Person, :environment_id => Environment.default.id) | |
149 | + circle = Circle.create(person: @external_person, profile_type: "Person", name: "FRIENDSSS") | |
150 | + @external_person.follow(person, circle) | |
151 | + | |
152 | + assert_difference "@external_person.followed_profiles.count", -1 do | |
153 | + @external_person.unfollow(person) | |
154 | + end | |
155 | + end | |
156 | + | |
137 | 157 | end | ... | ... |