diff --git a/packages/Lvl0/FediDiscover/src/Actions/PollFediverseAction.php b/packages/Lvl0/FediDiscover/src/Actions/PollFediverseAction.php index 34cadb5..d55da41 100644 --- a/packages/Lvl0/FediDiscover/src/Actions/PollFediverseAction.php +++ b/packages/Lvl0/FediDiscover/src/Actions/PollFediverseAction.php @@ -5,7 +5,6 @@ namespace Lvl0\FediDiscover\Actions; use Carbon\CarbonImmutable; -use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; use Lvl0\FediDiscover\Clients\FediverseClientFactory; use Lvl0\FediDiscover\Events\UrlDiscovered; @@ -44,6 +43,7 @@ public function execute(Instance $instance): void $instance->last_seen_id = $posts->first()->cursorId; } + $instance->consecutive_poll_failures = 0; $instance->last_polled_at = now(); $instance->save(); diff --git a/packages/Lvl0/FediDiscover/tests/Feature/PollFediverseActionTest.php b/packages/Lvl0/FediDiscover/tests/Feature/PollFediverseActionTest.php index 8524fb4..0056d44 100644 --- a/packages/Lvl0/FediDiscover/tests/Feature/PollFediverseActionTest.php +++ b/packages/Lvl0/FediDiscover/tests/Feature/PollFediverseActionTest.php @@ -199,6 +199,15 @@ public function test_it_leaves_last_seen_id_unchanged_when_no_posts_are_returned $this->assertSame('500', $instance->fresh()->last_seen_id); } + public function test_consecutive_poll_failures_reset_to_zero_after_successful_poll(): void + { + $instance = $this->makeInstance(['consecutive_poll_failures' => 5]); + + $this->pollInstance($instance, []); + + $this->assertSame(0, $instance->fresh()->consecutive_poll_failures); + } + public function test_poll_logs_a_structured_success_entry_with_url_count_and_duration(): void { Log::spy();