3
0
mirror of https://github.com/snipe/snipe-it.git synced 2026-08-18 11:15:42 +00:00
Files
snipe-it/tests/Feature/Livewire/ReportTemplateSelectTest.php
2026-06-04 14:35:42 -07:00

57 lines
2.1 KiB
PHP

<?php
namespace Tests\Feature\Livewire;
use App\Livewire\ReportTemplateSelect;
use App\Models\ReportTemplate;
use App\Models\User;
use Livewire\Livewire;
use Tests\TestCase;
class ReportTemplateSelectTest extends TestCase
{
public function test_the_component_can_render()
{
Livewire::test(ReportTemplateSelect::class)->assertStatus(200);
}
public function test_scopes_to_user()
{
User::factory()
->has(ReportTemplate::factory(['type' => 'asset', 'name' => 'Another User: Asset']))
->has(ReportTemplate::factory(['type' => 'component', 'name' => 'Another User: Component']))
->create();
$actor = User::factory()->canViewReports()
->has(ReportTemplate::factory(['type' => 'asset', 'name' => 'User: Asset']))
->has(ReportTemplate::factory(['type' => 'component', 'name' => 'User: Component']))
->create();
Livewire::actingAs($actor)->test(ReportTemplateSelect::class)
->assertSet('templates', fn ($templates) => count($templates) === 2)
->assertDontSee('Another User');
}
public function test_scopes_to_provided_type()
{
$actor = User::factory()->canViewReports()
->has(ReportTemplate::factory(['type' => 'asset', 'name' => 'User Saved Asset Template']))
->has(ReportTemplate::factory(['type' => 'component', 'name' => 'User Saved Component Template']))
->create();
Livewire::actingAs($actor)->test(ReportTemplateSelect::class, ['type' => 'asset'])
->assertSet('templates', fn ($templates) => count($templates) === 1)
->assertSee('User Saved Asset Template')
->assertDontSee('User Saved Component Template');
}
public function test_includes_shared()
{
$template = ReportTemplate::factory()->shared()->create(['type' => 'asset', 'name' => 'Shared Asset Template']);
Livewire::actingAs(User::factory()->canViewReports()->create())
->test(ReportTemplateSelect::class, ['type' => 'asset'])
->assertSet('templates', fn ($templates) => $templates->contains($template));
}
}