From 8448e54f7ca463713b4503dd341175eeb1e8b260 Mon Sep 17 00:00:00 2001 From: Refringe Date: Sun, 6 Oct 2024 21:56:32 -0600 Subject: [PATCH] Loads relationship when building download link. --- app/Models/Mod.php | 4 +++- tests/Feature/Mod/ModTest.php | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/Models/Mod.php b/app/Models/Mod.php index 1364e33..2d0738f 100644 --- a/app/Models/Mod.php +++ b/app/Models/Mod.php @@ -48,6 +48,8 @@ class Mod extends Model */ public function downloadUrl(bool $absolute = false): string { + $this->load('latestVersion'); + return route('mod.version.download', [ $this->id, $this->slug, @@ -176,7 +178,7 @@ class Mod extends Model * * @return HasOne */ - public function latestVersion(string $sort = 'version'): HasOne + public function latestVersion(): HasOne { return $this->versions() ->one() diff --git a/tests/Feature/Mod/ModTest.php b/tests/Feature/Mod/ModTest.php index 363c26c..aeb7355 100644 --- a/tests/Feature/Mod/ModTest.php +++ b/tests/Feature/Mod/ModTest.php @@ -35,5 +35,9 @@ it('builds download links using the latest mod version', function () { ModVersion::factory()->recycle($mod)->create(['version' => '1.3.0']); $modVersion = ModVersion::factory()->recycle($mod)->create(['version' => '1.3.4']); - expect($mod->downloadUrl())->toEqual("/mod/download/$mod->id/$mod->slug/$modVersion->version"); + expect($mod->downloadUrl())->toEqual(route('mod.version.download', [ + 'mod' => $mod->id, + 'slug' => $mod->slug, + 'version' => $modVersion->version, + ], absolute: false)); });