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); });