Skip to content

Commit 2044570

Browse files
committed
Add tests for delete asset model endpoint
1 parent b336c62 commit 2044570

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

database/factories/UserFactory.php

+5
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,11 @@ public function viewRequestableAssets()
141141
return $this->appendPermission(['assets.view.requestable' => '1']);
142142
}
143143

144+
public function deleteAssetModels()
145+
{
146+
return $this->appendPermission(['models.delete' => '1']);
147+
}
148+
144149
public function viewAccessories()
145150
{
146151
return $this->appendPermission(['accessories.view' => '1']);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
3+
namespace Tests\Feature\AssetModels\Api;
4+
5+
use App\Models\Asset;
6+
use App\Models\AssetModel;
7+
use App\Models\User;
8+
use Tests\Concerns\TestsMultipleFullCompanySupport;
9+
use Tests\Concerns\TestsPermissionsRequirement;
10+
use Tests\TestCase;
11+
12+
class DeleteAssetModelsTest extends TestCase implements TestsMultipleFullCompanySupport, TestsPermissionsRequirement
13+
{
14+
public function testRequiresPermission()
15+
{
16+
$assetModel = AssetModel::factory()->create();
17+
18+
$this->actingAsForApi(User::factory()->create())
19+
->deleteJson(route('api.models.destroy', $assetModel))
20+
->assertForbidden();
21+
}
22+
23+
public function testCanDeleteAssetModel()
24+
{
25+
$assetModel = AssetModel::factory()->create();
26+
27+
$this->actingAsForApi(User::factory()->deleteAssetModels()->create())
28+
->deleteJson(route('api.models.destroy', $assetModel))
29+
->assertStatusMessageIs('success');
30+
31+
$this->assertTrue($assetModel->fresh()->trashed());
32+
}
33+
34+
public function testCannotDeleteAssetModelThatStillHasAssociatedAssets()
35+
{
36+
$asset = Asset::factory()->create();
37+
38+
$this->actingAsForApi(User::factory()->deleteAssetModels()->create())
39+
->deleteJson(route('api.models.destroy', $asset->model))
40+
->assertStatusMessageIs('error');
41+
42+
$this->assertFalse($asset->model->fresh()->trashed());
43+
}
44+
45+
public function testAdheresToMultipleFullCompanySupportScoping()
46+
{
47+
// TODO: Implement testAdheresToMultipleFullCompanySupportScoping() method.
48+
49+
$this->markTestIncomplete();
50+
}
51+
}

0 commit comments

Comments
 (0)