Merge remote-tracking branch 'origin/develop'

This commit is contained in:
snipe 2024-08-21 10:13:57 +01:00
commit d3f30ced94
3 changed files with 31 additions and 2 deletions

View file

@ -33,7 +33,7 @@ class Location extends SnipeModel
'country' => 'min:2|max:191|nullable', 'country' => 'min:2|max:191|nullable',
'zip' => 'max:10|nullable', 'zip' => 'max:10|nullable',
'manager_id' => 'exists:users,id|nullable', 'manager_id' => 'exists:users,id|nullable',
'parent_id' => 'non_circular:locations,id', 'parent_id' => 'nullable|exists:locations,id|non_circular:locations,id',
]; ];
protected $casts = [ protected $casts = [

View file

@ -32,6 +32,20 @@ class CreateLocationsTest extends TestCase
$this->assertTrue(Location::where('name', 'Test Location')->exists()); $this->assertTrue(Location::where('name', 'Test Location')->exists());
} }
public function testUserCannotCreateLocationsWithInvalidParent()
{
$this->assertFalse(Location::where('name', 'Test Location')->exists());
$this->actingAs(User::factory()->superuser()->create())
->from(route('locations.create'))
->post(route('locations.store'), [
'name' => 'Test Location',
'parent_id' => '100000000'
])
->assertRedirect(route('locations.create'));
$this->assertFalse(Location::where('name', 'Test Location')->exists());
}
} }

View file

@ -52,6 +52,21 @@ class UpdateLocationsTest extends TestCase
$this->assertFalse(Location::where('name', 'Test Location')->exists()); $this->assertFalse(Location::where('name', 'Test Location')->exists());
} }
public function testUserCannotEditLocationsWithInvalidParent()
{
$location = Location::factory()->create();
$response = $this->actingAs(User::factory()->superuser()->create())
->from(route('locations.edit', ['location' => $location->id]))
->put(route('locations.update', ['location' => $location]), [
'name' => 'Test Location',
'parent_id' => '100000000'
])
->assertRedirect(route('locations.edit', ['location' => $location->id]));
$this->followRedirects($response)->assertSee(trans('general.error'));
$this->assertFalse(Location::where('name', 'Test Location')->exists());
}
} }