Implement test

This commit is contained in:
Marcus Moore
2025-09-09 11:58:43 -07:00
parent f221f9f22a
commit eada0b0bb5
2 changed files with 26 additions and 5 deletions

View File

@@ -1298,11 +1298,12 @@ class AssetsController extends Controller
'assigned_type' => Asset::class,
]);
// @todo: offset
// @todo: limit
$total = $query->count();
$assets = $query->get();
$offset = ($request->input('offset') > $total) ? $total : app('api_offset_value');
$limit = app('api_limit_value');
$assets = $query->skip($offset)->take($limit)->get();
return (new AssetsTransformer)->transformAssets($assets, $total);
}

View File

@@ -12,7 +12,7 @@ class AssignedAssetsTest extends TestCase
public function test_requires_permission()
{
$this->actingAsForApi(User::factory()->create())
->getJson(route('api.assets.assigned_assets' , Asset::factory()->create()))
->getJson(route('api.assets.assigned_assets', Asset::factory()->create()))
->assertForbidden();
}
@@ -50,4 +50,24 @@ class AssignedAssetsTest extends TestCase
->assertResponseContainsInRows($assetsAssignedToAsset, 'serial')
->assertResponseDoesNotContainInRows($unassociatedAsset, 'serial');
}
public function test_adheres_to_offset_and_limit()
{
$asset = Asset::factory()->hasAssignedAssets(2)->create();
$assetsAssignedToAsset = Asset::where([
'assigned_to' => $asset->id,
'assigned_type' => Asset::class,
])->get();
$this->actingAsForApi(User::factory()->viewAssets()->create())
->getJson(route('api.assets.assigned_assets', [
'asset' => $asset,
'offset' => 1,
'limit' => 1,
]))
->assertOk()
->assertResponseDoesNotContainInRows($assetsAssignedToAsset->first(), 'serial')
->assertResponseContainsInRows($assetsAssignedToAsset->last(), 'serial');
}
}