Merge pull request #16488 from marcusmoore/bug/sc-28631

Nice catch!
This commit is contained in:
snipe 2025-03-11 21:05:46 +00:00 committed by GitHub
commit 5e10c213f6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 64 additions and 1 deletions

View file

@ -141,6 +141,8 @@ class Handler extends ExceptionHandler
$route = 'kits.index';
} elseif ($route == 'assetmaintenances.index') {
$route = 'maintenances.index';
} elseif ($route === 'licenseseats.index') {
$route = 'licenses.index';
}
return redirect()
@ -203,4 +205,4 @@ class Handler extends ExceptionHandler
//
});
}
}
}

View file

@ -150,6 +150,11 @@ class UserFactory extends Factory
return $this->appendPermission(['models.delete' => '1']);
}
public function viewAssetModels()
{
return $this->appendPermission(['models.view' => '1']);
}
public function viewAccessories()
{
return $this->appendPermission(['accessories.view' => '1']);
@ -360,6 +365,11 @@ class UserFactory extends Factory
return $this->appendPermission(['kits.delete' => '1']);
}
public function viewPredefinedKits()
{
return $this->appendPermission(['kits.view' => '1']);
}
public function deleteStatusLabels()
{
return $this->appendPermission(['statuslabels.delete' => '1']);

View file

@ -0,0 +1,51 @@
<?php
namespace Tests\Feature\Redirects;
use App\Models\User;
use Tests\TestCase;
class ModelNotFoundRedirectTest extends TestCase
{
public function testHandlesAsset404()
{
$this->actingAs(User::factory()->viewAssets()->create())
->get(route('hardware.checkout.create', 9999))
->assertRedirectToRoute('hardware.index');
}
public function testHandlesAssetMaintenance404()
{
$this->actingAs(User::factory()->viewAssets()->create())
->get(route('maintenances.show', 9999))
->assertRedirectToRoute('maintenances.index');
}
public function testHandlesAssetModel404()
{
$this->actingAs(User::factory()->viewAssetModels()->create())
->get(route('models.show', 9999))
->assertRedirectToRoute('models.index');
}
public function testHandlesLicenseSeat404()
{
$this->actingAs(User::factory()->viewLicenses()->create())
->get(route('licenses.checkin', 9999))
->assertRedirectToRoute('licenses.index');
}
public function testHandlesPredefinedKit404()
{
$this->actingAs(User::factory()->viewPredefinedKits()->create())
->get(route('kits.show', 9999))
->assertRedirectToRoute('kits.index');
}
public function testHandlesReportTemplate404()
{
$this->actingAs(User::factory()->canViewReports()->create())
->get(route('report-templates.show', 9999))
->assertRedirectToRoute('reports/custom');
}
}