mirror of
https://github.com/snipe/snipe-it.git
synced 2024-09-19 23:37:38 -07:00
Add tests for delete manufacturer endpoint
This commit is contained in:
parent
50730fc4fb
commit
53c673dee2
|
@ -346,6 +346,11 @@ class UserFactory extends Factory
|
||||||
return $this->appendPermission(['depreciations.delete' => '1']);
|
return $this->appendPermission(['depreciations.delete' => '1']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function deleteManufacturers()
|
||||||
|
{
|
||||||
|
return $this->appendPermission(['manufacturers.delete' => '1']);
|
||||||
|
}
|
||||||
|
|
||||||
private function appendPermission(array $permission)
|
private function appendPermission(array $permission)
|
||||||
{
|
{
|
||||||
return $this->state(function ($currentState) use ($permission) {
|
return $this->state(function ($currentState) use ($permission) {
|
||||||
|
|
64
tests/Feature/Manufacturers/Api/DeleteManufacturerTest.php
Normal file
64
tests/Feature/Manufacturers/Api/DeleteManufacturerTest.php
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\Feature\Manufacturers\Api;
|
||||||
|
|
||||||
|
use App\Models\Asset;
|
||||||
|
use App\Models\AssetModel;
|
||||||
|
use App\Models\Manufacturer;
|
||||||
|
use App\Models\User;
|
||||||
|
use Tests\Concerns\TestsPermissionsRequirement;
|
||||||
|
use Tests\TestCase;
|
||||||
|
|
||||||
|
class DeleteManufacturerTest extends TestCase implements TestsPermissionsRequirement
|
||||||
|
{
|
||||||
|
public function testRequiresPermission()
|
||||||
|
{
|
||||||
|
$manufacturer = Manufacturer::factory()->create();
|
||||||
|
|
||||||
|
$this->actingAsForApi(User::factory()->create())
|
||||||
|
->deleteJson(route('api.manufacturers.destroy', $manufacturer))
|
||||||
|
->assertForbidden();
|
||||||
|
|
||||||
|
$this->assertNotSoftDeleted($manufacturer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCannotDeleteManufacturerWithAssociatedData()
|
||||||
|
{
|
||||||
|
$manufacturerWithAccessories = Manufacturer::factory()->hasAccessories()->create();
|
||||||
|
$manufacturerWithConsumables = Manufacturer::factory()->hasConsumables()->create();
|
||||||
|
$manufacturerWithLicenses = Manufacturer::factory()->hasLicenses()->create();
|
||||||
|
|
||||||
|
$manufacturerWithAssets = Manufacturer::factory()->hasAssets()->create();
|
||||||
|
$model = AssetModel::factory()->create(['manufacturer_id' => $manufacturerWithAssets->id]);
|
||||||
|
Asset::factory()->create(['model_id' => $model->id]);
|
||||||
|
|
||||||
|
$this->assertGreaterThan(0, $manufacturerWithAccessories->accessories->count(), 'Precondition failed: Manufacturer has no accessories');
|
||||||
|
$this->assertGreaterThan(0, $manufacturerWithAssets->assets->count(), 'Precondition failed: Manufacturer has no assets');
|
||||||
|
$this->assertGreaterThan(0, $manufacturerWithConsumables->consumables->count(), 'Precondition failed: Manufacturer has no consumables');
|
||||||
|
$this->assertGreaterThan(0, $manufacturerWithLicenses->licenses->count(), 'Precondition failed: Manufacturer has no licenses');
|
||||||
|
|
||||||
|
$actor = $this->actingAsForApi(User::factory()->deleteManufacturers()->create());
|
||||||
|
|
||||||
|
$actor->deleteJson(route('api.manufacturers.destroy', $manufacturerWithAccessories))->assertStatusMessageIs('error');
|
||||||
|
$actor->deleteJson(route('api.manufacturers.destroy', $manufacturerWithAssets))->assertStatusMessageIs('error');
|
||||||
|
$actor->deleteJson(route('api.manufacturers.destroy', $manufacturerWithConsumables))->assertStatusMessageIs('error');
|
||||||
|
$actor->deleteJson(route('api.manufacturers.destroy', $manufacturerWithLicenses))->assertStatusMessageIs('error');
|
||||||
|
|
||||||
|
$this->assertNotSoftDeleted($manufacturerWithAssets);
|
||||||
|
$this->assertNotSoftDeleted($manufacturerWithAccessories);
|
||||||
|
$this->assertNotSoftDeleted($manufacturerWithConsumables);
|
||||||
|
$this->assertNotSoftDeleted($manufacturerWithLicenses);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCanDeleteManufacturer()
|
||||||
|
{
|
||||||
|
$manufacturer = Manufacturer::factory()->create();
|
||||||
|
|
||||||
|
$this->actingAsForApi(User::factory()->deleteManufacturers()->create())
|
||||||
|
->deleteJson(route('api.manufacturers.destroy', $manufacturer))
|
||||||
|
->assertOk()
|
||||||
|
->assertStatusMessageIs('success');
|
||||||
|
|
||||||
|
$this->assertSoftDeleted($manufacturer);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue