feat: add Snipe-IT asset synchronization
This commit is contained in:
57
tests/Feature/SnipeItAdminTest.php
Normal file
57
tests/Feature/SnipeItAdminTest.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
use App\Domain\Identity\Enums\RoleName;
|
||||
use App\Domain\Identity\Models\Role;
|
||||
use App\Jobs\SyncSnipeAssets;
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Facades\Queue;
|
||||
use Inertia\Testing\AssertableInertia as Assert;
|
||||
|
||||
it('permite ao administrador consultar o diagnóstico Snipe-IT', function () {
|
||||
$administrator = User::factory()->create();
|
||||
$administrator->roles()->attach(Role::query()->create([
|
||||
'name' => RoleName::Administrator->value,
|
||||
'description' => 'Administração do portal.',
|
||||
]));
|
||||
|
||||
config()->set('services.snipe_it.url', 'https://inventory.example.test');
|
||||
config()->set('services.snipe_it.read_token', 'configured-token');
|
||||
|
||||
$this->actingAs($administrator)
|
||||
->get(route('admin.snipe-it.index'))
|
||||
->assertOk()
|
||||
->assertInertia(fn (Assert $page) => $page
|
||||
->component('admin/snipe-it')
|
||||
->where('configured', true)
|
||||
->where('assets.total', 0)
|
||||
->has('syncRuns', 0));
|
||||
});
|
||||
|
||||
it('impede um requisitante de consultar o diagnóstico', function () {
|
||||
$requester = User::factory()->create();
|
||||
$requester->roles()->attach(Role::query()->create([
|
||||
'name' => RoleName::Requester->value,
|
||||
'description' => 'Requisitante.',
|
||||
]));
|
||||
|
||||
$this->actingAs($requester)
|
||||
->get(route('admin.snipe-it.index'))
|
||||
->assertForbidden();
|
||||
});
|
||||
|
||||
it('coloca a sincronização manual na fila', function () {
|
||||
Queue::fake();
|
||||
|
||||
$administrator = User::factory()->create();
|
||||
$administrator->roles()->attach(Role::query()->create([
|
||||
'name' => RoleName::Administrator->value,
|
||||
'description' => 'Administração do portal.',
|
||||
]));
|
||||
|
||||
$this->actingAs($administrator)
|
||||
->post(route('admin.snipe-it.sync'))
|
||||
->assertRedirect()
|
||||
->assertSessionHas('success');
|
||||
|
||||
Queue::assertPushed(SyncSnipeAssets::class);
|
||||
});
|
||||
Reference in New Issue
Block a user