From 7da825659de9d8ba96d1a0f0396319e2f5e3d73d Mon Sep 17 00:00:00 2001 From: Refringe Date: Thu, 30 Jan 2025 00:50:28 -0500 Subject: [PATCH] Additional Rector Updates --- app/Actions/Fortify/CreateNewUser.php | 2 +- app/Http/Controllers/Api/AuthController.php | 2 +- app/Http/Controllers/ModController.php | 6 +-- app/Http/Controllers/ModVersionController.php | 8 +--- app/Http/Controllers/SocialiteController.php | 6 +-- app/Http/Controllers/UserController.php | 8 +--- app/Jobs/Import/ImportHubDataJob.php | 32 ++++++---------- app/Livewire/Mod/Listing.php | 4 +- app/Models/ModVersion.php | 2 +- app/Models/SptVersion.php | 10 ++--- app/View/Components/HomepageMods.php | 4 +- composer.json | 1 + composer.lock | 37 ++++++++++++++++++- rector.php | 22 ++++++----- tests/Feature/Mod/ModDependencyTest.php | 26 ++++++------- tests/Feature/Mod/ModVersionTest.php | 6 +-- tests/Feature/User/OAuthAccountTest.php | 2 +- 17 files changed, 99 insertions(+), 79 deletions(-) diff --git a/app/Actions/Fortify/CreateNewUser.php b/app/Actions/Fortify/CreateNewUser.php index 18248f6..2495c13 100644 --- a/app/Actions/Fortify/CreateNewUser.php +++ b/app/Actions/Fortify/CreateNewUser.php @@ -28,7 +28,7 @@ class CreateNewUser implements CreatesNewUsers 'terms' => Jetstream::hasTermsAndPrivacyPolicyFeature() ? ['accepted', 'required'] : '', ])->validate(); - return User::create([ + return User::query()->create([ 'name' => $input['name'], 'email' => $input['email'], 'password' => Hash::make($input['password']), diff --git a/app/Http/Controllers/Api/AuthController.php b/app/Http/Controllers/Api/AuthController.php index 1680f96..8e37fbe 100644 --- a/app/Http/Controllers/Api/AuthController.php +++ b/app/Http/Controllers/Api/AuthController.php @@ -44,7 +44,7 @@ class AuthController extends Controller return $this->error(__('invalid credentials'), 401); } - $user = User::firstWhere('email', $loginUserRequest->email); + $user = User::query()->firstWhere('email', $loginUserRequest->email); $tokenName = $loginUserRequest->token_name ?? __('Dynamic API Token'); return $this->success(__('authenticated'), [ diff --git a/app/Http/Controllers/ModController.php b/app/Http/Controllers/ModController.php index 56f95ab..270c95d 100644 --- a/app/Http/Controllers/ModController.php +++ b/app/Http/Controllers/ModController.php @@ -25,7 +25,7 @@ class ModController extends Controller { $this->authorize('create', Mod::class); - return new ModResource(Mod::create($modRequest->validated())); + return new ModResource(Mod::query()->create($modRequest->validated())); } public function show(int $modId, string $slug): View @@ -39,9 +39,7 @@ class ModController extends Controller 'users', ])->findOrFail($modId); - if ($mod->slug !== $slug) { - abort(404); - } + abort_if($mod->slug !== $slug, 404); $this->authorize('view', $mod); diff --git a/app/Http/Controllers/ModVersionController.php b/app/Http/Controllers/ModVersionController.php index b75b4de..3044a81 100644 --- a/app/Http/Controllers/ModVersionController.php +++ b/app/Http/Controllers/ModVersionController.php @@ -20,17 +20,13 @@ class ModVersionController extends Controller ->whereVersion($version) ->firstOrFail(); - if ($modVersion->mod->slug !== $slug) { - abort(404); - } + abort_if($modVersion->mod->slug !== $slug, 404); $this->authorize('view', $modVersion); // Rate limit the downloads. $rateKey = 'mod-download:'.($request->user()?->id ?: $request->ip()); - if (RateLimiter::tooManyAttempts($rateKey, maxAttempts: 5)) { // Max attempts is per minute. - abort(429); - } + abort_if(RateLimiter::tooManyAttempts($rateKey, maxAttempts: 5), 429); // Increment downloads counts in the background. defer(fn () => $modVersion->incrementDownloads()); diff --git a/app/Http/Controllers/SocialiteController.php b/app/Http/Controllers/SocialiteController.php index 3ab2223..1f55d21 100644 --- a/app/Http/Controllers/SocialiteController.php +++ b/app/Http/Controllers/SocialiteController.php @@ -98,12 +98,12 @@ class SocialiteController extends Controller return DB::transaction(function () use ($providerUser, $provider, $username) { - $user = User::firstOrCreate(['email' => $providerUser->getEmail()], [ + $user = User::query()->firstOrCreate(['email' => $providerUser->getEmail()], [ 'name' => $username, 'password' => null, ]); - $connection = $user->oAuthConnections()->create([ + $model = $user->oAuthConnections()->create([ 'provider' => $provider, 'provider_id' => $providerUser->getId(), 'token' => $providerUser->token ?? '', @@ -114,7 +114,7 @@ class SocialiteController extends Controller 'avatar' => $providerUser->getAvatar() ?? '', ]); - $this->updateAvatar($user, $connection->avatar); + $this->updateAvatar($user, $model->avatar); return $user; }); diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index bbb4cc3..f1461af 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -29,13 +29,9 @@ class UserController extends Controller ->paginate(10) ->fragment('mods'); - if ($user->slug() !== $username) { - abort(404); - } + abort_if($user->slug() !== $username, 404); - if ($request->user()?->cannot('view', $user)) { - abort(403); - } + abort_if($request->user()?->cannot('view', $user), 403); return view('user.show', ['user' => $user, 'mods' => $mods]); } diff --git a/app/Jobs/Import/ImportHubDataJob.php b/app/Jobs/Import/ImportHubDataJob.php index 784cfca..eb4bc03 100644 --- a/app/Jobs/Import/ImportHubDataJob.php +++ b/app/Jobs/Import/ImportHubDataJob.php @@ -637,7 +637,7 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue foreach ($userRanks as $userRank) { $roleName = Str::ucfirst(Str::afterLast($userRank['title'], '.')); $roleData = $this->buildUserRoleData($roleName); - UserRole::upsert($roleData, ['name'], ['name', 'short_name', 'description', 'color_class']); + UserRole::query()->upsert($roleData, ['name'], ['name', 'short_name', 'description', 'color_class']); $userRole = UserRole::whereName($roleData['name'])->first(); $user = User::whereHubId($userRank['hub_id'])->first(); @@ -700,7 +700,7 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue }, 'followID'); foreach ($followsGroupedByFollower as $followerId => $followings) { - $user = User::find($followerId); + $user = User::query()->find($followerId); if ($user) { $user->following()->sync($followings); } @@ -751,28 +751,20 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue $response = curl_exec($ch); - if (curl_errno($ch) !== 0) { - throw new Exception('cURL Error: '.curl_error($ch)); - } + throw_if(curl_errno($ch) !== 0, new Exception('cURL Error: '.curl_error($ch))); curl_close($ch); $response = (array) json_decode($response, true); - if (json_last_error() !== JSON_ERROR_NONE) { - throw new Exception('JSON Decode Error: '.json_last_error_msg()); - } + throw_if(json_last_error() !== JSON_ERROR_NONE, new Exception('JSON Decode Error: '.json_last_error_msg())); - if ($response === []) { - throw new Exception('No version data found in the GitHub API response.'); - } + throw_if($response === [], new Exception('No version data found in the GitHub API response.')); // Filter out drafts and pre-releases. $response = array_filter($response, fn (array $release): bool => ! $release['draft'] && ! $release['prerelease']); - if ($response === []) { - throw new Exception('No finalized versions found after filtering drafts and pre-releases.'); - } + throw_if($response === [], new Exception('No finalized versions found after filtering drafts and pre-releases.')); // Ensure that each of the tag_name values has any 'v' prefix trimmed. $response = array_map(function (array $release) { @@ -805,7 +797,7 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue // Manually update or create foreach ($insertData as $data) { - $existingVersion = SptVersion::where('version', $data['version'])->first(); + $existingVersion = SptVersion::query()->where('version', $data['version'])->first(); if ($existingVersion) { $existingVersion->update([ 'link' => $data['link'], @@ -814,7 +806,7 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue 'updated_at' => $data['updated_at'], ]); } else { - SptVersion::create($data); + SptVersion::query()->create($data); } } } @@ -916,7 +908,7 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue ->pluck('userID') ->toArray(); $modAuthors[] = $mod->userID; // Add the primary author to the list. - $modAuthors = User::whereIn('hub_id', $modAuthors)->pluck('id')->toArray(); // Replace with local IDs. + $modAuthors = User::query()->whereIn('hub_id', $modAuthors)->pluck('id')->toArray(); // Replace with local IDs. $modContent = DB::table('temp_file_content') ->where('fileID', $mod->fileID) @@ -980,7 +972,7 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue // Remove the user_id from the mod data before upserting. $insertModData = array_map(fn ($mod) => Arr::except($mod, 'users'), $modData); - Mod::withoutGlobalScopes()->upsert($insertModData, ['hub_id'], [ + Mod::query()->withoutGlobalScopes()->upsert($insertModData, ['hub_id'], [ 'name', 'slug', 'teaser', @@ -1094,7 +1086,7 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue } if (! empty($insertData)) { - ModVersion::withoutGlobalScopes()->upsert($insertData, ['hub_id'], [ + ModVersion::query()->withoutGlobalScopes()->upsert($insertData, ['hub_id'], [ 'mod_id', 'version', 'description', @@ -1116,7 +1108,7 @@ class ImportHubDataJob implements ShouldBeUnique, ShouldQueue */ private function removeDeletedMods(): void { - $mods = Mod::select('hub_id')->get(); + $mods = Mod::query()->select('hub_id')->get(); foreach ($mods as $mod) { if (DB::connection('mysql_hub')->table('filebase1_file')->where('fileID', $mod->hub_id)->doesntExist()) { $mod->delete(); diff --git a/app/Livewire/Mod/Listing.php b/app/Livewire/Mod/Listing.php index 5e95d73..2cebb82 100644 --- a/app/Livewire/Mod/Listing.php +++ b/app/Livewire/Mod/Listing.php @@ -163,11 +163,11 @@ class Listing extends Component { $count = 0; if ($this->query !== '') { - ++$count; + $count++; } if ($this->featured !== 'include') { - ++$count; + $count++; } return $count + count($this->sptVersions); diff --git a/app/Models/ModVersion.php b/app/Models/ModVersion.php index fff8bbf..091b4b6 100644 --- a/app/Models/ModVersion.php +++ b/app/Models/ModVersion.php @@ -148,7 +148,7 @@ class ModVersion extends Model */ public function incrementDownloads(): int { - ++$this->downloads; + $this->downloads++; $this->save(); // Recalculate the total download count for this mod. diff --git a/app/Models/SptVersion.php b/app/Models/SptVersion.php index e09e501..d936344 100644 --- a/app/Models/SptVersion.php +++ b/app/Models/SptVersion.php @@ -31,7 +31,7 @@ class SptVersion extends Model $minorVersions = array_column($lastThreeMinorVersions, 'minor'); // Fetch all versions for the last three minor versions with mod count. - return self::select(['spt_versions.id', 'spt_versions.version', 'spt_versions.color_class', 'spt_versions.mod_count']) + return self::query()->select(['spt_versions.id', 'spt_versions.version', 'spt_versions.color_class', 'spt_versions.mod_count']) ->join('mod_version_spt_version', 'spt_versions.id', '=', 'mod_version_spt_version.spt_version_id') ->join('mod_versions', 'mod_version_spt_version.mod_version_id', '=', 'mod_versions.id') ->join('mods', 'mod_versions.mod_id', '=', 'mods.id') @@ -52,7 +52,7 @@ class SptVersion extends Model */ public static function getLastThreeMinorVersions(): array { - return self::selectRaw('CONCAT(version_major, ".", version_minor) AS minor_version, version_major, version_minor') + return self::query()->selectRaw('CONCAT(version_major, ".", version_minor) AS minor_version, version_major, version_minor') ->where('version', '!=', '0.0.0') ->groupBy('version_major', 'version_minor') ->orderByDesc('version_major') @@ -78,9 +78,7 @@ class SptVersion extends Model // Perform the regex match to capture the version sections, including the possible preRelease section. preg_match('/^(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:-([a-zA-Z0-9]+))?$/', $version, $matches); - if ($matches === []) { - throw new InvalidVersionNumberException('Invalid SPT version number: '.$version); - } + throw_if($matches === [], new InvalidVersionNumberException('Invalid SPT version number: '.$version)); return [ 'major' => $matches[1] ?? 0, @@ -168,7 +166,7 @@ class SptVersion extends Model */ public static function getLatest(): ?SptVersion { - return Cache::remember('latest_spt_version', 300, fn () => SptVersion::select(['version', 'version_major', 'version_minor', 'version_patch', 'version_pre_release']) + return Cache::remember('latest_spt_version', 300, fn () => \App\Models\SptVersion::query()->select(['version', 'version_major', 'version_minor', 'version_patch', 'version_pre_release']) ->orderByDesc('version_major') ->orderByDesc('version_minor') ->orderByDesc('version_patch') diff --git a/app/View/Components/HomepageMods.php b/app/View/Components/HomepageMods.php index b66bba7..a2888bd 100644 --- a/app/View/Components/HomepageMods.php +++ b/app/View/Components/HomepageMods.php @@ -55,7 +55,7 @@ class HomepageMods extends Component */ private function fetchLatestMods(): Collection { - return Cache::flexible('homepage-latest-mods', [5, 10], fn () => Mod::orderByDesc('created_at') + return Cache::flexible('homepage-latest-mods', [5, 10], fn () => Mod::query()->orderByDesc('created_at') ->with([ 'latestVersion', 'latestVersion.latestSptVersion', @@ -71,7 +71,7 @@ class HomepageMods extends Component */ private function fetchUpdatedMods(): Collection { - return Cache::flexible('homepage-updated-mods', [5, 10], fn () => Mod::orderByDesc('updated_at') + return Cache::flexible('homepage-updated-mods', [5, 10], fn () => Mod::query()->orderByDesc('updated_at') ->with([ 'latestUpdatedVersion', 'latestUpdatedVersion.latestSptVersion', diff --git a/composer.json b/composer.json index 68fc731..0f1b12e 100644 --- a/composer.json +++ b/composer.json @@ -31,6 +31,7 @@ }, "require-dev": { "barryvdh/laravel-debugbar": "^3.14.10", + "driftingly/rector-laravel": "^2.0", "fakerphp/faker": "^1.24.1", "knuckleswtf/scribe": "^4.39", "larastan/larastan": "^3.0.2", diff --git a/composer.lock b/composer.lock index 4837b10..f7a2dc9 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "69d42ce1d7d16f80f3280100cef74c4f", + "content-hash": "3401287e9f3115f4af4f8ed65cbeedf1", "packages": [ { "name": "anourvalar/eloquent-serialize", @@ -10026,6 +10026,41 @@ ], "time": "2024-12-11T14:50:44+00:00" }, + { + "name": "driftingly/rector-laravel", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/driftingly/rector-laravel.git", + "reference": "f0e3a9e2c92ff760730d1af34fbdc43f51f3b868" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/driftingly/rector-laravel/zipball/f0e3a9e2c92ff760730d1af34fbdc43f51f3b868", + "reference": "f0e3a9e2c92ff760730d1af34fbdc43f51f3b868", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "rector/rector": "^2.0" + }, + "type": "rector-extension", + "autoload": { + "psr-4": { + "RectorLaravel\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Rector upgrades rules for Laravel Framework", + "support": { + "issues": "https://github.com/driftingly/rector-laravel/issues", + "source": "https://github.com/driftingly/rector-laravel/tree/2.0.2" + }, + "time": "2025-01-17T18:07:03+00:00" + }, { "name": "erusev/parsedown", "version": "1.7.4", diff --git a/rector.php b/rector.php index bf5fdaf..0434baa 100644 --- a/rector.php +++ b/rector.php @@ -4,6 +4,7 @@ declare(strict_types=1); use Rector\Caching\ValueObject\Storage\FileCacheStorage; use Rector\Config\RectorConfig; +use RectorLaravel\Set\LaravelSetList; return RectorConfig::configure() ->withPaths([ @@ -23,15 +24,18 @@ return RectorConfig::configure() cacheDirectory: '.rector/cache', cacheClass: FileCacheStorage::class ) - ->withPreparedSets( - deadCode: true, - codeQuality: true, - codingStyle: true, - typeDeclarations: true, - privatization: true, - naming: true, - rectorPreset: true, - ) ->withPhpSets() + ->withSets([ + LaravelSetList::LARAVEL_ARRAYACCESS_TO_METHOD_CALL, + LaravelSetList::LARAVEL_CODE_QUALITY, + LaravelSetList::LARAVEL_COLLECTION, + LaravelSetList::LARAVEL_CONTAINER_STRING_TO_FULLY_QUALIFIED_NAME, + LaravelSetList::LARAVEL_ELOQUENT_MAGIC_METHOD_TO_QUERY_BUILDER, + LaravelSetList::LARAVEL_IF_HELPERS, + LaravelSetList::LARAVEL_LEGACY_FACTORIES_TO_CLASSES, + ]) + ->withTypeCoverageLevel(0) + ->withDeadCodeLevel(0) + ->withCodeQualityLevel(0) ->withImportNames(removeUnusedImports: true) ->withAttributesSets(); diff --git a/tests/Feature/Mod/ModDependencyTest.php b/tests/Feature/Mod/ModDependencyTest.php index f54c555..8eb19ee 100644 --- a/tests/Feature/Mod/ModDependencyTest.php +++ b/tests/Feature/Mod/ModDependencyTest.php @@ -24,7 +24,7 @@ it('resolves mod version dependencies on create', function (): void { ]); // Check that the resolved dependency has been created - expect(ModResolvedDependency::where('mod_version_id', $modVersion->id)->first()) + expect(ModResolvedDependency::query()->where('mod_version_id', $modVersion->id)->first()) ->not()->toBeNull() ->resolved_mod_version_id->toBe($dependentVersion1->id); }); @@ -42,7 +42,7 @@ it('resolves multiple matching versions', function (): void { 'constraint' => '^1.0', // Should resolve to dependentVersion1 and dependentVersion2 ]); - $resolvedDependencies = ModResolvedDependency::where('mod_version_id', $modVersion->id)->get(); + $resolvedDependencies = ModResolvedDependency::query()->where('mod_version_id', $modVersion->id)->get(); expect($resolvedDependencies->count())->toBe(2) ->and($resolvedDependencies->pluck('resolved_mod_version_id')) @@ -63,7 +63,7 @@ it('does not resolve dependencies when no versions match', function (): void { ]); // Check that no resolved dependencies were created - expect(ModResolvedDependency::where('mod_version_id', $modVersion->id)->exists())->toBeFalse(); + expect(ModResolvedDependency::query()->where('mod_version_id', $modVersion->id)->exists())->toBeFalse(); }); it('updates resolved dependencies when constraint changes', function (): void { @@ -78,13 +78,13 @@ it('updates resolved dependencies when constraint changes', function (): void { 'constraint' => '^1.0', // Should resolve to dependentVersion1 ]); - $resolvedDependency = ModResolvedDependency::where('mod_version_id', $modVersion->id)->first(); + $resolvedDependency = ModResolvedDependency::query()->where('mod_version_id', $modVersion->id)->first(); expect($resolvedDependency->resolved_mod_version_id)->toBe($dependentVersion1->id); // Update the constraint $dependency->update(['constraint' => '^2.0']); // Should now resolve to dependentVersion2 - $resolvedDependency = ModResolvedDependency::where('mod_version_id', $modVersion->id)->first(); + $resolvedDependency = ModResolvedDependency::query()->where('mod_version_id', $modVersion->id)->first(); expect($resolvedDependency->resolved_mod_version_id)->toBe($dependentVersion2->id); }); @@ -99,14 +99,14 @@ it('removes resolved dependencies when dependency is removed', function (): void 'constraint' => '^1.0', ]); - $resolvedDependency = ModResolvedDependency::where('mod_version_id', $modVersion->id)->first(); + $resolvedDependency = ModResolvedDependency::query()->where('mod_version_id', $modVersion->id)->first(); expect($resolvedDependency)->not()->toBeNull(); // Delete the dependency $dependency->delete(); // Check that the resolved dependency is removed - expect(ModResolvedDependency::where('mod_version_id', $modVersion->id)->exists())->toBeFalse(); + expect(ModResolvedDependency::query()->where('mod_version_id', $modVersion->id)->exists())->toBeFalse(); }); it('handles mod versions with no dependencies gracefully', function (): void { @@ -116,7 +116,7 @@ it('handles mod versions with no dependencies gracefully', function (): void { // Check that the service was called and that no resolved dependencies were created. $serviceSpy->shouldHaveReceived('resolve'); - expect(ModResolvedDependency::where('mod_version_id', $modVersion->id)->exists())->toBeFalse(); + expect(ModResolvedDependency::query()->where('mod_version_id', $modVersion->id)->exists())->toBeFalse(); }); it('resolves the correct versions with a complex semver constraint', function (): void { @@ -134,7 +134,7 @@ it('resolves the correct versions with a complex semver constraint', function () 'constraint' => '>1.0 <2.0 || >=2.5.0 <3.0', // Should resolve to dependentVersion2, dependentVersion3, and dependentVersion5 ]); - $resolvedDependencies = ModResolvedDependency::where('mod_version_id', $modVersion->id)->pluck('resolved_mod_version_id'); + $resolvedDependencies = ModResolvedDependency::query()->where('mod_version_id', $modVersion->id)->pluck('resolved_mod_version_id'); expect($resolvedDependencies)->toContain($dependentVersion2->id) ->toContain($dependentVersion3->id) @@ -163,7 +163,7 @@ it('resolves overlapping version constraints from multiple dependencies correctl 'constraint' => '>=1.5.0 <2.0.0', // Matches only the second version of dependentMod2 ]); - $resolvedDependencies = ModResolvedDependency::where('mod_version_id', $modVersion->id)->get(); + $resolvedDependencies = ModResolvedDependency::query()->where('mod_version_id', $modVersion->id)->get(); expect($resolvedDependencies->pluck('resolved_mod_version_id')) ->toContain($dependentVersion1_1->id) @@ -182,7 +182,7 @@ it('handles the case where a dependent mod has no versions available', function ]); // Verify that no versions were resolved. - expect(ModResolvedDependency::where('mod_version_id', $modVersion->id)->exists())->toBeFalse(); + expect(ModResolvedDependency::query()->where('mod_version_id', $modVersion->id)->exists())->toBeFalse(); }); it('handles a large number of versions efficiently', function (): void { @@ -190,7 +190,7 @@ it('handles a large number of versions efficiently', function (): void { $versionCount = 100; $dependentMod = Mod::factory()->create(); - for ($i = 0; $i < $versionCount; ++$i) { + for ($i = 0; $i < $versionCount; $i++) { ModVersion::factory()->recycle($dependentMod)->create(['version' => '1.0.'.$i]); } @@ -203,7 +203,7 @@ it('handles a large number of versions efficiently', function (): void { $executionTime = microtime(true) - $startTime; // Verify that all versions were resolved and that the execution time is reasonable. - expect(ModResolvedDependency::where('mod_version_id', $modVersion->id)->count())->toBe($versionCount) + expect(ModResolvedDependency::query()->where('mod_version_id', $modVersion->id)->count())->toBe($versionCount) ->and($executionTime)->toBeLessThan(5); // Arbitrarily picked out of my ass. })->skip('This is a performance test and is skipped by default. It will probably fail.'); diff --git a/tests/Feature/Mod/ModVersionTest.php b/tests/Feature/Mod/ModVersionTest.php index 807798a..f4210e5 100644 --- a/tests/Feature/Mod/ModVersionTest.php +++ b/tests/Feature/Mod/ModVersionTest.php @@ -112,7 +112,7 @@ it('includes only published mod versions', function (): void { 'published_at' => null, ]); - $all = ModVersion::withoutGlobalScopes()->get(); + $all = ModVersion::query()->withoutGlobalScopes()->get(); expect($all)->toHaveCount(3); $mods = ModVersion::all(); @@ -137,7 +137,7 @@ it('updates the parent mods updated_at column when updated', function (): void { $originalDate = now()->subDays(10); $version = ModVersion::factory()->create(['updated_at' => $originalDate]); - ++$version->downloads; + $version->downloads++; $version->save(); $version->refresh(); @@ -175,7 +175,7 @@ it('rate limits download links from being hit', function (): void { $modVersion = ModVersion::factory()->recycle($mod)->create(['downloads' => 0]); // The first 5 requests should be fine. - for ($i = 0; $i < 5; ++$i) { + for ($i = 0; $i < 5; $i++) { $request = $this->get($modVersion->downloadUrl()); $request->assertStatus(307); } diff --git a/tests/Feature/User/OAuthAccountTest.php b/tests/Feature/User/OAuthAccountTest.php index f1abcb7..ad70f9a 100644 --- a/tests/Feature/User/OAuthAccountTest.php +++ b/tests/Feature/User/OAuthAccountTest.php @@ -25,7 +25,7 @@ it('creates a new user and attaches the OAuth provider when logging in via OAuth $response = $this->get('/login/discord/callback'); // Assert that the user was created - $user = User::where('email', 'newuser@example.com')->first(); + $user = User::query()->where('email', 'newuser@example.com')->first(); expect($user)->not->toBeNull() ->and($user->name)->toBe('New User');