From 0889a29ce52bc4e8078d86dea87fa48faa3243ef Mon Sep 17 00:00:00 2001 From: Chris Brown Date: Sun, 3 Feb 2019 22:13:42 -0500 Subject: [PATCH] Add tests for #1017 --- src/Traits/HasRoles.php | 1 + tests/HasRolesTest.php | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/Traits/HasRoles.php b/src/Traits/HasRoles.php index 74f74ae4..1aa8d43e 100644 --- a/src/Traits/HasRoles.php +++ b/src/Traits/HasRoles.php @@ -53,6 +53,7 @@ public function roles(): MorphToMany * * @param \Illuminate\Database\Eloquent\Builder $query * @param string|array|\Spatie\Permission\Contracts\Role|\Illuminate\Support\Collection $roles + * @param string $guard * * @return \Illuminate\Database\Eloquent\Builder */ diff --git a/tests/HasRolesTest.php b/tests/HasRolesTest.php index 58cce028..8f8a11ce 100644 --- a/tests/HasRolesTest.php +++ b/tests/HasRolesTest.php @@ -339,6 +339,32 @@ public function it_can_scope_users_using_an_object() $this->assertEquals($scopedUsers3->count(), 1); } + /** @test */ + public function it_can_scope_against_a_specific_guard() + { + $user1 = User::create(['email' => 'user1@test.com']); + $user2 = User::create(['email' => 'user2@test.com']); + $user1->assignRole('testRole'); + $user2->assignRole('testRole2'); + + $scopedUsers1 = User::role('testRole', 'web')->get(); + + $this->assertEquals($scopedUsers1->count(), 1); + + $user3 = Admin::create(['email' => 'user1@test.com']); + $user4 = Admin::create(['email' => 'user1@test.com']); + $user5 = Admin::create(['email' => 'user2@test.com']); + $testAdminRole2 = app(Role::class)->create(['name' => 'testAdminRole2', 'guard_name' => 'admin']); + $user3->assignRole($this->testAdminRole); + $user4->assignRole($this->testAdminRole); + $user5->assignRole($testAdminRole2); + $scopedUsers2 = Admin::role('testAdminRole', 'admin')->get(); + $scopedUsers3 = Admin::role('testAdminRole2', 'admin')->get(); + + $this->assertEquals($scopedUsers2->count(), 2); + $this->assertEquals($scopedUsers3->count(), 1); + } + /** @test */ public function it_throws_an_exception_when_trying_to_scope_a_role_from_another_guard() {