3
0
mirror of https://github.com/snipe/snipe-it.git synced 2026-06-13 18:43:21 +00:00
Files
snipe-it/tests/Feature/Console/ValidateAssetsTest.php
2026-04-13 10:33:55 +01:00

66 lines
2.3 KiB
PHP

<?php
namespace Tests\Feature\Console;
use App\Models\Asset;
use App\Models\User;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Str;
use Tests\TestCase;
class ValidateAssetsTest extends TestCase
{
public function test_it_only_outputs_invalid_assets_by_default(): void
{
[$validAsset, $invalidAsset] = $this->seedValidAndInvalidAssets();
Artisan::call('snipeit:validate-assets');
$output = Artisan::output();
$this->assertStringContainsString('Run this command with the --all option to see the full list in the console.', $output);
$this->assertStringContainsString($invalidAsset->asset_tag, $output);
$this->assertStringContainsString($invalidAsset->serial, $output);
$this->assertStringNotContainsString($validAsset->asset_tag, $output);
$this->assertStringNotContainsString($validAsset->serial, $output);
$this->assertStringNotContainsString('MessageBag', $output);
$this->assertStringContainsString('assigned type', strtolower($output));
}
public function test_it_outputs_all_assets_when_all_option_is_passed(): void
{
[$validAsset, $invalidAsset] = $this->seedValidAndInvalidAssets();
Artisan::call('snipeit:validate-assets', ['--all' => true]);
$output = Artisan::output();
$this->assertStringContainsString($invalidAsset->asset_tag, $output);
$this->assertStringContainsString($invalidAsset->serial, $output);
$this->assertStringContainsString($validAsset->asset_tag, $output);
$this->assertStringContainsString($validAsset->serial, $output);
}
/**
* @return array{0: Asset, 1: Asset}
*/
private function seedValidAndInvalidAssets(): array
{
$tagSuffix = (string) Str::uuid();
$validAsset = Asset::factory()->create([
'asset_tag' => 'GOOD-ASSET-'.$tagSuffix,
'serial' => 'GOOD-SERIAL-'.$tagSuffix,
]);
$invalidAsset = Asset::factory()
->canBeInvalidUponCreation()
->create([
'asset_tag' => 'BROKEN-ASSET-'.$tagSuffix,
'serial' => 'BROKEN-SERIAL-'.$tagSuffix,
'assigned_to' => User::factory()->create()->id,
'assigned_type' => null,
]);
return [$validAsset, $invalidAsset];
}
}