trove/tests/Feature/PollFailedIntegrationTest.php

33 lines
905 B
PHP

<?php
declare(strict_types=1);
namespace Tests\Feature;
use Illuminate\Support\Facades\Http;
use Lvl0\FediDiscover\Actions\PollFediverseAction;
use Lvl0\FediDiscover\Config\InstanceType;
use Lvl0\FediDiscover\Models\Instance;
use RuntimeException;
class PollFailedIntegrationTest extends TestCase
{
public function test_poll_failure_increments_consecutive_poll_failures_via_full_chain(): void
{
Http::fake();
$instance = Instance::factory()
->type(InstanceType::Mastodon)
->enabled()
->create(['consecutive_poll_failures' => 0]);
$this->mock(PollFediverseAction::class)
->shouldReceive('execute')
->once()
->andThrow(new RuntimeException('connection refused'));
$this->artisan('fedi-discover:poll');
$this->assertSame(1, $instance->fresh()->consecutive_poll_failures);
}
}