Explorar o código

Apply Pint fixes

Bubka hai 10 meses
pai
achega
c00b04e192
Modificáronse 100 ficheiros con 325 adicións e 380 borrados
  1. 1 2
      app/Api/v1/Controllers/SettingController.php
  2. 7 6
      app/Api/v1/Controllers/TwoFAccountController.php
  3. 2 4
      app/Api/v1/Requests/SettingUpdateRequest.php
  4. 1 1
      app/Api/v1/Resources/UserAuthenticationResource.php
  5. 10 15
      app/Console/Commands/Maintenance/FixServiceFieldEncryption.php
  6. 2 2
      app/Console/Commands/Utils/ResetTrait.php
  7. 1 3
      app/Exceptions/DbEncryptionException.php
  8. 1 3
      app/Exceptions/EncryptedMigrationException.php
  9. 1 3
      app/Exceptions/InvalidMigrationDataException.php
  10. 1 3
      app/Exceptions/InvalidOtpParameterException.php
  11. 1 3
      app/Exceptions/InvalidQrCodeException.php
  12. 1 3
      app/Exceptions/InvalidSecretException.php
  13. 1 3
      app/Exceptions/UndecipherableException.php
  14. 1 3
      app/Exceptions/UnsupportedMigrationException.php
  15. 1 3
      app/Exceptions/UnsupportedOtpTypeException.php
  16. 3 3
      app/Factories/MigratorFactory.php
  17. 1 1
      app/Http/Controllers/Auth/WebAuthnRecoveryController.php
  18. 3 3
      app/Http/Controllers/SinglePageController.php
  19. 1 1
      app/Http/Controllers/SystemController.php
  20. 1 1
      app/Http/Middleware/CustomCreateFreshApiToken.php
  21. 1 1
      app/Http/Middleware/ForceJsonResponse.php
  22. 5 4
      app/Http/Middleware/RejectIfSsoOnlyAndNotForAdmin.php
  23. 1 1
      app/Http/Middleware/TrustProxies.php
  24. 2 1
      app/Listeners/Authentication/FailedLoginListener.php
  25. 6 6
      app/Listeners/Authentication/LoginListener.php
  26. 5 5
      app/Listeners/Authentication/LogoutListener.php
  27. 5 5
      app/Listeners/Authentication/OtherDeviceLogoutListener.php
  28. 6 6
      app/Listeners/Authentication/VisitedByProxyUserListener.php
  29. 2 2
      app/Models/Option.php
  30. 2 1
      app/Models/User.php
  31. 2 2
      app/Notifications/FailedLoginNotification.php
  32. 2 2
      app/Notifications/SignedInWithNewDeviceNotification.php
  33. 1 4
      app/Notifications/TestEmailSettingNotification.php
  34. 5 5
      app/Policies/UserPolicy.php
  35. 4 4
      app/Providers/MigrationServiceProvider.php
  36. 2 2
      app/Providers/Socialite/OpenId.php
  37. 3 3
      app/Providers/TwoFAuthServiceProvider.php
  38. 2 3
      app/Rules/IsValidRegex.php
  39. 0 2
      app/Services/Auth/ReverseProxyGuard.php
  40. 4 5
      app/Services/GroupService.php
  41. 2 2
      app/Services/Migrators/AegisMigrator.php
  42. 3 3
      app/Services/Migrators/GoogleAuthMigrator.php
  43. 1 1
      app/Services/Migrators/PlainTextMigrator.php
  44. 1 1
      app/Services/Migrators/TwoFASMigrator.php
  45. 2 2
      app/Services/Migrators/TwoFAuthMigrator.php
  46. 3 3
      app/Services/QrCodeService.php
  47. 2 1
      app/Services/TwoFAccountService.php
  48. 5 5
      routes/web.php
  49. 18 18
      tests/Api/v1/Controllers/TwoFAccountControllerTest.php
  50. 3 3
      tests/Api/v1/Controllers/UserManagerControllerTest.php
  51. 8 18
      tests/Api/v1/Requests/DataProviders/TwoFAccountDataProvider.php
  52. 3 3
      tests/Api/v1/Requests/GroupAssignRequestTest.php
  53. 1 1
      tests/Api/v1/Requests/GroupStoreRequestTest.php
  54. 3 4
      tests/Api/v1/Requests/IconFetchRequestTest.php
  55. 3 3
      tests/Api/v1/Requests/QrCodeDecodeRequestTest.php
  56. 3 3
      tests/Api/v1/Requests/SettingStoreRequestTest.php
  57. 3 3
      tests/Api/v1/Requests/SettingUpdateRequestTest.php
  58. 3 3
      tests/Api/v1/Requests/TwoFAccountBatchRequestTest.php
  59. 5 5
      tests/Api/v1/Requests/TwoFAccountDynamicRequestTest.php
  60. 3 3
      tests/Api/v1/Requests/TwoFAccountImportRequestTest.php
  61. 4 4
      tests/Api/v1/Requests/TwoFAccountIndexRequestTest.php
  62. 3 3
      tests/Api/v1/Requests/TwoFAccountReorderRequestTest.php
  63. 3 3
      tests/Api/v1/Requests/TwoFAccountStoreRequestTest.php
  64. 3 3
      tests/Api/v1/Requests/TwoFAccountUpdateRequestTest.php
  65. 3 3
      tests/Api/v1/Requests/TwoFAccountUriRequestTest.php
  66. 3 3
      tests/Api/v1/Requests/UserManagerPromoteRequestTest.php
  67. 4 5
      tests/Api/v1/Requests/UserManagerStoreRequestTest.php
  68. 9 9
      tests/Feature/Console/FixServiceFieldEncryptionTest.php
  69. 2 3
      tests/Feature/Console/InstallTest.php
  70. 3 3
      tests/Feature/Console/ResetDemoTest.php
  71. 13 13
      tests/Feature/Http/Auth/LoginTest.php
  72. 8 8
      tests/Feature/Http/Auth/PasswordControllerTest.php
  73. 4 4
      tests/Feature/Http/Auth/SocialiteControllerTest.php
  74. 1 1
      tests/Feature/Http/Auth/WebAuthnDeviceLostControllerTest.php
  75. 6 6
      tests/Feature/Http/Auth/WebAuthnLoginControllerTest.php
  76. 2 2
      tests/Feature/Http/Auth/WebAuthnRegisterControllerTest.php
  77. 2 4
      tests/Feature/Http/Middlewares/AdminOnlyMiddlewareTest.php
  78. 2 2
      tests/Feature/Http/Middlewares/AuthenticateMiddlewareTest.php
  79. 1 1
      tests/Feature/Http/Middlewares/RejectIfSsoOnlyAndNotForAdminMiddlewareTest.php
  80. 7 7
      tests/Feature/Http/Middlewares/SetLanguageMiddlewareTest.php
  81. 3 3
      tests/Feature/Http/Requests/LoginRequestTest.php
  82. 3 3
      tests/Feature/Http/Requests/UserDeleteRequestTest.php
  83. 3 3
      tests/Feature/Http/Requests/UserPatchPwdRequestTest.php
  84. 3 3
      tests/Feature/Http/Requests/UserStoreRequestTest.php
  85. 1 1
      tests/Feature/Http/Requests/UserUpdateRequestTest.php
  86. 2 2
      tests/Feature/Http/Requests/WebauthnAssertedRequestTest.php
  87. 3 3
      tests/Feature/Http/Requests/WebauthnRenameRequestTest.php
  88. 1 1
      tests/Feature/Http/SystemControllerTest.php
  89. 1 1
      tests/Feature/Models/AuthLogModelTest.php
  90. 15 17
      tests/Feature/Models/UserModelTest.php
  91. 3 5
      tests/Feature/Notifications/FailedLoginNotificationTest.php
  92. 3 5
      tests/Feature/Notifications/SignedInWithNewDeviceNotificationTest.php
  93. 1 2
      tests/Feature/Notifications/TestEmailSettingNotificationTest.php
  94. 2 3
      tests/Feature/Notifications/WebauthnRecoveryNotificationTest.php
  95. 3 4
      tests/Feature/RouteTest.php
  96. 2 2
      tests/Feature/Services/GroupServiceTest.php
  97. 5 5
      tests/Feature/Services/LogoServiceTest.php
  98. 7 10
      tests/Feature/Services/QrCodeServiceTest.php
  99. 3 3
      tests/Feature/Services/SettingServiceTest.php
  100. 2 2
      tests/Feature/Services/TwoFAccountServiceTest.php

+ 1 - 2
app/Api/v1/Controllers/SettingController.php

@@ -6,7 +6,6 @@ use App\Api\v1\Requests\SettingStoreRequest;
 use App\Api\v1\Requests\SettingUpdateRequest;
 use App\Facades\Settings;
 use App\Http\Controllers\Controller;
-use Illuminate\Validation\ValidationException;
 
 class SettingController extends Controller
 {
@@ -100,7 +99,7 @@ class SettingController extends Controller
 
         // When deleting a setting, it may be an original or an additional one:
         // - Additional settings are created by administrators to extend 2FAuth, they are not registered in the laravel config object.
-        //   They are not nullable so empty string is not allowed.They only exist in the Options table, so it is possible to delete them. 
+        //   They are not nullable so empty string is not allowed.They only exist in the Options table, so it is possible to delete them.
         // - Original settings are part of 2FAuth, they are registered in the laravel config object with their default value.
         //   When set by an admin, their custom value is stored in the Options table too. Deleting a custom value in the Options table from here
         //   won't delete the setting at all, so we reject all requests that ask for.

+ 7 - 6
app/Api/v1/Controllers/TwoFAccountController.php

@@ -111,8 +111,9 @@ class TwoFAccountController extends Controller
         if ($twofaccount->group_id != $groupId) {
             if ((int) $groupId === 0) {
                 TwoFAccounts::withdraw($twofaccount->id);
+            } else {
+                Groups::assign($twofaccount->id, $request->user(), $groupId);
             }
-            else Groups::assign($twofaccount->id, $request->user(), $groupId);
             $twofaccount->refresh();
         }
 
@@ -151,7 +152,7 @@ class TwoFAccountController extends Controller
         $validated = $request->validated();
 
         $twofaccounts = TwoFAccount::whereIn('id', $validated['orderedIds'])->get();
-        $this->authorize('updateEach', [new TwoFAccount(), $twofaccounts]);
+        $this->authorize('updateEach', [new TwoFAccount, $twofaccounts]);
 
         TwoFAccount::setNewOrder($validated['orderedIds']);
         $orderedIds = $request->user()->twofaccounts->sortBy('order_column')->pluck('id');
@@ -192,7 +193,7 @@ class TwoFAccountController extends Controller
         }
 
         $twofaccounts = TwoFAccounts::export($validated['ids']);
-        $this->authorize('viewEach', [new TwoFAccount(), $twofaccounts]);
+        $this->authorize('viewEach', [new TwoFAccount, $twofaccounts]);
 
         return new TwoFAccountExportCollection($twofaccounts);
     }
@@ -231,7 +232,7 @@ class TwoFAccountController extends Controller
         // The request inputs should define an account
         else {
             $validatedData = $request->validate((new TwoFAccountStoreRequest)->rules());
-            $twofaccount   = new TwoFAccount();
+            $twofaccount   = new TwoFAccount;
             $twofaccount->fillWithOtpParameters($validatedData, true);
         }
 
@@ -267,7 +268,7 @@ class TwoFAccountController extends Controller
         $ids          = Helpers::commaSeparatedToArray($validated['ids']);
         $twofaccounts = TwoFAccount::whereIn('id', $ids)->get();
 
-        $this->authorize('updateEach', [new TwoFAccount(), $twofaccounts]);
+        $this->authorize('updateEach', [new TwoFAccount, $twofaccounts]);
 
         TwoFAccounts::withdraw($ids);
 
@@ -307,7 +308,7 @@ class TwoFAccountController extends Controller
         $ids          = Helpers::commaSeparatedToArray($validated['ids']);
         $twofaccounts = TwoFAccount::whereIn('id', $ids)->get();
 
-        $this->authorize('deleteEach', [new TwoFAccount(), $twofaccounts]);
+        $this->authorize('deleteEach', [new TwoFAccount, $twofaccounts]);
 
         TwoFAccounts::delete($validated['ids']);
 

+ 2 - 4
app/Api/v1/Requests/SettingUpdateRequest.php

@@ -34,15 +34,13 @@ class SettingUpdateRequest extends FormRequest
                     new IsValidEmailList,
                 ],
             ];
