From 8191b92a15b9a29a6461017d6ef9a88e8d81eb4e Mon Sep 17 00:00:00 2001 From: Hasin Hayder Date: Sun, 22 May 2022 22:44:32 +0600 Subject: [PATCH] User Tests --- .../Feature/{NewUserTest.php => UserTest.php} | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) rename tests/Feature/{NewUserTest.php => UserTest.php} (81%) diff --git a/tests/Feature/NewUserTest.php b/tests/Feature/UserTest.php similarity index 81% rename from tests/Feature/NewUserTest.php rename to tests/Feature/UserTest.php index 2d9b5d4..1bc38f4 100644 --- a/tests/Feature/NewUserTest.php +++ b/tests/Feature/UserTest.php @@ -2,13 +2,15 @@ namespace Tests\Feature; +use App\Models\Role; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; use Tests\TestCase; use Illuminate\Testing\Fluent\AssertableJson; use App\Models\User; +use Illuminate\Support\Facades\Hash; -class NewUserTest extends TestCase { +class UserTest extends TestCase { /** * A basic feature test example. * @@ -177,4 +179,38 @@ class NewUserTest extends TestCase { ->where('message', 'user deleted') ); } + + public function test_delete_admin_user_if_multiple_admins_are_present() { + + $newAdminUser = User::create([ + 'name'=>'Test Admin', + 'password'=>Hash::make('abcd'), + 'email'=>'testadmin@test.com' + ]); + + $adminRole = Role::find(1); + + $newAdminUser->roles()->attach($adminRole); + + $response = $this->postJson('/api/login', [ + 'email' => 'admin@hydra.project', + 'password' => 'hydra' + ]); + + $data = json_decode($response->getContent()); + $this->token = $data->token; + $this->user_id = $data->id; + + $target = User::where('email', 'testadmin@test.com')->first(); + + $response = $this->withHeader('Authorization', 'Bearer ' . $this->token) + ->delete("/api/users/{$target->id}"); + + $response + ->assertJson( + fn (AssertableJson $json) => + $json->where('error', 0) + ->where('message', 'user deleted') + ); + } }