Переглянути джерело

Fix first user not being set as admin

Bubka 2 роки тому
батько
коміт
16bf0e4e6d
1 змінених файлів з 32 додано та 0 видалено
  1. 32 0
      tests/Feature/Http/Auth/RegisterControllerTest.php

+ 32 - 0
tests/Feature/Http/Auth/RegisterControllerTest.php

@@ -2,6 +2,7 @@
 
 namespace Tests\Feature\Http\Auth;
 
+use App\Models\User;
 use Illuminate\Support\Facades\DB;
 use Tests\FeatureTestCase;
 
@@ -94,4 +95,35 @@ class RegisterControllerTest extends FeatureTestCase
         ])
             ->assertStatus(422);
     }
+
+    /**
+     * @test
+     */
+    public function test_register_first_user_only_as_admin()
+    {
+        $this->assertDatabaseCount('users', 0);
+
+        $response = $this->json('POST', '/user', [
+            'name'                  => self::USERNAME,
+            'email'                 => self::EMAIL,
+            'password'              => self::PASSWORD,
+            'password_confirmation' => self::PASSWORD,
+        ]);
+
+        $this->assertDatabaseCount('users', 1);
+        $this->assertDatabaseHas('users', [
+            'name'     => self::USERNAME,
+            'email'    => self::EMAIL,
+            'is_admin' => true,
+        ]);
+
+        $response = $this->json('POST', '/user', [
+            'name'                  => 'jane',
+            'email'                 => 'jane@example.org',
+            'password'              => self::PASSWORD,
+            'password_confirmation' => self::PASSWORD,
+        ]);
+
+        $this->assertEquals(1, User::admins()->count());
+    }
 }