-        }
-        else if ($routeParam == 'restrictRule') {
+        } elseif ($routeParam == 'restrictRule') {
             $rule = [
                 'value' => [
                     new IsValidRegex,
                 ],
             ];
-        }
-        else {
+        } else {
             $rule = [
                 'value' => [
                     'required',

+ 1 - 1
app/Api/v1/Resources/UserAuthenticationResource.php

@@ -37,7 +37,7 @@ class UserAuthenticationResource extends JsonResource
      */
     public function __construct($resource)
     {
-        $this->agent = new Agent();
+        $this->agent = new Agent;
         $this->agent->setUserAgent($resource->user_agent);
 
         parent::__construct($resource);

+ 10 - 15
app/Console/Commands/Maintenance/FixServiceFieldEncryption.php

@@ -4,12 +4,8 @@ namespace App\Console\Commands\Maintenance;
 
 use App\Facades\Settings;
 use App\Models\TwoFAccount;
-use Exception;
 use Illuminate\Console\Command;
-use Illuminate\Support\Facades\Crypt;
 use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Facades\Log;
-use Throwable;
 
 /**
  * @codeCoverageIgnore
@@ -75,16 +71,15 @@ class FixServiceFieldEncryption extends Command
      */
     protected function encryptServiceField() : void
     {
-        $twofaccounts = TwoFAccount::all();
-        $fullyEncryptedTwofaccounts = $twofaccounts->whereNotIn('service', [__('errors.indecipherable')]);
+        $twofaccounts                   = TwoFAccount::all();
+        $fullyEncryptedTwofaccounts     = $twofaccounts->whereNotIn('service', [__('errors.indecipherable')]);
         $partiallyEncryptedTwofaccounts = $twofaccounts->where('service', __('errors.indecipherable'));
 
         if ($fullyEncryptedTwofaccounts->count() === $twofaccounts->count()) {
             $this->components->info('The Service field is fully encrypted');
 
             return;
-        }
-        else {
+        } else {
             $this->newLine();
             $this->components->warn('The Service field is not fully encrypted, although it should be.');
             $this->line('ID of corresponding records in the twofaccounts table:');
@@ -95,16 +90,17 @@ class FixServiceFieldEncryption extends Command
                 $partiallyEncryptedTwofaccounts->each(function (TwoFAccount $twofaccount, int $key) use (&$error) {
                     // We don't want to encrypt the Service field with a different APP_KEY
                     // than the one used to encrypt the legacy_uri, account and secret fields, the
-                    // model would be inconsistent. 
+                    // model would be inconsistent.
                     if (str_starts_with($twofaccount->legacy_uri, 'otpauth://')) {
-                        $rawServiceValue = $twofaccount->getRawOriginal('service');
+                        $rawServiceValue      = $twofaccount->getRawOriginal('service');
                         $twofaccount->service = $rawServiceValue;
                         $twofaccount->save();
                         $this->components->task(sprintf('Fixing twofaccount record with ID #%s', $twofaccount->id));
-                    }
-                    else {
+                    } else {
                         $error += 1;
-                        $this->components->task(sprintf('Fixing twofaccount record with ID #%s', $twofaccount->id), function() { return false; });
+                        $this->components->task(sprintf('Fixing twofaccount record with ID #%s', $twofaccount->id), function () {
+                            return false;
+                        });
                         $this->components->error('Wrong encryption key: The current APP_KEY cannot decipher already encrypted fields, encrypting the Service field with this key would lead to inconsistent data encryption');
                     }
                 });
@@ -116,8 +112,7 @@ class FixServiceFieldEncryption extends Command
                 }
 
                 //$this->line('Task completed');
-            }
-            else {
+            } else {
                 $this->components->warn('No fix applied.');
                 $this->line('You can re-run this command at any time to fix inconsistent records.');
             }

+ 2 - 2
app/Console/Commands/Utils/ResetTrait.php

@@ -81,8 +81,8 @@ trait ResetTrait
     protected function seedDB(string $seeder) : void
     {
         $this->callSilent('db:seed', [
-            '--class' => $seeder,
-            '--no-interaction' => 1
+            '--class'          => $seeder,
+            '--no-interaction' => 1,
         ]);
 
         $this->line('Database seeded');

+ 1 - 3
app/Exceptions/DbEncryptionException.php

@@ -9,6 +9,4 @@ use Exception;
  *
  * @codeCoverageIgnore
  */
-class DbEncryptionException extends Exception
-{
-}
+class DbEncryptionException extends Exception {}

+ 1 - 3
app/Exceptions/EncryptedMigrationException.php

@@ -9,6 +9,4 @@ use Exception;
  *
  * @codeCoverageIgnore
  */
-class EncryptedMigrationException extends Exception
-{
-}
+class EncryptedMigrationException extends Exception {}

+ 1 - 3
app/Exceptions/InvalidMigrationDataException.php

@@ -9,6 +9,4 @@ use Exception;
  *
  * @codeCoverageIgnore
  */
-class InvalidMigrationDataException extends Exception
-{
-}
+class InvalidMigrationDataException extends Exception {}

+ 1 - 3
app/Exceptions/InvalidOtpParameterException.php

@@ -9,6 +9,4 @@ use Exception;
  *
  * @codeCoverageIgnore
  */
-class InvalidOtpParameterException extends Exception
-{
-}
+class InvalidOtpParameterException extends Exception {}

+ 1 - 3
app/Exceptions/InvalidQrCodeException.php

@@ -9,6 +9,4 @@ use Exception;
  *
  * @codeCoverageIgnore
  */
-class InvalidQrCodeException extends Exception
-{
-}
+class InvalidQrCodeException extends Exception {}

+ 1 - 3
app/Exceptions/InvalidSecretException.php

@@ -9,6 +9,4 @@ use Exception;
  *
  * @codeCoverageIgnore
  */
-class InvalidSecretException extends Exception
-{
-}
+class InvalidSecretException extends Exception {}

+ 1 - 3
app/Exceptions/UndecipherableException.php

@@ -9,6 +9,4 @@ use Exception;
  *
  * @codeCoverageIgnore
  */
-class UndecipherableException extends Exception
-{
-}
+class UndecipherableException extends Exception {}

+ 1 - 3
app/Exceptions/UnsupportedMigrationException.php

@@ -9,6 +9,4 @@ use Exception;
  *
  * @codeCoverageIgnore
  */
-class UnsupportedMigrationException extends Exception
-{
-}
+class UnsupportedMigrationException extends Exception {}

+ 1 - 3
app/Exceptions/UnsupportedOtpTypeException.php

@@ -9,6 +9,4 @@ use Exception;
  *
  * @codeCoverageIgnore
  */
-class UnsupportedOtpTypeException extends Exception
-{
-}
+class UnsupportedOtpTypeException extends Exception {}

+ 3 - 3
app/Factories/MigratorFactory.php

@@ -34,7 +34,7 @@ class MigratorFactory implements MigratorFactoryInterface
         } elseif ($this->isPlainText($migrationPayload)) {
             return App::make(PlainTextMigrator::class);
         } else {
-            throw new UnsupportedMigrationException();
+            throw new UnsupportedMigrationException;
         }
     }
 
@@ -130,7 +130,7 @@ class MigratorFactory implements MigratorFactoryInterface
 
         if (Arr::has($json, 'db')) {
             if (is_string($json['db']) && is_array(Arr::get($json, 'header.slots'))) {
-                throw new EncryptedMigrationException();
+                throw new EncryptedMigrationException;
             } else {
                 return count(Validator::validate(
                     $json,
@@ -180,7 +180,7 @@ class MigratorFactory implements MigratorFactoryInterface
 
         if (Arr::has($json, 'schemaVersion') && (Arr::has($json, 'services') || Arr::has($json, 'servicesEncrypted'))) {
             if (Arr::has($json, 'servicesEncrypted')) {
-                throw new EncryptedMigrationException();
+                throw new EncryptedMigrationException;
             } else {
                 return count(Validator::validate(
                     $json,

+ 1 - 1
app/Http/Controllers/Auth/WebAuthnRecoveryController.php

@@ -54,7 +54,7 @@ class WebAuthnRecoveryController extends Controller
                     $user->save();
                     Log::notice(sprintf('Legacy login restored for user ID #%s', $user->id));
                 } else {
-                    throw new AuthenticationException();
+                    throw new AuthenticationException;
                 }
             }
         );

+ 3 - 3
app/Http/Controllers/SinglePageController.php

@@ -16,7 +16,7 @@ class SinglePageController extends Controller
      */
     public function index()
     {
-        event(new ScanForNewReleaseCalled());
+        event(new ScanForNewReleaseCalled);
 
         $settings           = Settings::all()->toJson();
         $proxyAuth          = config('auth.defaults.guard') === 'reverse-proxy-guard' ? true : false;
@@ -45,9 +45,9 @@ class SinglePageController extends Controller
                 ],
                 'subdirectory' => $subdir,
             ])->toJson(),
-            'urls'               => collect([
+            'urls' => collect([
                 'installDocUrl' => $installDocUrl,
-                'ssoDocUrl'     => $ssoDocUrl
+                'ssoDocUrl'     => $ssoDocUrl,
             ]),
             'defaultPreferences' => $defaultPreferences,
             'subdirectory'       => $subdir,

+ 1 - 1
app/Http/Controllers/SystemController.php

@@ -70,7 +70,7 @@ class SystemController extends Controller
     public function testEmail(Request $request)
     {
         try {
-            $request->user()->notify(new TestEmailSettingNotification());
+            $request->user()->notify(new TestEmailSettingNotification);
         } catch (\Throwable $th) {
             Log::error($th->getMessage());
         }

+ 1 - 1
app/Http/Middleware/CustomCreateFreshApiToken.php

@@ -11,7 +11,7 @@ class CustomCreateFreshApiToken extends CreateFreshApiToken
      *
      * @param  \Illuminate\Http\Request  $request
      * @return bool
-     * 
+     *
      * @codeCoverageIgnore
      */
     protected function requestShouldReceiveFreshToken($request)

+ 1 - 1
app/Http/Middleware/ForceJsonResponse.php

@@ -11,7 +11,7 @@ class ForceJsonResponse
      *
      * @param  \Illuminate\Http\Request  $request
      * @return mixed
-     * 
+     *
      * @codeCoverageIgnore
      */
     public function handle($request, Closure $next)

+ 5 - 4
app/Http/Middleware/RejectIfSsoOnlyAndNotForAdmin.php

@@ -24,15 +24,16 @@ class RejectIfSsoOnlyAndNotForAdmin
         if (Settings::get('useSsoOnly')) {
             if ($email = $request->input('email', null)) {
                 $user = User::whereEmail($email)->first();
+            } else {
+                $user = Auth::user();
             }
-            else $user = Auth::user();
-    
+
             if ($user?->isAdministrator()) {
                 return $next($request);
             }
-    
+
             Log::notice(sprintf('Request to %s rejected, only Admins can request it while authentication is restricted to SSO only', $request->getPathInfo()));
-            
+
             return response()->json(['message' => __('errors.unsupported_with_sso_only')], Response::HTTP_METHOD_NOT_ALLOWED);
         }
 

+ 1 - 1
app/Http/Middleware/TrustProxies.php

@@ -8,7 +8,7 @@ class TrustProxies extends Middleware
 {
     /**
      * TrustProxies constructor.
-     * 
+     *
      * @codeCoverageIgnore
      */
     public function __construct()

+ 2 - 1
app/Listeners/Authentication/FailedLoginListener.php

@@ -59,7 +59,8 @@ class FailedLoginListener extends AbstractAccessListener
             if ($user->preferences['notifyOnFailedLogin'] == true) {
                 $user->notify(new FailedLoginNotification($log));
             }
+        } else {
+            Log::info(sprintf('%s received an event with a null $user member. Nothing has been written to the auth log', self::class));
         }
-        else Log::info(sprintf('%s received an event with a null $user member. Nothing has been written to the auth log', self::class));
     }
 }

+ 6 - 6
app/Listeners/Authentication/LoginListener.php

@@ -47,12 +47,12 @@ class LoginListener extends AbstractAccessListener
         $ip        = config('2fauth.proxy_headers.forIp') ?? $this->request->ip();
         $userAgent = $this->request->userAgent();
         $known     = $user->authentications()
-                          ->whereIpAddress($ip)
-                          ->whereUserAgent($userAgent)
-                          ->whereLoginSuccessful(true)
-                          ->whereGuard($event->guard)
-                          ->first();
-        $newUser   = Carbon::parse($user->{$user->getCreatedAtColumn()})->diffInMinutes(Carbon::now(), true) < 1;
+            ->whereIpAddress($ip)
+            ->whereUserAgent($userAgent)
+            ->whereLoginSuccessful(true)
+            ->whereGuard($event->guard)
+            ->first();
+        $newUser = Carbon::parse($user->{$user->getCreatedAtColumn()})->diffInMinutes(Carbon::now(), true) < 1;
 
         $log = $user->authentications()->create([
             'ip_address'       => $ip,

+ 5 - 5
app/Listeners/Authentication/LogoutListener.php

@@ -46,11 +46,11 @@ class LogoutListener extends AbstractAccessListener
         $ip        = config('2fauth.proxy_headers.forIp') ?? $this->request->ip();
         $userAgent = $this->request->userAgent();
         $log       = $user->authentications()
-                          ->whereIpAddress($ip)
-                          ->whereUserAgent($userAgent)
-                          ->whereGuard($event->guard)
-                          ->orderByDesc('login_at')
-                          ->first();
+            ->whereIpAddress($ip)
+            ->whereUserAgent($userAgent)
+            ->whereGuard($event->guard)
+            ->orderByDesc('login_at')
+            ->first();
 
         if (! $log) {
             $log = new AuthLog([

+ 5 - 5
app/Listeners/Authentication/OtherDeviceLogoutListener.php

@@ -30,7 +30,7 @@ use TypeError;
 
 /**
  * @codeCoverageIgnore
- * 
+ *
  * Excluded from test coverage as long as 2FAuth does not offer a logout Other Devices feature
  * See \Illuminate\Auth\SessionGuard::logoutOtherDevices when the time comes
  */
@@ -52,10 +52,10 @@ class OtherDeviceLogoutListener extends AbstractAccessListener
         $ip        = config('2fauth.proxy_headers.forIp') ?? $this->request->ip();
         $userAgent = $this->request->userAgent();
         $authLog   = $user->authentications()
-                          ->whereIpAddress($ip)
-                          ->whereUserAgent($userAgent)
-                          ->first();
-        $guard     = $event->guard;
+            ->whereIpAddress($ip)
+            ->whereUserAgent($userAgent)
+            ->first();
+        $guard = $event->guard;
 
         if (! $authLog) {
             $authLog = new AuthLog([

+ 6 - 6
app/Listeners/Authentication/VisitedByProxyUserListener.php

@@ -28,12 +28,12 @@ class VisitedByProxyUserListener extends AbstractAccessListener
         $userAgent = $this->request->userAgent();
         $guard     = config('auth.defaults.guard');
         $known     = $user->authentications()
-                          ->whereIpAddress($ip)
-                          ->whereUserAgent($userAgent)
-                          ->whereLoginSuccessful(true)
-                          ->whereGuard($guard)
-                          ->first();
-        $newUser   = Carbon::parse($user->{$user->getCreatedAtColumn()})->diffInMinutes(Carbon::now(), true) < 1;
+            ->whereIpAddress($ip)
+            ->whereUserAgent($userAgent)
+            ->whereLoginSuccessful(true)
+            ->whereGuard($guard)
+            ->first();
+        $newUser = Carbon::parse($user->{$user->getCreatedAtColumn()})->diffInMinutes(Carbon::now(), true) < 1;
 
         $log = $user->authentications()->create([
             'ip_address'       => $ip,

+ 2 - 2
app/Models/Option.php

@@ -10,14 +10,14 @@ use Illuminate\Database\Eloquent\Model;
  * @property int $id
  * @property string $key
  * @property string $value
- * 
+ *
  * @method static \Illuminate\Database\Eloquent\Builder|Option newModelQuery()
  * @method static \Illuminate\Database\Eloquent\Builder|Option newQuery()
  * @method static \Illuminate\Database\Eloquent\Builder|Option query()
  * @method static \Illuminate\Database\Eloquent\Builder|Option whereId($value)
  * @method static \Illuminate\Database\Eloquent\Builder|Option whereKey($value)
  * @method static \Illuminate\Database\Eloquent\Builder|Option whereValue($value)
- * 
+ *
  * @mixin \Eloquent
  */
 class Option extends Model

+ 2 - 1
app/Models/User.php

@@ -70,12 +70,13 @@ use Laravel\Passport\HasApiTokens;
 class User extends Authenticatable implements HasLocalePreference, WebAuthnAuthenticatable
 {
     use HasApiTokens, Notifiable;
-
     use HasAuthenticationLog;
+
     /**
      * @use HasFactory<UserFactory>
      */
     use HasFactory;
+
     use WebAuthnAuthentication, WebAuthnManageCredentials;
 
     /**

+ 2 - 2
app/Notifications/FailedLoginNotification.php

@@ -31,7 +31,7 @@ class FailedLoginNotification extends Notification implements ShouldQueue
     public function __construct(AuthLog $authLog)
     {
         $this->authLog = $authLog;
-        $this->agent   = new Agent();
+        $this->agent   = new Agent;
         $this->agent->setUserAgent($authLog->user_agent);
     }
 
@@ -48,7 +48,7 @@ class FailedLoginNotification extends Notification implements ShouldQueue
      */
     public function toMail(mixed $notifiable) : MailMessage
     {
-        return (new MailMessage())
+        return (new MailMessage)
             ->subject(__('notifications.failed_login.subject'))
             ->markdown('emails.failedLogin', [
                 'account'   => $notifiable,

+ 2 - 2
app/Notifications/SignedInWithNewDeviceNotification.php

@@ -31,7 +31,7 @@ class SignedInWithNewDeviceNotification extends Notification implements ShouldQu
     public function __construct(AuthLog $authLog)
     {
         $this->authLog = $authLog;
-        $this->agent   = new Agent();
+        $this->agent   = new Agent;
         $this->agent->setUserAgent($authLog->user_agent);
     }
 
@@ -45,7 +45,7 @@ class SignedInWithNewDeviceNotification extends Notification implements ShouldQu
      */
     public function toMail(mixed $notifiable) : MailMessage
     {
-        return (new MailMessage())
+        return (new MailMessage)
             ->subject(__('notifications.new_device.subject'))
             ->markdown('emails.signedInWithNewDevice', [
                 'account'   => $notifiable,

+ 1 - 4
app/Notifications/TestEmailSettingNotification.php

@@ -26,10 +26,7 @@ class TestEmailSettingNotification extends Notification
     /**
      * TestEmailSettingNotification constructor.
      */
-    public function __construct()
-    {
-
-    }
+    public function __construct() {}
 
     /**
      * Get the notification's delivery channels.

+ 5 - 5
app/Policies/UserPolicy.php

@@ -31,7 +31,7 @@ class UserPolicy
 
     /**
      * Determine whether the user can view the model.
-     * 
+     *
      * @codeCoverageIgnore
      * Ignored as long as the before() method restrict the access to admins only
      */
@@ -48,7 +48,7 @@ class UserPolicy
 
     /**
      * Determine whether the user can create models.
-     * 
+     *
      * @codeCoverageIgnore
      * Ignored as long as the before() method restrict the access to admins only
      */
@@ -59,7 +59,7 @@ class UserPolicy
 
     /**
      * Determine whether the user can update the model.
-     * 
+     *
      * Not ignored because the user can update itself
      */
     public function update(User $user, User $model) : bool
@@ -75,7 +75,7 @@ class UserPolicy
 
     /**
      * Determine whether the user can delete the model.
-     * 
+     *
      * @codeCoverageIgnore
      * Ignored as long as the before() method restrict the access to admins only
      */
@@ -92,7 +92,7 @@ class UserPolicy
 
     /**
      * Determine whether the user can promote the model.
-     * 
+     *
      * @codeCoverageIgnore
      * Ignored as long as the before() method restrict the access to admins only
      */

+ 4 - 4
app/Providers/MigrationServiceProvider.php

@@ -20,19 +20,19 @@ class MigrationServiceProvider extends ServiceProvider
         $this->app->bind(MigratorFactoryInterface::class, MigratorFactory::class);
 
         $this->app->singleton(GoogleAuthMigrator::class, function () {
-            return new GoogleAuthMigrator();
+            return new GoogleAuthMigrator;
         });
 
         $this->app->singleton(AegisMigrator::class, function () {
-            return new AegisMigrator();
+            return new AegisMigrator;
         });
 
         $this->app->singleton(TwoFASMigrator::class, function () {
-            return new TwoFASMigrator();
+            return new TwoFASMigrator;
         });
 
         $this->app->singleton(PlainTextMigrator::class, function () {
-            return new PlainTextMigrator();
+            return new PlainTextMigrator;
         });
     }
 

+ 2 - 2
app/Providers/Socialite/OpenId.php

@@ -23,7 +23,7 @@ class OpenId extends AbstractProvider implements ProviderInterface
     public function __construct(Request $request, $clientId, $clientSecret, $redirectUrl, $guzzle = [])
     {
         $guzzle = array_merge([
-            'proxy' => config('2fauth.config.outgoingProxy')
+            'proxy' => config('2fauth.config.outgoingProxy'),
         ], $guzzle);
 
         parent::__construct($request, $clientId, $clientSecret, $redirectUrl, $guzzle);
@@ -72,7 +72,7 @@ class OpenId extends AbstractProvider implements ProviderInterface
      */
     protected function mapUserToObject(array $user)
     {
-        return (new User())->setRaw($user)->map([
+        return (new User)->setRaw($user)->map([
             'email'              => $user['email'] ?? null,
             'email_verified'     => $user['email_verified'] ?? null,
             'name'               => $user['name'] ?? null,

+ 3 - 3
app/Providers/TwoFAuthServiceProvider.php

@@ -25,15 +25,15 @@ class TwoFAuthServiceProvider extends ServiceProvider implements DeferrableProvi
         });
 
         $this->app->singleton(SettingService::class, function () {
-            return new SettingService();
+            return new SettingService;
         });
 
         $this->app->singleton(LogoService::class, function () {
-            return new LogoService();
+            return new LogoService;
         });
 
         $this->app->singleton(ReleaseRadarService::class, function () {
-            return new ReleaseRadarService();
+            return new ReleaseRadarService;
         });
 
         $this->app->bind(QrReader::class, function ($app, $parameters) {

+ 2 - 3
app/Rules/IsValidRegex.php

@@ -14,12 +14,11 @@ class IsValidRegex implements ValidationRule
     {
         try {
             preg_match('/' . $value . '/', '');
-	
+
             if (preg_last_error() !== PREG_NO_ERROR) {
                 $fail('validation.IsValidRegex')->translate();
             }
-        }
-        catch (\Throwable $ex) {
+        } catch (\Throwable $ex) {
             $fail('validation.IsValidRegex')->translate();
         }
     }

+ 0 - 2
app/Services/Auth/ReverseProxyGuard.php

@@ -5,11 +5,9 @@
 
 namespace App\Services\Auth;
 
-use App\Events\VisitedByProxyUser;
 use Illuminate\Auth\GuardHelpers;
 use Illuminate\Contracts\Auth\Guard;
 use Illuminate\Contracts\Auth\UserProvider;
-use Illuminate\Support\Carbon;
 use Illuminate\Support\Facades\Log;
 
 class ReverseProxyGuard implements Guard

+ 4 - 5
app/Services/GroupService.php

@@ -29,7 +29,7 @@ class GroupService
         // TwoFAccountService::withdraw() method.
         if ($targetGroup === 0 || $targetGroup === '0') {
             Log::info('Group assignment skipped, no group explicitly requested');
-            
+
             return;
         }
 
@@ -38,11 +38,10 @@ class GroupService
         // - No group is passed => We try to identify a destination group through user preferences
         $group = null;
 
-        if(! is_null($targetGroup)) {
+        if (! is_null($targetGroup)) {
             if ($targetGroup instanceof Group && $targetGroup->exists && $targetGroup->user_id == $user->id) {
                 $group = $targetGroup;
-            }
-            else {
+            } else {
                 $group = Group::where('id', (int) $targetGroup)
                     ->where('user_id', $user->id)
                     ->first();
@@ -58,7 +57,7 @@ class GroupService
             $twofaccounts = TwoFAccount::find($ids);
 
             if ($user->cannot('updateEach', [(new TwoFAccount), $twofaccounts])) {
-                throw new AuthorizationException();
+                throw new AuthorizationException;
             }
 
             $group->twofaccounts()->saveMany($twofaccounts);

+ 2 - 2
app/Services/Migrators/AegisMigrator.php

@@ -76,7 +76,7 @@ class AegisMigrator extends Migrator
                             break;
 
                         default:
-                            throw new \Exception();
+                            throw new \Exception;
                     }
                     $parameters['iconData'] = base64_decode($otp_parameters['icon']);
                 }
@@ -95,7 +95,7 @@ class AegisMigrator extends Migrator
                 Log::debug($exception->getMessage());
 
                 // The token failed to generate a valid account so we create a fake account to be returned.
-                $fakeAccount           = new TwoFAccount();
+                $fakeAccount           = new TwoFAccount;
                 $fakeAccount->id       = TwoFAccount::FAKE_ID;
                 $fakeAccount->otp_type = $otp_parameters['type'] ?? TwoFAccount::TOTP;
                 // Only basic fields are filled to limit the risk of another exception.

+ 3 - 3
app/Services/Migrators/GoogleAuthMigrator.php

@@ -28,7 +28,7 @@ class GoogleAuthMigrator extends Migrator
     {
         try {
             $migrationData = base64_decode(urldecode(Str::replace('otpauth-migration://offline?data=', '', strval($migrationPayload))));
-            $protobuf      = new Payload();
+            $protobuf      = new Payload;
             $protobuf->mergeFromString($migrationData);
             $otpParameters = $protobuf->getOtpParameters();
         } catch (Exception $ex) {
@@ -59,7 +59,7 @@ class GoogleAuthMigrator extends Migrator
                 Log::debug($exception->getMessage());
 
                 // The token failed to generate a valid account so we create a fake account to be returned.
-                $fakeAccount           = new TwoFAccount();
+                $fakeAccount           = new TwoFAccount;
                 $fakeAccount->id       = TwoFAccount::FAKE_ID;
                 $fakeAccount->otp_type = $fakeAccount::TOTP;
                 // Only basic fields are filled to limit the risk of another exception.
@@ -77,7 +77,7 @@ class GoogleAuthMigrator extends Migrator
 
     /**
      * Encode into uppercase Base32
-     * 
+     *
      * @throws TypeError
      */
     protected function toBase32(string $str) : string

+ 1 - 1
app/Services/Migrators/PlainTextMigrator.php

@@ -37,7 +37,7 @@ class PlainTextMigrator extends Migrator
                 Log::debug($exception->getMessage());
 
                 // The token failed to generate a valid account so we create a fake account to be returned.
-                $fakeAccount           = new TwoFAccount();
+                $fakeAccount           = new TwoFAccount;
                 $fakeAccount->id       = TwoFAccount::FAKE_ID;
                 $fakeAccount->otp_type = substr($uri, 10, 4);
                 // Only basic fields are filled to limit the risk of another exception.

+ 1 - 1
app/Services/Migrators/TwoFASMigrator.php

@@ -103,7 +103,7 @@ class TwoFASMigrator extends Migrator
                 Log::debug($exception->getMessage());
 
                 // The token failed to generate a valid account so we create a fake account to be returned.
-                $fakeAccount           = new TwoFAccount();
+                $fakeAccount           = new TwoFAccount;
                 $fakeAccount->id       = TwoFAccount::FAKE_ID;
                 $fakeAccount->otp_type = $otp_parameters['otp']['tokenType'] ?? TwoFAccount::TOTP;
                 // Only basic fields are filled to limit the risk of another exception.

+ 2 - 2
app/Services/Migrators/TwoFAuthMigrator.php

@@ -93,7 +93,7 @@ class TwoFAuthMigrator extends Migrator
                             break;
 
                         default:
-                            throw new \Exception();
+                            throw new \Exception;
                     }
                     $parameters['icon_file'] = base64_decode($otp_parameters['icon_file']);
                 }
@@ -112,7 +112,7 @@ class TwoFAuthMigrator extends Migrator
                 Log::debug($exception->getMessage());
 
                 // The token failed to generate a valid account so we create a fake account to be returned.
-                $fakeAccount           = new TwoFAccount();
+                $fakeAccount           = new TwoFAccount;
                 $fakeAccount->id       = TwoFAccount::FAKE_ID;
                 $fakeAccount->otp_type = $otp_parameters['otp']['tokenType'] ?? TwoFAccount::TOTP;
                 // Only basic fields are filled to limit the risk of another exception.

+ 3 - 3
app/Services/QrCodeService.php

@@ -40,11 +40,11 @@ class QrCodeService
     public static function decode(\Illuminate\Http\UploadedFile $file)
     {
         $qrcode = app()->make(QrReader::class, [
-            'imgSource' => $file->get(),
-            'sourceType' => QrReader::SOURCE_TYPE_BLOB
+            'imgSource'  => $file->get(),
+            'sourceType' => QrReader::SOURCE_TYPE_BLOB,
         ]);
 
-        $text   = $qrcode->text();
+        $text = $qrcode->text();
 
         if (! $text) {
             $text = $qrcode->text([

+ 2 - 1
app/Services/TwoFAccountService.php

@@ -46,8 +46,9 @@ class TwoFAccountService
 
         if ($affectedCount) {
             Log::info(sprintf('TwoFAccounts with IDs #%s withdrawn', implode(',', $ids)));
+        } else {
+            Log::info(sprintf('Cannot find TwoFAccounts to withdraw using ids #%s', implode(',', $ids)));
         }
-        else Log::info(sprintf('Cannot find TwoFAccounts to withdraw using ids #%s', implode(',', $ids)));
     }
 
     /**

+ 5 - 5
routes/web.php

@@ -55,7 +55,7 @@ Route::group(['middleware' => ['rejectIfDemoMode', 'throttle:10,1', 'RejectIfSso
  * that can be requested max 10 times per minute by the same IP
  */
 Route::group(['middleware' => ['guest', 'throttle:10,1']], function () {
-    Route::post('user/login', [LoginController::class, 'login'])->name('user.login')->middleware('RejectIfSsoOnlyAndNotForAdmin');;
+    Route::post('user/login', [LoginController::class, 'login'])->name('user.login')->middleware('RejectIfSsoOnlyAndNotForAdmin');
     Route::post('webauthn/login', [WebAuthnLoginController::class, 'login'])->name('webauthn.login')->middleware('RejectIfSsoOnlyAndNotForAdmin');
 
     Route::get('/socialite/redirect/{driver}', [SocialiteController::class, 'redirect'])->name('socialite.redirect');
@@ -100,10 +100,10 @@ Route::get('refresh-csrf', function () {
 });
 
 Route::withoutMiddleware([
-        SubstituteBindings::class,
-        SetLanguage::class,
-        CustomCreateFreshApiToken::class
-    ])->get('/up', function () {
+    SubstituteBindings::class,
+    SetLanguage::class,
+    CustomCreateFreshApiToken::class,
+])->get('/up', function () {
     //Event::dispatch(new DiagnosingHealth);
     return view('health');
 });

+ 18 - 18
tests/Api/v1/Controllers/TwoFAccountControllerTest.php

@@ -127,7 +127,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
         'algorithm',
         'period',
         'counter',
-        'otp' => self::VALID_EMBEDDED_OTP_RESOURCE_STRUCTURE_FOR_TOTP
+        'otp' => self::VALID_EMBEDDED_OTP_RESOURCE_STRUCTURE_FOR_TOTP,
     ];
 
     private const VALID_COLLECTION_RESOURCE_STRUCTURE_WITH_OTP = [
@@ -141,7 +141,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
         'algorithm',
         'period',
         'counter',
-        'otp' => self::VALID_EMBEDDED_OTP_RESOURCE_STRUCTURE_FOR_TOTP
+        'otp' => self::VALID_EMBEDDED_OTP_RESOURCE_STRUCTURE_FOR_TOTP,
     ];
 
     private const VALID_EXPORT_STRUTURE = [
@@ -527,7 +527,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
         $response = $this->actingAs($this->user, 'api-guard')
             ->json('POST', '/api/v1/twofaccounts', array_merge(
                 OtpTestData::ARRAY_OF_FULL_VALID_PARAMETERS_FOR_CUSTOM_TOTP,
-                ['group_id'  => $this->userGroupA->id]
+                ['group_id' => $this->userGroupA->id]
             ))
             ->assertJsonFragment([
                 'group_id' => $this->userGroupA->id,
@@ -540,7 +540,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
         $response = $this->actingAs($this->user, 'api-guard')
             ->json('POST', '/api/v1/twofaccounts', array_merge(
                 OtpTestData::ARRAY_OF_FULL_VALID_PARAMETERS_FOR_CUSTOM_TOTP,
-                ['group_id'  => 9999999]
+                ['group_id' => 9999999]
             ))
             ->assertJsonValidationErrorFor('group_id');
     }
@@ -555,7 +555,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
         $response = $this->actingAs($this->user, 'api-guard')
             ->json('POST', '/api/v1/twofaccounts', array_merge(
                 OtpTestData::ARRAY_OF_FULL_VALID_PARAMETERS_FOR_CUSTOM_TOTP,
-                ['group_id'  => null]
+                ['group_id' => null]
             ))
             ->assertJsonFragment([
                 'group_id' => null,
@@ -572,7 +572,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
         $response = $this->actingAs($this->user, 'api-guard')
             ->json('POST', '/api/v1/twofaccounts', array_merge(
                 OtpTestData::ARRAY_OF_FULL_VALID_PARAMETERS_FOR_CUSTOM_TOTP,
-                ['group_id'  => null]
+                ['group_id' => null]
             ))
             ->assertJsonFragment([
                 'group_id' => $this->user->preferences['defaultGroup'],
@@ -589,7 +589,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
         $response = $this->actingAs($this->user, 'api-guard')
             ->json('POST', '/api/v1/twofaccounts', array_merge(
                 OtpTestData::ARRAY_OF_FULL_VALID_PARAMETERS_FOR_CUSTOM_TOTP,
-                ['group_id'  => 0]
+                ['group_id' => 0]
             ))
             ->assertJsonFragment([
                 'group_id' => null,
@@ -606,7 +606,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
         $response = $this->actingAs($this->user, 'api-guard')
             ->json('POST', '/api/v1/twofaccounts', array_merge(
                 OtpTestData::ARRAY_OF_FULL_VALID_PARAMETERS_FOR_CUSTOM_TOTP,
-                ['group_id'  => $this->userGroupB->id]
+                ['group_id' => $this->userGroupB->id]
             ))
             ->assertJsonFragment([
                 'group_id' => $this->userGroupB->id,
@@ -709,15 +709,15 @@ class TwoFAccountControllerTest extends FeatureTestCase
     public function test_update_with_assignement_to_null_group_returns_success_with_updated_resource()
     {
         $this->assertNotEquals(null, $this->twofaccountA->group_id);
-        
+
         $response = $this->actingAs($this->user, 'api-guard')
             ->json('PUT', '/api/v1/twofaccounts/' . $this->twofaccountA->id, array_merge(
                 OtpTestData::ARRAY_OF_FULL_VALID_PARAMETERS_FOR_CUSTOM_TOTP,
-                ['group_id'  => null]
+                ['group_id' => null]
             ))
             ->assertOk()
             ->assertJsonFragment([
-                'group_id' => null
+                'group_id' => null,
             ])
             ->assertJsonFragment(self::JSON_FRAGMENTS_FOR_CUSTOM_TOTP);
     }
@@ -726,15 +726,15 @@ class TwoFAccountControllerTest extends FeatureTestCase
     public function test_update_with_assignement_to_zero_group_returns_success_with_updated_resource()
     {
         $this->assertNotEquals(null, $this->twofaccountA->group_id);
-        
+
         $response = $this->actingAs($this->user, 'api-guard')
             ->json('PUT', '/api/v1/twofaccounts/' . $this->twofaccountA->id, array_merge(
                 OtpTestData::ARRAY_OF_FULL_VALID_PARAMETERS_FOR_CUSTOM_TOTP,
-                ['group_id'  => 0]
+                ['group_id' => 0]
             ))
             ->assertOk()
             ->assertJsonFragment([
-                'group_id' => null
+                'group_id' => null,
             ])
             ->assertJsonFragment(self::JSON_FRAGMENTS_FOR_CUSTOM_TOTP);
     }
@@ -743,15 +743,15 @@ class TwoFAccountControllerTest extends FeatureTestCase
     public function test_update_with_assignement_to_new_groupid_returns_success_with_updated_resource()
     {
         $this->assertEquals($this->userGroupA->id, $this->twofaccountA->group_id);
-        
+
         $response = $this->actingAs($this->user, 'api-guard')
             ->json('PUT', '/api/v1/twofaccounts/' . $this->twofaccountA->id, array_merge(
                 OtpTestData::ARRAY_OF_FULL_VALID_PARAMETERS_FOR_CUSTOM_TOTP,
-                ['group_id'  => $this->userGroupB->id]
+                ['group_id' => $this->userGroupB->id]
             ))
             ->assertOk()
             ->assertJsonFragment([
-                'group_id' => $this->userGroupB->id
+                'group_id' => $this->userGroupB->id,
             ])
             ->assertJsonFragment(self::JSON_FRAGMENTS_FOR_CUSTOM_TOTP);
     }
@@ -762,7 +762,7 @@ class TwoFAccountControllerTest extends FeatureTestCase
         $response = $this->actingAs($this->user, 'api-guard')
             ->json('PUT', '/api/v1/twofaccounts/' . $this->twofaccountA->id, array_merge(
                 OtpTestData::ARRAY_OF_FULL_VALID_PARAMETERS_FOR_CUSTOM_TOTP,
-                ['group_id'  => 9999999]
+                ['group_id' => 9999999]
             ))
             ->assertJsonValidationErrorFor('group_id');
     }

+ 3 - 3
tests/Api/v1/Controllers/UserManagerControllerTest.php

@@ -335,10 +335,10 @@ class UserManagerControllerTest extends FeatureTestCase
     public function test_revokePATs_flushes_pats()
     {
         Artisan::call('passport:install', [
-            '--verbose' => 2,
-            '--no-interaction' => 1
+            '--verbose'        => 2,
+            '--no-interaction' => 1,
         ]);
-        
+
         $tokenRepository = app(TokenRepository::class);
 
         $this->actingAs($this->user, 'api-guard')

+ 8 - 18
tests/Api/v1/Requests/DataProviders/TwoFAccountDataProvider.php

@@ -1,13 +1,12 @@
-<?php declare(strict_types=1);
+<?php
+
+declare(strict_types=1);
 
 namespace Tests\Api\v1\Requests\DataProviders;
 
 final class TwoFAccountDataProvider
 {
-    /**
-     * 
-     */
-    public static function validIdsProvider(): array
+    public static function validIdsProvider() : array
     {
         return [
             [[
@@ -19,10 +18,7 @@ final class TwoFAccountDataProvider
         ];
     }
 
-    /**
-     * 
-     */
-    public static function invalidIdsProvider(): array
+    public static function invalidIdsProvider() : array
     {
         return [
             [[
@@ -64,10 +60,7 @@ final class TwoFAccountDataProvider
         ];
     }
 
-    /**
-     * 
-     */
-    public static function validIsAdminProvider(): array
+    public static function validIsAdminProvider() : array
     {
         return [
             [[
@@ -85,10 +78,7 @@ final class TwoFAccountDataProvider
         ];
     }
 
-    /**
-     * 
-     */
-    public static function invalidIsAdminProvider(): array
+    public static function invalidIsAdminProvider() : array
     {
         return [
             [[
@@ -108,4 +98,4 @@ final class TwoFAccountDataProvider
             ]],
         ];
     }
-}
+}

+ 3 - 3
tests/Api/v1/Requests/GroupAssignRequestTest.php

@@ -26,7 +26,7 @@ class GroupAssignRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new GroupAssignRequest();
+        $request = new GroupAssignRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -35,7 +35,7 @@ class GroupAssignRequestTest extends TestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new GroupAssignRequest();
+        $request   = new GroupAssignRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -59,7 +59,7 @@ class GroupAssignRequestTest extends TestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new GroupAssignRequest();
+        $request   = new GroupAssignRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 1 - 1
tests/Api/v1/Requests/GroupStoreRequestTest.php

@@ -43,7 +43,7 @@ class GroupStoreRequestTest extends FeatureTestCase
             ->once()
             ->andReturn(true);
 
-        $request = new GroupStoreRequest();
+        $request = new GroupStoreRequest;
 
         $this->assertTrue($request->authorize());
     }

+ 3 - 4
tests/Api/v1/Requests/IconFetchRequestTest.php

@@ -2,7 +2,6 @@
 
 namespace Tests\Api\v1\Requests;
 
-use App\Api\v1\Requests\GroupAssignRequest;
 use App\Api\v1\Requests\IconFetchRequest;
 use Illuminate\Foundation\Testing\WithoutMiddleware;
 use Illuminate\Support\Facades\Auth;
@@ -27,7 +26,7 @@ class IconFetchRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new IconFetchRequest();
+        $request = new IconFetchRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -36,7 +35,7 @@ class IconFetchRequestTest extends TestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new IconFetchRequest();
+        $request   = new IconFetchRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -64,7 +63,7 @@ class IconFetchRequestTest extends TestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new IconFetchRequest();
+        $request   = new IconFetchRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 3 - 3
tests/Api/v1/Requests/QrCodeDecodeRequestTest.php

@@ -27,7 +27,7 @@ class QrCodeDecodeRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new QrCodeDecodeRequest();
+        $request = new QrCodeDecodeRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -36,7 +36,7 @@ class QrCodeDecodeRequestTest extends TestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new QrCodeDecodeRequest();
+        $request   = new QrCodeDecodeRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -60,7 +60,7 @@ class QrCodeDecodeRequestTest extends TestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new QrCodeDecodeRequest();
+        $request   = new QrCodeDecodeRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 3 - 3
tests/Api/v1/Requests/SettingStoreRequestTest.php

@@ -29,7 +29,7 @@ class SettingStoreRequestTest extends FeatureTestCase
             ->once()
             ->andReturn(true);
 
-        $request = new SettingStoreRequest();
+        $request = new SettingStoreRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -38,7 +38,7 @@ class SettingStoreRequestTest extends FeatureTestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new SettingStoreRequest();
+        $request   = new SettingStoreRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -71,7 +71,7 @@ class SettingStoreRequestTest extends FeatureTestCase
     {
         Settings::set(self::UNIQUE_KEY, 'uniqueValue');
 
-        $request   = new SettingStoreRequest();
+        $request   = new SettingStoreRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 3 - 3
tests/Api/v1/Requests/SettingUpdateRequestTest.php

@@ -26,7 +26,7 @@ class SettingUpdateRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new SettingUpdateRequest();
+        $request = new SettingUpdateRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -35,7 +35,7 @@ class SettingUpdateRequestTest extends TestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new SettingUpdateRequest();
+        $request   = new SettingUpdateRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -63,7 +63,7 @@ class SettingUpdateRequestTest extends TestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new SettingUpdateRequest();
+        $request   = new SettingUpdateRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 3 - 3
tests/Api/v1/Requests/TwoFAccountBatchRequestTest.php

@@ -27,7 +27,7 @@ class TwoFAccountBatchRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new TwoFAccountBatchRequest();
+        $request = new TwoFAccountBatchRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -36,7 +36,7 @@ class TwoFAccountBatchRequestTest extends TestCase
     #[DataProviderExternal(TwoFAccountDataProvider::class, 'validIdsProvider')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new TwoFAccountBatchRequest();
+        $request   = new TwoFAccountBatchRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -46,7 +46,7 @@ class TwoFAccountBatchRequestTest extends TestCase
     #[DataProviderExternal(TwoFAccountDataProvider::class, 'invalidIdsProvider')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new TwoFAccountBatchRequest();
+        $request   = new TwoFAccountBatchRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 5 - 5
tests/Api/v1/Requests/TwoFAccountDynamicRequestTest.php

@@ -26,7 +26,7 @@ class TwoFAccountDynamicRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new TwoFAccountDynamicRequest();
+        $request = new TwoFAccountDynamicRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -34,8 +34,8 @@ class TwoFAccountDynamicRequestTest extends TestCase
     #[Test]
     public function test_returns_TwoFAccountUriRequest_rules_when_has_uri_input()
     {
-        $twofaccountUriRequest = new TwoFAccountUriRequest();
-        $request               = new TwoFAccountDynamicRequest();
+        $twofaccountUriRequest = new TwoFAccountUriRequest;
+        $request               = new TwoFAccountDynamicRequest;
         $request->merge(['uri' => 'uristring']);
 
         $this->assertEquals($twofaccountUriRequest->rules(), $request->rules());
@@ -44,8 +44,8 @@ class TwoFAccountDynamicRequestTest extends TestCase
     #[Test]
     public function test_returns_TwoFAccountStoreRequest_rules_otherwise()
     {
-        $twofaccountStoreRequest = new TwoFAccountStoreRequest();
-        $request                 = new TwoFAccountDynamicRequest();
+        $twofaccountStoreRequest = new TwoFAccountStoreRequest;
+        $request                 = new TwoFAccountDynamicRequest;
 
         $this->assertEquals($twofaccountStoreRequest->rules(), $request->rules());
     }

+ 3 - 3
tests/Api/v1/Requests/TwoFAccountImportRequestTest.php

@@ -26,7 +26,7 @@ class TwoFAccountImportRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new TwoFAccountImportRequest();
+        $request = new TwoFAccountImportRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -35,7 +35,7 @@ class TwoFAccountImportRequestTest extends TestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new TwoFAccountImportRequest();
+        $request   = new TwoFAccountImportRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -57,7 +57,7 @@ class TwoFAccountImportRequestTest extends TestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new TwoFAccountImportRequest();
+        $request   = new TwoFAccountImportRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 4 - 4
tests/Api/v1/Requests/TwoFAccountIndexRequestTest.php

@@ -27,16 +27,16 @@ class TwoFAccountIndexRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new TwoFAccountIndexRequest();
+        $request = new TwoFAccountIndexRequest;
 
         $this->assertTrue($request->authorize());
     }
-    
+
     #[Test]
     #[DataProviderExternal(TwoFAccountDataProvider::class, 'validIdsProvider')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new TwoFAccountIndexRequest();
+        $request   = new TwoFAccountIndexRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -46,7 +46,7 @@ class TwoFAccountIndexRequestTest extends TestCase
     #[DataProviderExternal(TwoFAccountDataProvider::class, 'invalidIdsProvider')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new TwoFAccountIndexRequest();
+        $request   = new TwoFAccountIndexRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 3 - 3
tests/Api/v1/Requests/TwoFAccountReorderRequestTest.php

@@ -26,7 +26,7 @@ class TwoFAccountReorderRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new TwoFAccountReorderRequest();
+        $request = new TwoFAccountReorderRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -35,7 +35,7 @@ class TwoFAccountReorderRequestTest extends TestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new TwoFAccountReorderRequest();
+        $request   = new TwoFAccountReorderRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -60,7 +60,7 @@ class TwoFAccountReorderRequestTest extends TestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new TwoFAccountReorderRequest();
+        $request   = new TwoFAccountReorderRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 3 - 3
tests/Api/v1/Requests/TwoFAccountStoreRequestTest.php

@@ -28,7 +28,7 @@ class TwoFAccountStoreRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new TwoFAccountStoreRequest();
+        $request = new TwoFAccountStoreRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -37,7 +37,7 @@ class TwoFAccountStoreRequestTest extends TestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new TwoFAccountStoreRequest();
+        $request   = new TwoFAccountStoreRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -111,7 +111,7 @@ class TwoFAccountStoreRequestTest extends TestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new TwoFAccountStoreRequest();
+        $request   = new TwoFAccountStoreRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 3 - 3
tests/Api/v1/Requests/TwoFAccountUpdateRequestTest.php

@@ -28,7 +28,7 @@ class TwoFAccountUpdateRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new TwoFAccountUpdateRequest();
+        $request = new TwoFAccountUpdateRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -37,7 +37,7 @@ class TwoFAccountUpdateRequestTest extends TestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new TwoFAccountUpdateRequest();
+        $request   = new TwoFAccountUpdateRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -87,7 +87,7 @@ class TwoFAccountUpdateRequestTest extends TestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new TwoFAccountUpdateRequest();
+        $request   = new TwoFAccountUpdateRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 3 - 3
tests/Api/v1/Requests/TwoFAccountUriRequestTest.php

@@ -26,7 +26,7 @@ class TwoFAccountUriRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new TwoFAccountUriRequest();
+        $request = new TwoFAccountUriRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -35,7 +35,7 @@ class TwoFAccountUriRequestTest extends TestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new TwoFAccountUriRequest();
+        $request   = new TwoFAccountUriRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -64,7 +64,7 @@ class TwoFAccountUriRequestTest extends TestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new TwoFAccountUriRequest();
+        $request   = new TwoFAccountUriRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 3 - 3
tests/Api/v1/Requests/UserManagerPromoteRequestTest.php

@@ -26,7 +26,7 @@ class UserManagerPromoteRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new UserManagerPromoteRequest();
+        $request = new UserManagerPromoteRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -35,7 +35,7 @@ class UserManagerPromoteRequestTest extends TestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new UserManagerPromoteRequest();
+        $request   = new UserManagerPromoteRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -66,7 +66,7 @@ class UserManagerPromoteRequestTest extends TestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new UserManagerPromoteRequest();
+        $request   = new UserManagerPromoteRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 4 - 5
tests/Api/v1/Requests/UserManagerStoreRequestTest.php

@@ -9,7 +9,6 @@ use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\Validator;
 use PHPUnit\Framework\Attributes\CoversClass;
 use PHPUnit\Framework\Attributes\DataProvider;
-use PHPUnit\Framework\Attributes\DataProviderExternal;
 use PHPUnit\Framework\Attributes\Test;
 use Tests\FeatureTestCase;
 
@@ -28,7 +27,7 @@ class UserManagerStoreRequestTest extends FeatureTestCase
             ->once()
             ->andReturn(true);
 
-        $request = new UserManagerStoreRequest();
+        $request = new UserManagerStoreRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -41,8 +40,8 @@ class UserManagerStoreRequestTest extends FeatureTestCase
             'name'  => 'Jane',
             'email' => 'jane@example.com',
         ]);
-        
-        $request   = new UserManagerStoreRequest();
+
+        $request   = new UserManagerStoreRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -80,7 +79,7 @@ class UserManagerStoreRequestTest extends FeatureTestCase
             'email' => 'john@example.com',
         ]);
 
-        $request   = new UserManagerStoreRequest();
+        $request   = new UserManagerStoreRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 9 - 9
tests/Feature/Console/FixServiceFieldEncryptionTest.php

@@ -21,7 +21,7 @@ class FixServiceFieldEncryptionTest extends FeatureTestCase
      * The name of the migration that changed the data this command will try to fix
      */
     protected string $relatedMigration = '2024_08_08_133136_encrypt_twofaccount_service_field';
-    
+
     /**
      * @var \App\Models\User|\Illuminate\Contracts\Auth\Authenticatable
      */
@@ -123,10 +123,10 @@ class FixServiceFieldEncryptionTest extends FeatureTestCase
         Settings::set('useEncryption', true);
 
         $expectedServiceName = 'myService';
-        $twofaccounts = TwoFAccount::factory()->for($this->user)->count(3)->create([
-            'service' => $expectedServiceName
+        $twofaccounts        = TwoFAccount::factory()->for($this->user)->count(3)->create([
+            'service' => $expectedServiceName,
         ]);
-                
+
         $testedAccount = $twofaccounts[2];
         DB::table('twofaccounts')->where('id', $testedAccount->id)->update(['service' => $expectedServiceName]);
 
@@ -141,7 +141,7 @@ class FixServiceFieldEncryptionTest extends FeatureTestCase
             ->assertSuccessful();
 
         $testedAccount->refresh();
-        
+
         $this->assertEquals($expectedServiceName, $twofaccounts[0]->service);
         $this->assertEquals($expectedServiceName, $twofaccounts[1]->service);
         $this->assertEquals($expectedServiceName, $testedAccount->service);
@@ -153,10 +153,10 @@ class FixServiceFieldEncryptionTest extends FeatureTestCase
         Settings::set('useEncryption', true);
 
         $expectedServiceName = 'myService';
-        $twofaccounts = TwoFAccount::factory()->for($this->user)->count(3)->create([
-            'service' => $expectedServiceName
+        $twofaccounts        = TwoFAccount::factory()->for($this->user)->count(3)->create([
+            'service' => $expectedServiceName,
         ]);
-                
+
         $testedAccount = $twofaccounts[2];
 
         DB::table('twofaccounts')->where('id', $testedAccount->id)->update(['legacy_uri' => 'indecipherable_payload']);
@@ -173,7 +173,7 @@ class FixServiceFieldEncryptionTest extends FeatureTestCase
             ->expectsOutput('1 record could not be fixed, see log above for details.');
 
         $testedAccount->refresh();
-        
+
         $this->assertEquals($expectedServiceName, $twofaccounts[0]->service);
         $this->assertEquals($expectedServiceName, $twofaccounts[1]->service);
         $this->assertEquals(__('errors.indecipherable'), $testedAccount->service);

+ 2 - 3
tests/Feature/Console/InstallTest.php

@@ -3,7 +3,6 @@
 namespace Tests\Feature\Console;
 
 use App\Console\Commands\Install;
-use Illuminate\Support\Facades\Artisan;
 use Jackiedo\DotenvEditor\DotenvEditor;
 use PHPUnit\Framework\Attributes\CoversClass;
 use PHPUnit\Framework\Attributes\Test;
@@ -20,7 +19,7 @@ class InstallTest extends FeatureTestCase
     const PASSPORT_CREATE_CLIENTS_CONFIRMATION = 'Would you like to create the "personal access" and "password grant" clients?';
 
     const TWOFAUTH_REVIEW_ENV_VAR_CONFIRMATION = 'Existing .env file found. Do you wish to review its vars?';
-    
+
     #[Test]
     public function test_install_completes()
     {
@@ -101,7 +100,7 @@ class InstallTest extends FeatureTestCase
     {
         $mock = $this->mock(DotenvEditor::class);
         $mock->shouldReceive('load')
-            ->andThrow(new \Exception());
+            ->andThrow(new \Exception);
 
         $this->artisan('2fauth:install')
             ->expectsOutputToContain(config('2fauth.installDocUrl'))

+ 3 - 3
tests/Feature/Console/ResetDemoTest.php

@@ -21,10 +21,10 @@ class ResetDemoTest extends FeatureTestCase
     public function test_reset_demo_succeeded()
     {
         Artisan::call('passport:install', [
-            '--verbose' => 2,
-            '--no-interaction' => 1
+            '--verbose'        => 2,
+            '--no-interaction' => 1,
         ]);
-        
+
         Config::set('2fauth.config.isDemoApp', true);
 
         $this->artisan('2fauth:reset-demo')

+ 13 - 13
tests/Feature/Http/Auth/LoginTest.php

@@ -64,7 +64,7 @@ class LoginTest extends FeatureTestCase
     private const PASSWORD = 'password';
 
     private const WRONG_PASSWORD = 'wrong_password';
-    
+
     private const USER_NAME = 'John';
 
     private const USER_EMAIL = 'john@example.com';
@@ -383,11 +383,11 @@ class LoginTest extends FeatureTestCase
             'email'    => $this->user->email,
             'password' => self::PASSWORD,
         ])->assertOk();
-        
+
         $this->actingAs($this->user, self::WEB_GUARD)
             ->json('GET', '/user/logout')
             ->assertOk();
-            
+
         $authlog = $this->user->latestAuthentication()->first();
 
         $this->assertEquals($this->user->id, $authlog->authenticatable_id);
@@ -426,7 +426,7 @@ class LoginTest extends FeatureTestCase
         $this->app['auth']->shouldUse(self::REVERSE_PROXY_GUARD);
 
         $this->json('GET', '/api/v1/groups', [], [
-            'HTTP_REMOTE_USER'  => self::USER_NAME,
+            'HTTP_REMOTE_USER' => self::USER_NAME,
         ]);
 
         $this->assertDatabaseHas('auth_logs', [
@@ -451,11 +451,11 @@ class LoginTest extends FeatureTestCase
         $this->app['auth']->shouldUse(self::REVERSE_PROXY_GUARD);
 
         $this->json('GET', '/api/v1/groups', [], [
-            'HTTP_REMOTE_USER'  => self::USER_NAME,
+            'HTTP_REMOTE_USER' => self::USER_NAME,
         ]);
 
         $this->json('GET', '/api/v1/groups', [], [
-            'HTTP_REMOTE_USER'  => self::USER_NAME,
+            'HTTP_REMOTE_USER' => self::USER_NAME,
         ]);
 
         $this->assertDatabaseCount('auth_logs', 1);
@@ -463,7 +463,7 @@ class LoginTest extends FeatureTestCase
         $this->travel(16)->minutes();
 
         $this->json('GET', '/api/v1/groups', [], [
-            'HTTP_REMOTE_USER'  => self::USER_NAME,
+            'HTTP_REMOTE_USER' => self::USER_NAME,
         ]);
 
         $this->assertDatabaseCount('auth_logs', 2);
@@ -473,7 +473,7 @@ class LoginTest extends FeatureTestCase
     public function test_reverse_proxy_access_sends_new_device_notification()
     {
         Notification::fake();
-        
+
         Config::set('auth.auth_proxy_headers.user', 'HTTP_REMOTE_USER');
 
         $user = User::factory()->create([
@@ -490,7 +490,7 @@ class LoginTest extends FeatureTestCase
         $this->travelTo(Carbon::now()->subMinutes(2));
 
         $this->json('GET', '/api/v1/groups', [], [
-            'HTTP_REMOTE_USER'  => self::USER_NAME,
+            'HTTP_REMOTE_USER' => self::USER_NAME,
         ]);
 
         Notification::assertSentTo($user, SignedInWithNewDeviceNotification::class);
@@ -500,7 +500,7 @@ class LoginTest extends FeatureTestCase
     public function test_reverse_proxy_access_does_not_send_new_device_notification_if_user_disabled_it()
     {
         Notification::fake();
-        
+
         Config::set('auth.auth_proxy_headers.user', 'HTTP_REMOTE_USER');
 
         $user = User::factory()->create([
@@ -517,7 +517,7 @@ class LoginTest extends FeatureTestCase
         $this->travelTo(Carbon::now()->subMinutes(2));
 
         $this->json('GET', '/api/v1/groups', [], [
-            'HTTP_REMOTE_USER'  => self::USER_NAME,
+            'HTTP_REMOTE_USER' => self::USER_NAME,
         ]);
 
         Notification::assertNothingSentTo($user);
@@ -527,7 +527,7 @@ class LoginTest extends FeatureTestCase
     public function test_reverse_proxy_does_not_send_new_device_notification_if_user_is_considered_new()
     {
         Notification::fake();
-        
+
         Config::set('auth.auth_proxy_headers.user', 'HTTP_REMOTE_USER');
 
         $user = User::factory()->create([
@@ -541,7 +541,7 @@ class LoginTest extends FeatureTestCase
         $this->app['auth']->shouldUse(self::REVERSE_PROXY_GUARD);
 
         $this->json('GET', '/api/v1/groups', [], [
-            'HTTP_REMOTE_USER'  => self::USER_NAME,
+            'HTTP_REMOTE_USER' => self::USER_NAME,
         ]);
 
         Notification::assertNothingSentTo($user);

+ 8 - 8
tests/Feature/Http/Auth/PasswordControllerTest.php

@@ -23,7 +23,7 @@ class PasswordControllerTest extends FeatureTestCase
     private const PASSWORD = 'password';
 
     private const NEW_PASSWORD = 'newPassword';
-    
+
     private const USER_NAME = 'John';
 
     private const USER_EMAIL = 'john@example.com';
@@ -90,14 +90,14 @@ class PasswordControllerTest extends FeatureTestCase
         ]);
 
         $this->app['auth']->shouldUse(self::REVERSE_PROXY_GUARD);
-        
+
         $response = $this->json('PATCH', '/user/password', [
-                'currentPassword'       => self::NEW_PASSWORD,
-                'password'              => self::NEW_PASSWORD,
-                'password_confirmation' => self::NEW_PASSWORD,
-            ], [
-                'HTTP_REMOTE_USER'  => self::USER_NAME,
-            ])
+            'currentPassword'       => self::NEW_PASSWORD,
+            'password'              => self::NEW_PASSWORD,
+            'password_confirmation' => self::NEW_PASSWORD,
+        ], [
+            'HTTP_REMOTE_USER' => self::USER_NAME,
+        ])
             ->assertStatus(405)
             ->assertJsonStructure([
                 'message',

+ 4 - 4
tests/Feature/Http/Auth/SocialiteControllerTest.php

@@ -116,13 +116,13 @@ class SocialiteControllerTest extends FeatureTestCase
     {
         return [
             'TOKEN_URL' => [
-                'token_url'
+                'token_url',
             ],
             'AUTHORIZE_URL' => [
-                'authorize_url'
+                'authorize_url',
             ],
             'USERINFO_URL' => [
-                'userinfo_url'
+                'userinfo_url',
             ],
         ];
     }
@@ -286,7 +286,7 @@ class SocialiteControllerTest extends FeatureTestCase
         $newSocialiteUser->email = 'jane@provider.com';
 
         Socialite::shouldReceive('driver->user')
-            ->andThrow(new Exception());
+            ->andThrow(new Exception);
 
         $response = $this->get('/socialite/callback/github', ['driver' => 'github']);
 

+ 1 - 1
tests/Feature/Http/Auth/WebAuthnDeviceLostControllerTest.php

@@ -107,7 +107,7 @@ class WebAuthnDeviceLostControllerTest extends FeatureTestCase
     {
         $mock = $this->mock(\App\Extensions\WebauthnCredentialBroker::class)->makePartial();
         $mock->shouldReceive('getUser')
-            ->andReturn(new \Illuminate\Foundation\Auth\User());
+            ->andReturn(new \Illuminate\Foundation\Auth\User);
 
         Notification::fake();
 

+ 6 - 6
tests/Feature/Http/Auth/WebAuthnLoginControllerTest.php

@@ -132,7 +132,7 @@ class WebAuthnLoginControllerTest extends FeatureTestCase
     public function test_webauthn_login_of_admin_returns_success_even_with_sso_only_enabled()
     {
         Settings::set('useSsoOnly', true);
-        
+
         $this->user->promoteToAdministrator(true);
         $this->user->save();
 
@@ -151,7 +151,7 @@ class WebAuthnLoginControllerTest extends FeatureTestCase
             ->assertJsonStructure([
                 'preferences',
             ]);
-        
+
         $this->user->promoteToAdministrator(false);
         $this->user->save();
     }
@@ -160,7 +160,7 @@ class WebAuthnLoginControllerTest extends FeatureTestCase
     public function test_webauthn_login_sends_new_device_notification_to_existing_user()
     {
         Notification::fake();
-        
+
         $this->user['preferences->notifyOnNewAuthDevice'] = 1;
         $this->user->save();
 
@@ -186,7 +186,7 @@ class WebAuthnLoginControllerTest extends FeatureTestCase
     public function test_webauthn_login_does_not_send_new_device_notification_to_new_user()
     {
         Notification::fake();
-        
+
         $this->user['preferences->notifyOnNewAuthDevice'] = 1;
         $this->user->save();
 
@@ -203,8 +203,8 @@ class WebAuthnLoginControllerTest extends FeatureTestCase
     public function test_webauthn_login_does_not_send_new_device_notification_if_user_disabled_it()
     {
         Notification::fake();
-        
-        $this->user['preferences->notifyOnNewAuthDevice'] =01;
+
+        $this->user['preferences->notifyOnNewAuthDevice'] = 0;
         $this->user->save();
 
         $this->createWebauthnCredential(self::CREDENTIAL_ID_ALT, $this->user->id, self::USER_ID_ALT);

+ 2 - 2
tests/Feature/Http/Auth/WebAuthnRegisterControllerTest.php

@@ -39,7 +39,7 @@ class WebAuthnRegisterControllerTest extends FeatureTestCase
         $request = $this->mock(AttestationRequest::class);
 
         $request->expects('fastRegistration')->andReturnSelf();
-        $request->expects('toCreate')->andReturn(new JsonTransport());
+        $request->expects('toCreate')->andReturn(new JsonTransport);
 
         $this->actingAs($this->user, 'web-guard')
             ->json('POST', '/webauthn/register/options')
@@ -54,7 +54,7 @@ class WebAuthnRegisterControllerTest extends FeatureTestCase
         $request = $this->mock(AttestationRequest::class);
 
         $request->expects('secureRegistration')->andReturnSelf();
-        $request->expects('toCreate')->andReturn(new JsonTransport());
+        $request->expects('toCreate')->andReturn(new JsonTransport);
 
         $this->actingAs($this->user, 'web-guard')
             ->json('POST', '/webauthn/register/options')

+ 2 - 4
tests/Feature/Http/Middlewares/AdminOnlyMiddlewareTest.php

@@ -28,8 +28,7 @@ class AdminOnlyMiddlewareTest extends FeatureTestCase
         $request    = Request::create('/admin', 'GET');
         $middleware = new AdminOnly;
 
-        $response = $middleware->handle($request, function () {
-        });
+        $response = $middleware->handle($request, function () {});
     }
 
     #[Test]
@@ -45,8 +44,7 @@ class AdminOnlyMiddlewareTest extends FeatureTestCase
         $request    = Request::create('/admin', 'GET');
         $middleware = new AdminOnly;
 
-        $response = $middleware->handle($request, function () {
-        });
+        $response = $middleware->handle($request, function () {});
 
         $this->assertNull($response);
     }

+ 2 - 2
tests/Feature/Http/Middlewares/AuthenticateMiddlewareTest.php

@@ -59,7 +59,7 @@ class AuthenticateMiddlewareTest extends FeatureTestCase
     {
         Config::set('auth.auth_proxy_headers.user', 'HTTP_REMOTE_USER');
         Config::set('auth.auth_proxy_headers.email', 'HTTP_REMOTE_EMAIL');
-        
+
         $this->app['auth']->shouldUse('reverse-proxy-guard');
 
         $lang = 'fr';
@@ -71,7 +71,7 @@ class AuthenticateMiddlewareTest extends FeatureTestCase
         $user->save();
 
         $this->json('GET', '/api/v1/groups', [], [
-            'HTTP_REMOTE_USER'  => self::USER_NAME,
+            'HTTP_REMOTE_USER' => self::USER_NAME,
         ]);
 
         $this->assertEquals($lang, App::getLocale());

+ 1 - 1
tests/Feature/Http/Middlewares/RejectIfSsoOnlyAndNotForAdminMiddlewareTest.php

@@ -36,7 +36,7 @@ class RejectIfSsoOnlyAndNotForAdminMiddlewareTest extends FeatureTestCase
 
         $this->user  = User::factory()->create();
         $this->admin = User::factory()->administrator()->create([
-            'password' => self::PASSWORD
+            'password' => self::PASSWORD,
         ]);
 
         Settings::set('useSsoOnly', true);

+ 7 - 7
tests/Feature/Http/Middlewares/SetLanguageMiddlewareTest.php

@@ -67,7 +67,7 @@ class SetLanguageMiddlewareTest extends TestCase
 
         $this->assertEquals(self::IS_FR, App::getLocale());
     }
-    
+
     #[Test]
     public function test_it_applies_fallback_locale_if_header_ask_for_wildcard()
     {
@@ -121,9 +121,9 @@ class SetLanguageMiddlewareTest extends TestCase
     #[Test]
     public function test_user_preference_overrides_header()
     {
-        $this->user = new User;
+        $this->user                      = new User;
         $this->user['preferences->lang'] = self::IS_FR;
-        
+
         $this->actingAs($this->user)->json('GET', '/', [], ['Accept-Language' => self::IS_DE]);
 
         $this->assertEquals(self::IS_FR, App::getLocale());
@@ -132,9 +132,9 @@ class SetLanguageMiddlewareTest extends TestCase
     #[Test]
     public function test_user_preference_applies_header()
     {
-        $this->user = new User;
+        $this->user                      = new User;
         $this->user['preferences->lang'] = 'browser';
-        
+
         $this->actingAs($this->user)->json('GET', '/', [], ['Accept-Language' => self::IS_DE]);
 
         $this->assertEquals(self::IS_DE, App::getLocale());
@@ -145,9 +145,9 @@ class SetLanguageMiddlewareTest extends TestCase
     {
         Config::set('app.fallback_locale', self::IS_DE);
 
-        $this->user = new User;
+        $this->user                      = new User;
         $this->user['preferences->lang'] = self::IS_FR;
-        
+
         $this->actingAs($this->user)->json('GET', '/', [], ['Accept-Language' => null]);
 
         $this->assertEquals(self::IS_FR, App::getLocale());

+ 3 - 3
tests/Feature/Http/Requests/LoginRequestTest.php

@@ -22,7 +22,7 @@ class LoginRequestTest extends FeatureTestCase
     #[Test]
     public function test_user_is_authorized()
     {
-        $request = new LoginRequest();
+        $request = new LoginRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -35,7 +35,7 @@ class LoginRequestTest extends FeatureTestCase
             'email' => 'JOHN.DOE@example.com',
         ]);
 
-        $request   = new LoginRequest();
+        $request   = new LoginRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -66,7 +66,7 @@ class LoginRequestTest extends FeatureTestCase
             'email' => 'JOHN.DOE@example.com',
         ]);
 
-        $request   = new LoginRequest();
+        $request   = new LoginRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 3 - 3
tests/Feature/Http/Requests/UserDeleteRequestTest.php

@@ -26,7 +26,7 @@ class UserDeleteRequestTest extends FeatureTestCase
             ->once()
             ->andReturn(true);
 
-        $request = new UserDeleteRequest();
+        $request = new UserDeleteRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -35,7 +35,7 @@ class UserDeleteRequestTest extends FeatureTestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new UserDeleteRequest();
+        $request   = new UserDeleteRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -57,7 +57,7 @@ class UserDeleteRequestTest extends FeatureTestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new UserDeleteRequest();
+        $request   = new UserDeleteRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 3 - 3
tests/Feature/Http/Requests/UserPatchPwdRequestTest.php

@@ -26,7 +26,7 @@ class UserPatchPwdRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new UserPatchPwdRequest();
+        $request = new UserPatchPwdRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -35,7 +35,7 @@ class UserPatchPwdRequestTest extends TestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new UserPatchPwdRequest();
+        $request   = new UserPatchPwdRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -59,7 +59,7 @@ class UserPatchPwdRequestTest extends TestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new UserPatchPwdRequest();
+        $request   = new UserPatchPwdRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 3 - 3
tests/Feature/Http/Requests/UserStoreRequestTest.php

@@ -22,7 +22,7 @@ class UserStoreRequestTest extends FeatureTestCase
     #[Test]
     public function test_user_is_authorized()
     {
-        $request = new UserStoreRequest();
+        $request = new UserStoreRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -36,7 +36,7 @@ class UserStoreRequestTest extends FeatureTestCase
             'email' => 'jane@example.com',
         ]);
 
-        $request   = new UserStoreRequest();
+        $request   = new UserStoreRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -72,7 +72,7 @@ class UserStoreRequestTest extends FeatureTestCase
             'email' => 'john@example.com',
         ]);
 
-        $request   = new UserStoreRequest();
+        $request   = new UserStoreRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 1 - 1
tests/Feature/Http/Requests/UserUpdateRequestTest.php

@@ -28,7 +28,7 @@ class UserUpdateRequestTest extends FeatureTestCase
             ->once()
             ->andReturn(true);
 
-        $request = new UserUpdateRequest();
+        $request = new UserUpdateRequest;
 
         $this->assertTrue($request->authorize());
     }

+ 2 - 2
tests/Feature/Http/Requests/WebauthnAssertedRequestTest.php

@@ -22,7 +22,7 @@ class WebauthnAssertedRequestTest extends TestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new WebauthnAssertedRequest();
+        $request   = new WebauthnAssertedRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -53,7 +53,7 @@ class WebauthnAssertedRequestTest extends TestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new WebauthnAssertedRequest();
+        $request   = new WebauthnAssertedRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 3 - 3
tests/Feature/Http/Requests/WebauthnRenameRequestTest.php

@@ -26,7 +26,7 @@ class WebauthnRenameRequestTest extends TestCase
             ->once()
             ->andReturn(true);
 
-        $request = new WebauthnRenameRequest();
+        $request = new WebauthnRenameRequest;
 
         $this->assertTrue($request->authorize());
     }
@@ -35,7 +35,7 @@ class WebauthnRenameRequestTest extends TestCase
     #[DataProvider('provideValidData')]
     public function test_valid_data(array $data) : void
     {
-        $request   = new WebauthnRenameRequest();
+        $request   = new WebauthnRenameRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertFalse($validator->fails());
@@ -57,7 +57,7 @@ class WebauthnRenameRequestTest extends TestCase
     #[DataProvider('provideInvalidData')]
     public function test_invalid_data(array $data) : void
     {
-        $request   = new WebauthnRenameRequest();
+        $request   = new WebauthnRenameRequest;
         $validator = Validator::make($data, $request->rules());
 
         $this->assertTrue($validator->fails());

+ 1 - 1
tests/Feature/Http/SystemControllerTest.php

@@ -143,7 +143,7 @@ class SystemControllerTest extends FeatureTestCase
     {
         Notification::fake();
 
-        $this->mock(Dispatcher::class)->shouldReceive('send')->andThrow(new Exception());
+        $this->mock(Dispatcher::class)->shouldReceive('send')->andThrow(new Exception);
 
         $response = $this->actingAs($this->admin, 'web-guard')
             ->json('POST', '/system/test-email', []);

+ 1 - 1
tests/Feature/Models/AuthLogModelTest.php

@@ -17,7 +17,7 @@ class AuthLogModelTest extends FeatureTestCase
     #[Test]
     public function test_equals_returns_true()
     {
-        $user = User::factory()->create();
+        $user        = User::factory()->create();
         $lastAuthLog = AuthLog::factory()->for($user, 'authenticatable')->create();
 
         $this->assertTrue($lastAuthLog->equals($lastAuthLog));

+ 15 - 17
tests/Feature/Models/UserModelTest.php

@@ -108,10 +108,10 @@ class UserModelTest extends FeatureTestCase
     public function test_delete_removes_user_data()
     {
         Artisan::call('passport:install', [
-            '--verbose' => 2,
-            '--no-interaction' => 1
+            '--verbose'        => 2,
+            '--no-interaction' => 1,
         ]);
-        
+
         $user = User::factory()->create();
         TwoFAccount::factory()->for($user)->create();
         AuthLog::factory()->for($user, 'authenticatable')->create();
@@ -234,10 +234,10 @@ class UserModelTest extends FeatureTestCase
     #[Test]
     public function test_authentications_returns_user_auth_logs_only()
     {
-        $user = User::factory()->create();
+        $user        = User::factory()->create();
         $anotherUser = User::factory()->create();
 
-        $userAuthLog  = AuthLog::factory()->daysAgo(10)->for($user, 'authenticatable')->create();
+        $userAuthLog = AuthLog::factory()->daysAgo(10)->for($user, 'authenticatable')->create();
         AuthLog::factory()->daysAgo(5)->for($anotherUser, 'authenticatable')->create();
 
         $authentications = $user->authentications()->get();
@@ -268,7 +268,7 @@ class UserModelTest extends FeatureTestCase
         $sixMonthsAgoAuthLog    = AuthLog::factory()->duringLastSixMonth()->for($user, 'authenticatable')->create();
         $threeMonthsAgoAuthLog  = AuthLog::factory()->duringLastThreeMonth()->for($user, 'authenticatable')->create();
         $duringLastMonthAuthLog = AuthLog::factory()->duringLastMonth()->for($user, 'authenticatable')->create();
-        
+
         $authentications = $user->authenticationsByPeriod(3);
 
         $this->assertCount(2, $authentications);
@@ -293,7 +293,7 @@ class UserModelTest extends FeatureTestCase
     #[Test]
     public function test_latestAuthentication_returns_user_latest_auth_logs_only()
     {
-        $user = User::factory()->create();
+        $user        = User::factory()->create();
         $anotherUser = User::factory()->create();
 
         $userAuthLog        = AuthLog::factory()->duringLastThreeMonth()->for($user, 'authenticatable')->create();
@@ -309,7 +309,7 @@ class UserModelTest extends FeatureTestCase
     public function test_lastLoginAt_returns_user_last_auth_date()
     {
         $user = User::factory()->create();
-        $now = now();
+        $now  = now();
 
         $tenDaysAgoAuthLog  = AuthLog::factory()->daysAgo(10)->for($user, 'authenticatable')->create();
         $fiveDaysAgoAuthLog = AuthLog::factory()->daysAgo(5)->for($user, 'authenticatable')->create();
@@ -335,7 +335,7 @@ class UserModelTest extends FeatureTestCase
     public function test_lastSuccessfulLoginAt_returns_user_last_successful_login_date()
     {
         $user = User::factory()->create();
-        $now = now();
+        $now  = now();
         AuthLog::factory()->at($now)->for($user, 'authenticatable')->create();
 
         $lastSuccessfulLoginAt = $user->lastSuccessfulLoginAt();
@@ -347,7 +347,7 @@ class UserModelTest extends FeatureTestCase
     public function test_lastSuccessfulLoginAt_returns_null_if_user_has_no_successful_login()
     {
         $user = User::factory()->create();
-        $now = now();
+        $now  = now();
         AuthLog::factory()->at($now)->failedLogin()->for($user, 'authenticatable')->create();
 
         $lastSuccessfulLoginAt = $user->lastSuccessfulLoginAt();
@@ -401,12 +401,12 @@ class UserModelTest extends FeatureTestCase
     #[Test]
     public function test_previousLoginAt_returns_user_last_auth_date()
     {
-        $user = User::factory()->create();
-        $now = now();
+        $user      = User::factory()->create();
+        $now       = now();
         $yesterday = now()->subDay();
 
-        $yesterdayAuthLog   = AuthLog::factory()->at($yesterday)->for($user, 'authenticatable')->create();
-        $lastAuthLog        = AuthLog::factory()->at($now)->for($user, 'authenticatable')->create();
+        $yesterdayAuthLog = AuthLog::factory()->at($yesterday)->for($user, 'authenticatable')->create();
+        $lastAuthLog      = AuthLog::factory()->at($now)->for($user, 'authenticatable')->create();
 
         $previousLoginAt = $user->previousLoginAt();
 
@@ -426,7 +426,7 @@ class UserModelTest extends FeatureTestCase
     #[Test]
     public function test_previousLoginIp_returns_user_last_auth_ip()
     {
-        $user = User::factory()->create();
+        $user      = User::factory()->create();
         $yesterday = now()->subDay();
 
         AuthLog::factory()->for($user, 'authenticatable')->create();
@@ -446,6 +446,4 @@ class UserModelTest extends FeatureTestCase
 
         $this->assertNull($previousLoginIp);
     }
-
-    
 }

+ 3 - 5
tests/Feature/Notifications/FailedLoginNotificationTest.php

@@ -31,7 +31,6 @@ class FailedLoginNotificationTest extends FeatureTestCase
      */
     protected $failedLogin;
 
-
     public function setUp() : void
     {
         parent::setUp();
@@ -39,15 +38,15 @@ class FailedLoginNotificationTest extends FeatureTestCase
         $this->user = User::factory()->create();
 
         AuthLog::factory()->for($this->user, 'authenticatable')->failedLogin()->create();
-        
-        $this->authLog = AuthLog::first();
+
+        $this->authLog     = AuthLog::first();
         $this->failedLogin = new FailedLoginNotification($this->authLog);
     }
 
     #[Test]
     public function test_it_renders_to_email()
     {
-        
+
         $mail = $this->failedLogin->toMail($this->user);
 
         $this->assertInstanceOf(MailMessage::class, $mail);
@@ -78,5 +77,4 @@ class FailedLoginNotificationTest extends FeatureTestCase
             $mail
         );
     }
-
 }

+ 3 - 5
tests/Feature/Notifications/SignedInWithNewDeviceNotificationTest.php

@@ -31,7 +31,6 @@ class SignedInWithNewDeviceNotificationTest extends FeatureTestCase
      */
     protected $signedInWithNewDevice;
 
-
     public function setUp() : void
     {
         parent::setUp();
@@ -39,14 +38,14 @@ class SignedInWithNewDeviceNotificationTest extends FeatureTestCase
         $this->user = User::factory()->create();
 
         AuthLog::factory()->for($this->user, 'authenticatable')->failedLogin()->create();
-        
-        $this->authLog = AuthLog::first();
+
+        $this->authLog               = AuthLog::first();
         $this->signedInWithNewDevice = new SignedInWithNewDeviceNotification($this->authLog);
     }
 
     #[Test]
     public function test_it_renders_to_email()
-    {        
+    {
         $mail = $this->signedInWithNewDevice->toMail($this->user);
 
         $this->assertInstanceOf(MailMessage::class, $mail);
@@ -77,5 +76,4 @@ class SignedInWithNewDeviceNotificationTest extends FeatureTestCase
             $mail
         );
     }
-
 }

+ 1 - 2
tests/Feature/Notifications/TestEmailSettingNotificationTest.php

@@ -25,12 +25,11 @@ class TestEmailSettingNotificationTest extends FeatureTestCase
      */
     protected $testEmailSettingNotification;
 
-
     public function setUp() : void
     {
         parent::setUp();
 
-        $this->user = User::factory()->create();
+        $this->user                         = User::factory()->create();
         $this->testEmailSettingNotification = new TestEmailSettingNotification('test_token');
     }
 

+ 2 - 3
tests/Feature/Notifications/WebauthnRecoveryNotificationTest.php

@@ -30,13 +30,13 @@ class WebauthnRecoveryNotificationTest extends FeatureTestCase
     {
         parent::setUp();
 
-        $this->user = User::factory()->create();
+        $this->user                         = User::factory()->create();
         $this->webauthnRecoveryNotification = new WebauthnRecoveryNotification('test_token');
     }
 
     #[Test]
     public function test_it_renders_to_email()
-    {        
+    {
         $mail = $this->webauthnRecoveryNotification->toMail($this->user);
 
         $this->assertInstanceOf(MailMessage::class, $mail);
@@ -77,5 +77,4 @@ class WebauthnRecoveryNotificationTest extends FeatureTestCase
             $mail
         );
     }
-
 }

+ 3 - 4
tests/Feature/RouteTest.php

@@ -4,8 +4,8 @@ namespace Tests\Feature;
 
 use App\Providers\RouteServiceProvider;
 use Illuminate\Support\Facades\Artisan;
-use Illuminate\Support\Str;
 use Illuminate\Support\Facades\Route;
+use Illuminate\Support\Str;
 use PHPUnit\Framework\Attributes\CoversClass;
 use PHPUnit\Framework\Attributes\DataProvider;
 use PHPUnit\Framework\Attributes\Test;
@@ -15,6 +15,7 @@ use Tests\FeatureTestCase;
 class RouteTest extends FeatureTestCase
 {
     const API_ROUTE_PREFIX = 'api/v1';
+
     const API_MIDDLEWARE = 'api.v1';
 
     #[Test]
@@ -61,9 +62,7 @@ class RouteTest extends FeatureTestCase
     public static function wherePatternProvider()
     {
         return [
-            'SETTING_NAME' => ['settingName']
+            'SETTING_NAME' => ['settingName'],
         ];
     }
-
-    
 }

+ 2 - 2
tests/Feature/Services/GroupServiceTest.php

@@ -165,8 +165,8 @@ class GroupServiceTest extends FeatureTestCase
     #[Test]
     public function test_setUser_sets_groups_user()
     {
-        $this->groupOne   = Group::factory()->create();
-        $this->groupTwo   = Group::factory()->create();
+        $this->groupOne = Group::factory()->create();
+        $this->groupTwo = Group::factory()->create();
 
         $this->assertEquals(null, $this->groupOne->user_id);
         $this->assertEquals(null, $this->groupTwo->user_id);

+ 5 - 5
tests/Feature/Services/LogoServiceTest.php

@@ -39,7 +39,7 @@ class LogoServiceTest extends TestCase
         Storage::fake('icons');
         Storage::fake('logos');
 
-        $logoService = new LogoService();
+        $logoService = new LogoService;
         $icon        = $logoService->getIcon('twitter');
 
         $this->assertNotNull($icon);
@@ -56,7 +56,7 @@ class LogoServiceTest extends TestCase
 
         Storage::fake('icons');
         Storage::fake('logos');
-        $logoService = new LogoService();
+        $logoService = new LogoService;
 
         $icon = $logoService->getIcon('twitter');
 
@@ -75,7 +75,7 @@ class LogoServiceTest extends TestCase
 
         Storage::fake('icons');
         Storage::fake('logos');
-        $logoService = new LogoService();
+        $logoService = new LogoService;
 
         $icon = $logoService->getIcon('twitter');
 
@@ -85,7 +85,7 @@ class LogoServiceTest extends TestCase
     #[Test]
     public function test_getIcon_returns_null_when_no_logo_exists()
     {
-        $logoService = new LogoService();
+        $logoService = new LogoService;
 
         $icon = $logoService->getIcon('no_logo_should_exists_with_this_name');
 
@@ -105,7 +105,7 @@ class LogoServiceTest extends TestCase
         Storage::fake('icons');
         Storage::fake('logos');
 
-        $logoService = new LogoService();
+        $logoService = new LogoService;
         $icon        = $logoService->getIcon('twitter');
 
         $this->assertNull($icon);

+ 7 - 10
tests/Feature/Services/QrCodeServiceTest.php

@@ -66,27 +66,24 @@ class QrCodeServiceTest extends FeatureTestCase
         // QrReader is a final class, so we need to mock it here with a new object instance
         // to then bind it to the container
         $fileContent = LocalFile::fake()->validQrcode()->get();
-        $qrReader = \Mockery::mock(new QrReader($fileContent, QrReader::SOURCE_TYPE_BLOB))->makePartial();
+        $qrReader    = \Mockery::mock(new QrReader($fileContent, QrReader::SOURCE_TYPE_BLOB))->makePartial();
         $qrReader->shouldReceive('text')->andReturn('');
         $qrReader->shouldReceive('getError')->andReturn($exception);
-         
-        $this->app->bind(QrReader::class, function() use($qrReader) {
+
+        $this->app->bind(QrReader::class, function () use ($qrReader) {
             return $qrReader;
         });
 
         QrCode::decode(LocalFile::fake()->validQrcode());
     }
 
-    /**
-     * 
-     */
     public static function QrReaderExceptionProvider()
     {
         return [
-            'NotFoundException' => [new NotFoundException()],
-            'FormatException'   => [new FormatException()],
-            'ChecksumException' => [new ChecksumException()],
-            'default'           => [new Exception()],
+            'NotFoundException' => [new NotFoundException],
+            'FormatException'   => [new FormatException],
+            'ChecksumException' => [new ChecksumException],
+            'default'           => [new Exception],
         ];
     }
 }

+ 3 - 3
tests/Feature/Services/SettingServiceTest.php

@@ -337,7 +337,7 @@ class SettingServiceTest extends FeatureTestCase
         Cache::shouldReceive('remember')
             ->andReturn(collect([]));
 
-        $settingService = new SettingService();
+        $settingService = new SettingService;
 
         Cache::shouldHaveReceived('remember');
     }
@@ -348,7 +348,7 @@ class SettingServiceTest extends FeatureTestCase
         Cache::shouldReceive('remember', 'put')
             ->andReturn(collect([]), true);
 
-        $settingService = new SettingService();
+        $settingService = new SettingService;
         $settingService->set(self::SETTING_NAME, self::SETTING_VALUE_STRING);
 
         Cache::shouldHaveReceived('put');
@@ -360,7 +360,7 @@ class SettingServiceTest extends FeatureTestCase
         Cache::shouldReceive('remember', 'put')
             ->andReturn(collect([]), true);
 
-        $settingService = new SettingService();
+        $settingService = new SettingService;
         $settingService->delete(self::SETTING_NAME);
 
         Cache::shouldHaveReceived('put');

+ 2 - 2
tests/Feature/Services/TwoFAccountServiceTest.php

@@ -325,8 +325,8 @@ class TwoFAccountServiceTest extends FeatureTestCase
     #[Test]
     public function test_setUser_sets_twofaccounts_user()
     {
-        $twofaccountA   = TwoFAccount::factory()->create();
-        $twofaccountB   = TwoFAccount::factory()->create();
+        $twofaccountA = TwoFAccount::factory()->create();
+        $twofaccountB = TwoFAccount::factory()->create();
 
         $this->assertEquals(null, $twofaccountA->user_id);
         $this->assertEquals(null, $twofaccountB->user_id);

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio