snipe-it/tests/Feature/Locations/Api/CreateLocationsTest.php
snipe a8ddb2f44a Added non-circular tests
Signed-off-by: snipe <snipe@snipe.net>
2024-07-05 11:29:30 +01:00

57 lines
1.5 KiB
PHP

<?php
namespace Tests\Feature\Locations\Api;
use App\Models\Location;
use App\Models\User;
use Tests\TestCase;
class CreateLocationsTest extends TestCase
{
public function testRequiresPermissionToCreateLocation()
{
$this->actingAsForApi(User::factory()->create())
->postJson(route('api.departments.store'))
->assertForbidden();
}
public function testCannotCreateNewLocationsWithTheSameName()
{
$location = Location::factory()->create();
$location2 = Location::factory()->create();
$this->actingAsForApi(User::factory()->superuser()->create())
->patchJson(route('api.locations.update', $location2), [
'name' => $location->name,
])
->assertOk()
->assertStatusMessageIs('error')
->assertStatus(200)
->json();
}
public function testUserCannotCreateLocationsThatAreTheirOwnParent()
{
$location = Location::factory()->create();
$this->actingAsForApi(User::factory()->superuser()->create())
->patchJson(route('api.locations.update', $location), [
'parent_id' => $location->id,
])
->assertOk()
->assertStatusMessageIs('error')
->assertJson([
'messages' => [
'parent_id' => ['The parent id must not create a circular reference.'],
],
])
->json();
}
}