snipe-it/tests/Feature/Api/Assets/AssetFilesTest.php

106 lines
2.7 KiB
PHP
Raw Normal View History

2024-05-18 05:04:34 -07:00
<?php
2024-05-26 08:47:30 -07:00
namespace Tests\Feature\Api\Assets;
2024-05-18 05:04:34 -07:00
use Tests\TestCase;
use App\Models\User;
use App\Models\Asset;
use Illuminate\Http\UploadedFile;
2024-05-18 05:04:34 -07:00
class AssetFilesTest extends TestCase
{
public function testAssetApiAcceptsFileUpload()
2024-05-18 05:04:34 -07:00
{
// Upload a file to an asset
// Create an asset to work with
$asset = Asset::factory()->count(1)->create();
// Create a superuser to run this as
$user = User::factory()->superuser()->create();
//Upload a file
$this->actingAsForApi($user)
->post(
route('api.assets.files', ['asset_id' => $asset[0]["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()->count(1)->create();
// Create a superuser to run this as
$user = User::factory()->superuser()->create();
$this->actingAsForApi($user)
->getJson(
route('api.assets.files', ['asset_id' => $asset[0]["id"]]))
->assertOk()
->assertJsonStructure([
'status',
'messages',
'payload',
]);
}
public function testAssetApiDownloadsFile()
{
// Download a file from an asset
// Create an asset to work with
$asset = Asset::factory()->count(1)->create();
// Create a superuser to run this as
$user = User::factory()->superuser()->create();
//Upload a file
$this->actingAsForApi($user)
->post(
route('api.assets.files', ['asset_id' => $asset[0]["id"]]), [
'file' => [UploadedFile::fake()->create("test.jpg", 100)]
])->assertOk();
// Get the file
$this->actingAsForApi($user)
->get(
route('api.assets.file', [
'asset_id' => $asset[0]["id"],
'file_id' => 1,
]))
->assertOk();
}
public function testAssetApiDeletesFile()
{
// Delete a file from an asset
// Create an asset to work with
$asset = Asset::factory()->count(1)->create();
// Create a superuser to run this as
$user = User::factory()->superuser()->create();
//Upload a file
$this->actingAsForApi($user)
->post(
route('api.assets.files', ['asset_id' => $asset[0]["id"]]), [
'file' => [UploadedFile::fake()->create("test.jpg", 100)]
])
->assertOk();
// Delete the file
$this->actingAsForApi($user)
->delete(
route('api.assets.file', [
'asset_id' => $asset[0]["id"],
'file_id' => 1,
]))
->assertOk();
2024-05-18 05:04:34 -07:00
}
}