Skip to content

Commit 7e126f7

Browse files
committed
Fixed #166
1 parent 1a539df commit 7e126f7

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

src/Followable.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ public function follow($user): array
3434
/** @var \Illuminate\Database\Eloquent\Model|\Overtrue\LaravelFollow\Followable $user */
3535
$isPending = $user->needsToApproveFollowRequests() ?: false;
3636

37-
$this->followings()->attach($user, [
37+
$this->followings()->syncWithPivotValues($user, [
3838
'accepted_at' => $isPending ? null : now()
39-
]);
39+
], false);
4040

4141
return ['pending' => $isPending];
4242
}

tests/FeatureTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Tests;
44

55
use Illuminate\Support\Carbon;
6+
use Illuminate\Support\Facades\DB;
67
use Illuminate\Support\Facades\Event;
78
use Overtrue\LaravelFollow\Events\Followed;
89
use Overtrue\LaravelFollow\Events\Unfollowed;
@@ -290,4 +291,24 @@ public function test_order_by_followers()
290291
$this->assertSame($user1->name, $mostPopularUser->name);
291292
$this->assertEquals(3, $mostPopularUser->followers_count);
292293
}
294+
295+
public function test_repeat_actions()
296+
{
297+
$user1 = User::create(['name' => 'user1']);
298+
$user2 = User::create(['name' => 'user2']);
299+
$user3 = User::create(['name' => 'user2']);
300+
$user4 = User::create(['name' => 'user2']);
301+
302+
$user1->follow($user2);
303+
$user1->follow($user2);
304+
$user1->follow($user2);
305+
$user1->follow($user3);
306+
$user1->follow($user4);
307+
308+
$this->assertDatabaseHas('user_follower', ['follower_id' => $user1->id, 'following_id' => $user2->id]);
309+
$this->assertDatabaseHas('user_follower', ['follower_id' => $user1->id, 'following_id' => $user3->id]);
310+
$this->assertDatabaseHas('user_follower', ['follower_id' => $user1->id, 'following_id' => $user4->id]);
311+
312+
$this->assertDatabaseCount('user_follower', 3);
313+
}
293314
}

0 commit comments

Comments
 (0)