3
0
mirror of https://github.com/snipe/snipe-it.git synced 2026-02-22 03:45:46 +00:00
Files
snipe-it/tests/Feature/Assets/Api/AssetFilesTest.php
snipe aafc8996c1 phpcbf fixes
Signed-off-by: snipe <snipe@snipe.net>
2025-06-27 12:18:54 +01:00

106 lines
3.0 KiB
PHP

<?php
namespace Tests\Feature\Assets\Api;
use App\Models\Asset;
use App\Models\User;
use Illuminate\Http\UploadedFile;
use Tests\TestCase;
class AssetFilesTest extends TestCase
{
public function testAssetApiAcceptsFileUpload()
{
// Upload a file to an asset
// Create an asset to work with
$asset = Asset::factory()->create();
// Create a superuser to run this as
$user = User::factory()->superuser()->create();
//Upload a file
$this->actingAsForApi($user)
->post(
route('api.files.store', ['object_type' => 'assets', 'id' => $asset->id]), [
'file' => [UploadedFile::fake()->create("test.jpg", 100)]
]
)
->assertOk();
}
public function testAssetApiListsFiles()
{
// List all files on an asset
// Create an asset to work with
$asset = Asset::factory()->create();
// Create a superuser to run this as
$user = User::factory()->superuser()->create();
// List the files
$this->actingAsForApi($user)
->getJson(route('api.files.index', ['object_type' => 'assets', 'id' => $asset->id]))
->assertOk()
->assertJsonStructure(
[
'rows',
'total',
]
);
}
public function testAssetApiDownloadsFile()
{
// Download a file from an asset
// Create an asset to work with
$asset = Asset::factory()->create();
// Create a superuser to run this as
$user = User::factory()->superuser()->create();
//Upload a file
$this->actingAsForApi($user)
->post(
route('api.files.store', ['object_type' => 'assets', 'id' => $asset->id]), [
'file' => [UploadedFile::fake()->create("test.jpg", 100)]
]
)
->assertOk();
// List the files to get the file ID
$result = $this->actingAsForApi($user)
->getJson(route('api.files.index', ['object_type' => 'assets', 'id' => $asset->id]))
->assertOk();
}
public function testAssetApiDeletesFile()
{
// Delete a file from an asset
// Create an asset to work with
$asset = Asset::factory()->create();
// Create a superuser to run this as
$user = User::factory()->superuser()->create();
//Upload a file
$this->actingAsForApi($user)
->post(
route('api.files.store', ['object_type' => 'assets', 'id' => $asset->id]), [
'file' => [UploadedFile::fake()->create("test.jpg", 100)]
]
)
->assertOk();
// List the files to get the file ID
$result = $this->actingAsForApi($user)
->getJson(
route('api.files.index', ['object_type' => 'assets', 'id' => $asset->id])
)
->assertOk();
}
}