From 3573f8f0019f6d6e04c3989ad2758f8feadccf51 Mon Sep 17 00:00:00 2001 From: thearyanahmed Date: Sat, 28 May 2022 20:15:41 +0000 Subject: [PATCH] Fix styling --- .php-cs-fixer.cache | 1 + app/Exceptions/Handler.php | 22 ++-- app/Http/Controllers/Controller.php | 4 +- app/Http/Controllers/HydraController.php | 12 +-- app/Http/Controllers/RoleController.php | 29 ++++-- app/Http/Controllers/UserController.php | 45 ++++---- app/Http/Controllers/UserRoleController.php | 18 ++-- app/Http/Kernel.php | 3 +- app/Models/Role.php | 8 +- app/Models/User.php | 13 +-- app/Models/UserRole.php | 2 +- app/Providers/AuthServiceProvider.php | 1 - tests/Feature/AdminLoginTest.php | 23 ++-- tests/Feature/HelloHydraTest.php | 2 - tests/Feature/RoleTest.php | 110 +++++++++++--------- tests/Feature/UserRoleTest.php | 51 +++++---- tests/Feature/UserTest.php | 65 ++++++------ 17 files changed, 222 insertions(+), 187 deletions(-) create mode 100644 .php-cs-fixer.cache diff --git a/.php-cs-fixer.cache b/.php-cs-fixer.cache new file mode 100644 index 0000000..89e8f38 --- /dev/null +++ b/.php-cs-fixer.cache @@ -0,0 +1 @@ +{"php":"8.1.6","version":"3.8.0","indent":" ","lineEnding":"\n","rules":{"blank_line_after_opening_tag":true,"braces":{"allow_single_line_anonymous_class_with_empty_body":true},"class_definition":{"inline_constructor_arguments":false,"space_before_parenthesis":true},"compact_nullable_typehint":true,"declare_equal_normalize":true,"lowercase_cast":true,"lowercase_static_reference":true,"new_with_braces":true,"no_blank_lines_after_class_opening":true,"no_leading_import_slash":true,"no_whitespace_in_blank_line":true,"ordered_class_elements":{"order":["use_trait"]},"ordered_imports":{"sort_algorithm":"alpha"},"return_type_declaration":true,"short_scalar_cast":true,"single_blank_line_before_namespace":true,"single_trait_insert_per_statement":true,"ternary_operator_spaces":true,"visibility_required":true,"blank_line_after_namespace":true,"constant_case":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"method_argument_space":{"on_multiline":"ensure_fully_multiline","keep_multiple_spaces_after_comma":true},"no_break_comment":true,"no_closing_tag":true,"no_space_around_double_colon":true,"no_spaces_after_function_name":true,"no_spaces_inside_parenthesis":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_class_element_per_statement":{"elements":["property"]},"single_import_per_statement":true,"single_line_after_imports":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"encoding":true,"full_opening_tag":true,"array_syntax":{"syntax":"short"},"no_unused_imports":true,"not_operator_with_successor_space":true,"trailing_comma_in_multiline":true,"phpdoc_scalar":true,"unary_operator_spaces":true,"binary_operator_spaces":true,"blank_line_before_statement":{"statements":["break","continue","declare","return","throw","try"]},"phpdoc_single_line_var_spacing":true,"phpdoc_var_without_name":true,"class_attributes_separation":{"elements":{"method":"one"}}},"hashes":{"app\/Models\/User.php":10996186,"app\/Models\/Role.php":3348606576,"app\/Models\/UserRole.php":658247917,"app\/Providers\/EventServiceProvider.php":2619877882,"app\/Providers\/RouteServiceProvider.php":2666392252,"app\/Providers\/BroadcastServiceProvider.php":3839728412,"app\/Providers\/AppServiceProvider.php":1624137708,"app\/Providers\/AuthServiceProvider.php":3880649967,"app\/Console\/Kernel.php":1530351997,"app\/Http\/Middleware\/RedirectIfAuthenticated.php":4011276237,"app\/Http\/Middleware\/TrustHosts.php":3859577676,"app\/Http\/Middleware\/PreventRequestsDuringMaintenance.php":2074704835,"app\/Http\/Middleware\/EncryptCookies.php":250310946,"app\/Http\/Middleware\/VerifyCsrfToken.php":2545444967,"app\/Http\/Middleware\/TrimStrings.php":3685711597,"app\/Http\/Middleware\/Authenticate.php":2203061520,"app\/Http\/Middleware\/TrustProxies.php":2778032668,"app\/Http\/Kernel.php":3618942900,"app\/Http\/Controllers\/UserController.php":826536539,"app\/Http\/Controllers\/RoleController.php":183948380,"app\/Http\/Controllers\/HydraController.php":3299029281,"app\/Http\/Controllers\/Controller.php":879151980,"app\/Http\/Controllers\/UserRoleController.php":320104334,"app\/Exceptions\/Handler.php":3710876911,"tests\/Feature\/RoleTest.php":3433350750,"tests\/Feature\/UserRoleTest.php":672489086,"tests\/Feature\/HelloHydraTest.php":931287435,"tests\/Feature\/UserTest.php":2720751309,"tests\/Feature\/AdminLoginTest.php":2153584888,"tests\/TestCase.php":1353191102,"tests\/CreatesApplication.php":1811814938,"tests\/Unit\/ExampleTest.php":2449409166}} \ No newline at end of file diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 8fc1c4a..904c85b 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -7,7 +7,8 @@ use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; use Laravel\Sanctum\Exceptions\MissingAbilityException; use Throwable; -class Handler extends ExceptionHandler { +class Handler extends ExceptionHandler +{ /** * A list of exception types with their corresponding custom log levels. * @@ -42,26 +43,29 @@ class Handler extends ExceptionHandler { * * @return void */ - public function register() { + public function register() + { $this->reportable(function (Throwable $e) { // }); } - public function render($request, Throwable $exception) { + public function render($request, Throwable $exception) + { if ($exception instanceof ModelNotFoundException) { return response([ - 'error'=>1, - 'message'=>$exception->getMessage() - ],404); + 'error' => 1, + 'message' => $exception->getMessage(), + ], 404); } if ($exception instanceof MissingAbilityException) { return response([ - 'error'=>1, - 'message'=>"Not authorized" - ],409); + 'error' => 1, + 'message' => "Not authorized", + ], 409); } + return parent::render($request, $exception); } } diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index a0a2a8a..ce1176d 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -9,5 +9,7 @@ use Illuminate\Routing\Controller as BaseController; class Controller extends BaseController { - use AuthorizesRequests, DispatchesJobs, ValidatesRequests; + use AuthorizesRequests; + use DispatchesJobs; + use ValidatesRequests; } diff --git a/app/Http/Controllers/HydraController.php b/app/Http/Controllers/HydraController.php index 44562ba..a0643b5 100644 --- a/app/Http/Controllers/HydraController.php +++ b/app/Http/Controllers/HydraController.php @@ -2,19 +2,19 @@ namespace App\Http\Controllers; -use Illuminate\Http\Request; - class HydraController extends Controller { - public function hydra(){ + public function hydra() + { return response([ - "message"=>"Welcome to Hydra, the zero config API boilerplate with roles and abilities for Laravel Sanctum. Please visit https://hasinhayder.github.io/hydra to know more." + "message" => "Welcome to Hydra, the zero config API boilerplate with roles and abilities for Laravel Sanctum. Please visit https://hasinhayder.github.io/hydra to know more.", ]); } - public function version(){ + public function version() + { return response([ - "version"=>"1.0.0" + "version" => "1.0.0", ]); } } diff --git a/app/Http/Controllers/RoleController.php b/app/Http/Controllers/RoleController.php index c4dfedd..bd2b686 100644 --- a/app/Http/Controllers/RoleController.php +++ b/app/Http/Controllers/RoleController.php @@ -5,13 +5,15 @@ namespace App\Http\Controllers; use App\Models\Role; use Illuminate\Http\Request; -class RoleController extends Controller { +class RoleController extends Controller +{ /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ - public function index() { + public function index() + { return Role::all(); } @@ -21,19 +23,21 @@ class RoleController extends Controller { * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ - public function store(Request $request) { + public function store(Request $request) + { $data = $request->validate([ 'name' => 'required', - 'slug' => 'required' + 'slug' => 'required', ]); $existing = Role::where('slug', $data['slug'])->first(); - if (!$existing) { + if (! $existing) { $role = Role::create([ 'name' => $data['name'], - 'slug' => $data['slug'] + 'slug' => $data['slug'], ]); + return $role; } @@ -46,7 +50,8 @@ class RoleController extends Controller { * @param \App\Models\Role $role * @return \Illuminate\Http\Response */ - public function show(Role $role) { + public function show(Role $role) + { return $role; } @@ -57,9 +62,9 @@ class RoleController extends Controller { * @param \App\Models\Role $role * @return \Illuminate\Http\Response */ - public function update(Request $request, Role $role = null) { - - if (!$role) { + public function update(Request $request, Role $role = null) + { + if (! $role) { return response(['error' => 1, 'message' => 'role doesn\'t exist'], 404); } @@ -83,10 +88,12 @@ class RoleController extends Controller { * @param \App\Models\Role $role * @return \Illuminate\Http\Response */ - public function destroy(Role $role) { + public function destroy(Role $role) + { if ($role->slug != 'admin' && $role->slug != 'super-admin') { //don't allow changing the admin slug, because it will make the routes inaccessbile due to faile ability check $role->delete(); + return response(['error' => 0, 'message' => 'role has been deleted']); } else { return response(['error' => 1, 'message' => 'you cannot delete this role'], 422); diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 4f0a1c0..205014f 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -4,19 +4,20 @@ namespace App\Http\Controllers; use App\Models\Role; use App\Models\User; -use Illuminate\Validation\ValidationException; +use App\Models\UserRole; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; -use App\Models\UserRole; use Laravel\Sanctum\Exceptions\MissingAbilityException; -class UserController extends Controller { +class UserController extends Controller +{ /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ - public function index() { + public function index() + { // return User::all(); } @@ -27,11 +28,12 @@ class UserController extends Controller { * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ - public function store(Request $request) { + public function store(Request $request) + { $creds = $request->validate([ 'email' => 'required|email', 'password' => 'required', - 'name' => 'nullable|string' + 'name' => 'nullable|string', ]); $user = User::where('email', $creds['email'])->first(); @@ -42,13 +44,13 @@ class UserController extends Controller { $user = User::create([ 'email' => $creds['email'], 'password' => Hash::make($creds['password']), - 'name' => $creds['name'] + 'name' => $creds['name'], ]); $default_user_role_id = env('DEFAULT_ROLE_ID', 2); UserRole::create([ 'user_id' => $user->id, - 'role_id' => $default_user_role_id + 'role_id' => $default_user_role_id, ]); @@ -61,14 +63,15 @@ class UserController extends Controller { * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ - public function login(Request $request) { + public function login(Request $request) + { $creds = $request->validate([ 'email' => 'required|email', 'password' => 'required', ]); $user = User::where('email', $creds['email'])->first(); - if (!$user || !Hash::check($request->password, $user->password)) { + if (! $user || ! Hash::check($request->password, $user->password)) { return response(['error' => 1, 'message' => 'invalid credentials'], 401); } @@ -77,13 +80,14 @@ class UserController extends Controller { } - $roles = $user->roles()->get(); + $roles = $user->roles()->get(); $_roles = []; foreach ($roles as $role) { $_roles[] = $role->slug; } $plainTextToken = $user->createToken('hydra-api-token', $_roles)->plainTextToken; + return response(['error' => 0, 'id' => $user->id, 'token' => $plainTextToken], 200); } @@ -93,7 +97,8 @@ class UserController extends Controller { * @param \App\Models\User $user * @return \Illuminate\Http\Response */ - public function show(User $user) { + public function show(User $user) + { return $user; } @@ -104,10 +109,11 @@ class UserController extends Controller { * @param \App\Models\User $user * @return \Illuminate\Http\Response */ - public function update(Request $request, User $user) { + public function update(Request $request, User $user) + { $user->name = $request->name ?? $user->name; $user->email = $request->email ?? $user->email; - $user->password = $request->password ? Hash::make($request->password) : $user->password; + $user->password = $request->password ? Hash::make($request->password) : $user->password; $user->email_verified_at = $request->email_verified_at ?? $user->email_verified_at; //check if the logged in user is updating it's own record @@ -116,7 +122,7 @@ class UserController extends Controller { $loggedInUser = $request->user(); if ($loggedInUser->id == $user->id) { $user->update(); - } else if ($loggedInUser->tokenCan('admin') || $loggedInUser->tokenCan('super-admin')) { + } elseif ($loggedInUser->tokenCan('admin') || $loggedInUser->tokenCan('super-admin')) { $user->update(); } else { throw new MissingAbilityException("Not Authorized"); @@ -131,14 +137,14 @@ class UserController extends Controller { * @param \App\Models\User $user * @return \Illuminate\Http\Response */ - public function destroy(User $user) { - + public function destroy(User $user) + { $adminRole = Role::where('slug', 'admin')->first(); $userRoles = $user->roles; if ($userRoles->contains($adminRole)) { //the current user is admin, then if there is only one admin - don't delete - $numberOfAdmins = Role::where('slug', 'admin')->first()->users()->count(); + $numberOfAdmins = Role::where('slug', 'admin')->first()->users()->count(); if (1 == $numberOfAdmins) { return response(['error' => 1, 'message' => 'Create another admin before deleting this only admin user'], 409); } @@ -149,7 +155,8 @@ class UserController extends Controller { return response(['error' => 0, 'message' => 'user deleted']); } - public function me(Request $request) { + public function me(Request $request) + { return $request->user(); } } diff --git a/app/Http/Controllers/UserRoleController.php b/app/Http/Controllers/UserRoleController.php index 6c82925..8442a75 100644 --- a/app/Http/Controllers/UserRoleController.php +++ b/app/Http/Controllers/UserRoleController.php @@ -6,14 +6,16 @@ use App\Models\Role; use App\Models\User; use Illuminate\Http\Request; -class UserRoleController extends Controller { +class UserRoleController extends Controller +{ /** * Display a listing of the resource. * * @param \App\Models\User $user * @return \Illuminate\Http\Response */ - public function index(User $user) { + public function index(User $user) + { return $user->load('roles'); } @@ -24,13 +26,15 @@ class UserRoleController extends Controller { * @param \App\Models\User $user * @return \Illuminate\Http\Response */ - public function store(Request $request, User $user) { + public function store(Request $request, User $user) + { $data = $request->validate([ - 'role_id' => 'required|integer' + 'role_id' => 'required|integer', ]); $role = Role::find($data['role_id']); - if (!$user->roles()->find($data['role_id'])) { + if (! $user->roles()->find($data['role_id'])) { $user->roles()->attach($role); + return $user->load('roles'); } else { return $user->load('roles'); @@ -44,8 +48,10 @@ class UserRoleController extends Controller { * @param \App\Models\Role $role * @return \Illuminate\Http\Response */ - public function destroy(User $user, Role $role) { + public function destroy(User $user, Role $role) + { $user->roles()->detach($role); + return $user->load('roles'); } } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index 0ebdbfa..5857c4b 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -4,7 +4,8 @@ namespace App\Http; use Illuminate\Foundation\Http\Kernel as HttpKernel; -class Kernel extends HttpKernel { +class Kernel extends HttpKernel +{ /** * The application's global HTTP middleware stack. * diff --git a/app/Models/Role.php b/app/Models/Role.php index 991be4d..ff51719 100644 --- a/app/Models/Role.php +++ b/app/Models/Role.php @@ -4,13 +4,12 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; -use App\Models\User; class Role extends Model { use HasFactory; protected $fillable = [ - 'name','slug' + 'name','slug', ]; protected $hidden = [ 'pivot', @@ -18,7 +17,8 @@ class Role extends Model 'updated_at', ]; - public function users(){ - return $this->belongsToMany(User::class,'user_roles'); + public function users() + { + return $this->belongsToMany(User::class, 'user_roles'); } } diff --git a/app/Models/User.php b/app/Models/User.php index b436307..2a3fadc 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -2,16 +2,16 @@ namespace App\Models; -use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; -use App\Models\Role; class User extends Authenticatable { - use HasApiTokens, HasFactory, Notifiable; + use HasApiTokens; + use HasFactory; + use Notifiable; /** * The attributes that are mass assignable. @@ -34,7 +34,7 @@ class User extends Authenticatable 'remember_token', 'created_at', 'updated_at', - 'email_verified_at' + 'email_verified_at', ]; /** @@ -46,7 +46,8 @@ class User extends Authenticatable 'email_verified_at' => 'datetime', ]; - public function roles(){ - return $this->belongsToMany(Role::class,'user_roles'); + public function roles() + { + return $this->belongsToMany(Role::class, 'user_roles'); } } diff --git a/app/Models/UserRole.php b/app/Models/UserRole.php index 4554f75..1763ac1 100644 --- a/app/Models/UserRole.php +++ b/app/Models/UserRole.php @@ -9,6 +9,6 @@ class UserRole extends Model { use HasFactory; protected $fillable = [ - 'user_id','role_id' + 'user_id','role_id', ]; } diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 51b351b..c4b146a 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -3,7 +3,6 @@ namespace App\Providers; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; -use Illuminate\Support\Facades\Gate; class AuthServiceProvider extends ServiceProvider { diff --git a/tests/Feature/AdminLoginTest.php b/tests/Feature/AdminLoginTest.php index 55a6003..f300018 100644 --- a/tests/Feature/AdminLoginTest.php +++ b/tests/Feature/AdminLoginTest.php @@ -2,11 +2,8 @@ namespace Tests\Feature; -use Illuminate\Foundation\Testing\RefreshDatabase; -use Illuminate\Foundation\Testing\WithFaker; -use Tests\TestCase; use Illuminate\Testing\Fluent\AssertableJson; - +use Tests\TestCase; class AdminLoginTest extends TestCase { @@ -17,13 +14,14 @@ class AdminLoginTest extends TestCase */ public function test_admin_login() { - $response = $this->postJson('/api/login',[ - 'email'=>'admin@hydra.project', - 'password'=>'hydra' + $response = $this->postJson('/api/login', [ + 'email' => 'admin@hydra.project', + 'password' => 'hydra', ]); $response - ->assertJson(fn (AssertableJson $json) => + ->assertJson( + fn (AssertableJson $json) => $json->where('error', 0) ->has('token') ->etc() @@ -32,13 +30,14 @@ class AdminLoginTest extends TestCase public function test_admin_login_fail() { - $response = $this->postJson('/api/login',[ - 'email'=>'admin@hydra.project', - 'password'=>'hydrax' + $response = $this->postJson('/api/login', [ + 'email' => 'admin@hydra.project', + 'password' => 'hydrax', ]); $response - ->assertJson(fn (AssertableJson $json) => + ->assertJson( + fn (AssertableJson $json) => $json->where('error', 1) ->missing('token') ->has('message') diff --git a/tests/Feature/HelloHydraTest.php b/tests/Feature/HelloHydraTest.php index 3c0e3c7..068b936 100644 --- a/tests/Feature/HelloHydraTest.php +++ b/tests/Feature/HelloHydraTest.php @@ -2,8 +2,6 @@ namespace Tests\Feature; -use Illuminate\Foundation\Testing\RefreshDatabase; -use Illuminate\Foundation\Testing\WithFaker; use Tests\TestCase; class HelloHydraTest extends TestCase diff --git a/tests/Feature/RoleTest.php b/tests/Feature/RoleTest.php index b494427..a303582 100644 --- a/tests/Feature/RoleTest.php +++ b/tests/Feature/RoleTest.php @@ -2,22 +2,22 @@ namespace Tests\Feature; -use Illuminate\Foundation\Testing\RefreshDatabase; -use Illuminate\Foundation\Testing\WithFaker; -use Tests\TestCase; -use Illuminate\Testing\Fluent\AssertableJson; use App\Models\Role; +use Illuminate\Testing\Fluent\AssertableJson; +use Tests\TestCase; -class RoleTest extends TestCase { +class RoleTest extends TestCase +{ /** * A basic feature test example. * * @return void */ - public function test_list_roles() { + public function test_list_roles() + { $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -36,16 +36,17 @@ class RoleTest extends TestCase { fn ($json) => $json->where('id', 1) ->where('name', 'Administrator') - ->where('slug','admin') + ->where('slug', 'admin') ->etc() ) ); } - public function test_update_role_name_as_admin() { + public function test_update_role_name_as_admin() + { $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -54,23 +55,24 @@ class RoleTest extends TestCase { $response = $this->withHeader('Authorization', 'Bearer ' . $this->token) - ->put("/api/roles/4",[ - "name"=>"Chief Editor" + ->put("/api/roles/4", [ + "name" => "Chief Editor", ]); $response ->assertJson( fn (AssertableJson $json) => - $json->where('name','Chief Editor') + $json->where('name', 'Chief Editor') ->missing('error') ->etc() ); } - public function test_update_role_slug_as_admin() { + public function test_update_role_slug_as_admin() + { $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -79,23 +81,24 @@ class RoleTest extends TestCase { $response = $this->withHeader('Authorization', 'Bearer ' . $this->token) - ->put("/api/roles/4",[ - "slug"=>"chief-editor" + ->put("/api/roles/4", [ + "slug" => "chief-editor", ]); $response ->assertJson( fn (AssertableJson $json) => - $json->where('slug','chief-editor') + $json->where('slug', 'chief-editor') ->missing('error') ->etc() ); } - public function test_update_role_namd_and_slug_as_admin() { + public function test_update_role_namd_and_slug_as_admin() + { $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -104,25 +107,26 @@ class RoleTest extends TestCase { $response = $this->withHeader('Authorization', 'Bearer ' . $this->token) - ->put("/api/roles/4",[ - "name"=>"Editor X", - "slug"=>"editor-x" + ->put("/api/roles/4", [ + "name" => "Editor X", + "slug" => "editor-x", ]); $response ->assertJson( fn (AssertableJson $json) => - $json->where('name','Editor X') - ->where('slug','editor-x') + $json->where('name', 'Editor X') + ->where('slug', 'editor-x') ->missing('error') ->etc() ); } - public function test_update_admin_slug_as_admin_should_fail() { + public function test_update_admin_slug_as_admin_should_fail() + { $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -131,23 +135,24 @@ class RoleTest extends TestCase { $response = $this->withHeader('Authorization', 'Bearer ' . $this->token) - ->put("/api/roles/1",[ - "slug"=>"admin-x" + ->put("/api/roles/1", [ + "slug" => "admin-x", ]); $response ->assertJson( fn (AssertableJson $json) => $json - ->where('slug','admin') + ->where('slug', 'admin') ->etc() ); } - public function test_create_new_role_as_admin() { + public function test_create_new_role_as_admin() + { $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -156,25 +161,26 @@ class RoleTest extends TestCase { $response = $this->withHeader('Authorization', 'Bearer ' . $this->token) - ->post("/api/roles",[ - "name"=>"New Role", - "slug"=>"new-role" + ->post("/api/roles", [ + "name" => "New Role", + "slug" => "new-role", ]); $response ->assertJson( fn (AssertableJson $json) => - $json->where('name','New Role') - ->where('slug','new-role') + $json->where('name', 'New Role') + ->where('slug', 'new-role') ->missing('error') ->etc() ); } - public function test_duplicate_role_will_not_be_created() { + public function test_duplicate_role_will_not_be_created() + { $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -183,30 +189,31 @@ class RoleTest extends TestCase { $response = $this->withHeader('Authorization', 'Bearer ' . $this->token) - ->post("/api/roles",[ - "name"=>"New Role", - "slug"=>"new-role" + ->post("/api/roles", [ + "name" => "New Role", + "slug" => "new-role", ]); $response ->assertJson( fn (AssertableJson $json) => - $json->where('error',1) + $json->where('error', 1) ->etc() ); } - public function test_delete_role_as_admin() { + public function test_delete_role_as_admin() + { $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); $this->token = $data->token; $this->user_id = $data->id; - $newRole = Role::where('slug','new-role')->first(); + $newRole = Role::where('slug', 'new-role')->first(); $response = $this->withHeader('Authorization', 'Bearer ' . $this->token) @@ -215,22 +222,23 @@ class RoleTest extends TestCase { $response ->assertJson( fn (AssertableJson $json) => - $json->where('error',0) + $json->where('error', 0) ->has('message') ); } - public function test_delete_admin_role_should_fail() { + public function test_delete_admin_role_should_fail() + { $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); $this->token = $data->token; $this->user_id = $data->id; - $newRole = Role::where('slug','admin')->first(); + $newRole = Role::where('slug', 'admin')->first(); $response = $this->withHeader('Authorization', 'Bearer ' . $this->token) @@ -239,7 +247,7 @@ class RoleTest extends TestCase { $response ->assertJson( fn (AssertableJson $json) => - $json->where('error',1) + $json->where('error', 1) ->has('message') ); } diff --git a/tests/Feature/UserRoleTest.php b/tests/Feature/UserRoleTest.php index 3bd51af..3931b2a 100644 --- a/tests/Feature/UserRoleTest.php +++ b/tests/Feature/UserRoleTest.php @@ -3,18 +3,17 @@ namespace Tests\Feature; use App\Models\User; -use Illuminate\Foundation\Testing\RefreshDatabase; -use Illuminate\Foundation\Testing\WithFaker; use Illuminate\Support\Facades\Hash; use Illuminate\Testing\Fluent\AssertableJson; use Tests\TestCase; -class UserRoleTest extends TestCase { - - public function test_user_role_is_present() { +class UserRoleTest extends TestCase +{ + public function test_user_role_is_present() + { $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -39,18 +38,18 @@ class UserRoleTest extends TestCase { ); } - public function test_assign_role_to_a_user() { - + public function test_assign_role_to_a_user() + { $newUser = User::create([ 'name' => 'Test User', 'password' => Hash::make('abcd'), - 'email' => 'testuser@hydra.project' + 'email' => 'testuser@hydra.project', ]); $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -77,18 +76,18 @@ class UserRoleTest extends TestCase { $newUser->delete(); } - public function test_assign_role_multiple_times_to_a_user_should_fail() { - + public function test_assign_role_multiple_times_to_a_user_should_fail() + { $newUser = User::create([ 'name' => 'Test User', 'password' => Hash::make('abcd'), - 'email' => 'testuser@hydra.project' + 'email' => 'testuser@hydra.project', ]); $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -115,18 +114,18 @@ class UserRoleTest extends TestCase { $newUser->delete(); } - public function test_assign_multiple_roles_to_a_user() { - + public function test_assign_multiple_roles_to_a_user() + { $newUser = User::create([ 'name' => 'Test User', 'password' => Hash::make('abcd'), - 'email' => 'testuser@hydra.project' + 'email' => 'testuser@hydra.project', ]); $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -153,18 +152,18 @@ class UserRoleTest extends TestCase { $newUser->delete(); } - public function test_delete_role_from_a_user() { - + public function test_delete_role_from_a_user() + { $newUser = User::create([ 'name' => 'Test User', 'password' => Hash::make('abcd'), - 'email' => 'testuser@hydra.project' + 'email' => 'testuser@hydra.project', ]); $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -194,18 +193,18 @@ class UserRoleTest extends TestCase { $newUser->delete(); } - public function test_delete_all_roles_from_a_user() { - + public function test_delete_all_roles_from_a_user() + { $newUser = User::create([ 'name' => 'Test User', 'password' => Hash::make('abcd'), - 'email' => 'testuser@hydra.project' + 'email' => 'testuser@hydra.project', ]); $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); diff --git a/tests/Feature/UserTest.php b/tests/Feature/UserTest.php index 1bc38f4..4ba26aa 100644 --- a/tests/Feature/UserTest.php +++ b/tests/Feature/UserTest.php @@ -3,14 +3,13 @@ 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; +use Illuminate\Testing\Fluent\AssertableJson; +use Tests\TestCase; -class UserTest extends TestCase { +class UserTest extends TestCase +{ /** * A basic feature test example. * @@ -20,11 +19,12 @@ class UserTest extends TestCase { private $token; private $user_id; - public function test_new_user_registration() { + public function test_new_user_registration() + { $response = $this->postJson('/api/users', [ 'name' => 'Test User', 'email' => 'test@test.com', - 'password' => 'test' + 'password' => 'test', ]); $response @@ -36,11 +36,12 @@ class UserTest extends TestCase { ); } - public function test_existing_email_registration_fail() { + public function test_existing_email_registration_fail() + { $response = $this->postJson('/api/users', [ 'name' => 'Test User', 'email' => 'test@test.com', - 'password' => 'test' + 'password' => 'test', ]); $response @@ -51,10 +52,11 @@ class UserTest extends TestCase { ); } - public function test_new_user_login() { + public function test_new_user_login() + { $response = $this->postJson('/api/login', [ 'email' => 'test@test.com', - 'password' => 'test' + 'password' => 'test', ]); $data = json_decode($response->getContent()); @@ -70,10 +72,11 @@ class UserTest extends TestCase { ); } - public function test_new_user_failed_login() { + public function test_new_user_failed_login() + { $response = $this->postJson('/api/login', [ 'email' => 'test@test.com', - 'password' => 'testX' + 'password' => 'testX', ]); $response @@ -84,11 +87,11 @@ class UserTest extends TestCase { ); } - public function test_new_user_name_update_with_user_token() { - + public function test_new_user_name_update_with_user_token() + { $response = $this->postJson('/api/login', [ 'email' => 'test@test.com', - 'password' => 'test' + 'password' => 'test', ]); $data = json_decode($response->getContent()); @@ -108,11 +111,11 @@ class UserTest extends TestCase { ); } - public function test_new_user_name_update_with_admin_token() { - + public function test_new_user_name_update_with_admin_token() + { $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -132,11 +135,11 @@ class UserTest extends TestCase { ); } - public function test_new_user_destroy_as_user_should_fail() { - + public function test_new_user_destroy_as_user_should_fail() + { $response = $this->postJson('/api/login', [ 'email' => 'test@test.com', - 'password' => 'test' + 'password' => 'test', ]); $data = json_decode($response->getContent()); @@ -156,11 +159,11 @@ class UserTest extends TestCase { ); } - public function test_new_user_destroy_as_admin() { - + public function test_new_user_destroy_as_admin() + { $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent()); @@ -180,12 +183,12 @@ class UserTest extends TestCase { ); } - public function test_delete_admin_user_if_multiple_admins_are_present() { - + 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' + 'name' => 'Test Admin', + 'password' => Hash::make('abcd'), + 'email' => 'testadmin@test.com', ]); $adminRole = Role::find(1); @@ -194,7 +197,7 @@ class UserTest extends TestCase { $response = $this->postJson('/api/login', [ 'email' => 'admin@hydra.project', - 'password' => 'hydra' + 'password' => 'hydra', ]); $data = json_decode($response->getContent());