<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 25"data-bs-content="<ul><li class="danger">Tests\Feature\JobsAndEventsTest::test_article_discovery_for_feed_job_processes_feed</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="25"href="#25">25</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">LogSaver</span><spanclass="default">::</span><spanclass="default">info</span><spanclass="keyword">(</span><spanclass="default">'Starting feed article fetch'</span><spanclass="keyword">,</span><spanclass="default"> </span><spanclass="default">null</span><spanclass="keyword">,</span><spanclass="default"> </span><spanclass="keyword">[</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 26"data-bs-content="<ul><li class="danger">Tests\Feature\JobsAndEventsTest::test_article_discovery_for_feed_job_processes_feed</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="26"href="#26">26</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">'feed_id'</span><spanclass="default"> </span><spanclass="default">=></span><spanclass="default"> </span><spanclass="default">$this</span><spanclass="default">-></span><spanclass="default">feed</span><spanclass="default">-></span><spanclass="default">id</span><spanclass="keyword">,</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 27"data-bs-content="<ul><li class="danger">Tests\Feature\JobsAndEventsTest::test_article_discovery_for_feed_job_processes_feed</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="27"href="#27">27</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">'feed_name'</span><spanclass="default"> </span><spanclass="default">=></span><spanclass="default"> </span><spanclass="default">$this</span><spanclass="default">-></span><spanclass="default">feed</span><spanclass="default">-></span><spanclass="default">name</span><spanclass="keyword">,</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 28"data-bs-content="<ul><li class="danger">Tests\Feature\JobsAndEventsTest::test_article_discovery_for_feed_job_processes_feed</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="28"href="#28">28</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">'feed_url'</span><spanclass="default"> </span><spanclass="default">=></span><spanclass="default"> </span><spanclass="default">$this</span><spanclass="default">-></span><spanclass="default">feed</span><spanclass="default">-></span><spanclass="default">url</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 29"data-bs-content="<ul><li class="danger">Tests\Feature\JobsAndEventsTest::test_article_discovery_for_feed_job_processes_feed</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="29"href="#29">29</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="keyword">]</span><spanclass="keyword">)</span><spanclass="keyword">;</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 31"data-bs-content="<ul><li class="danger">Tests\Feature\JobsAndEventsTest::test_article_discovery_for_feed_job_processes_feed</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="31"href="#31">31</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">$articles</span><spanclass="default"> </span><spanclass="keyword">=</span><spanclass="default"> </span><spanclass="default">ArticleFetcher</span><spanclass="default">::</span><spanclass="default">getArticlesFromFeed</span><spanclass="keyword">(</span><spanclass="default">$this</span><spanclass="default">-></span><spanclass="default">feed</span><spanclass="keyword">)</span><spanclass="keyword">;</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 33"data-bs-content="<ul><li class="danger">Tests\Feature\JobsAndEventsTest::test_article_discovery_for_feed_job_processes_feed</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="33"href="#33">33</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">LogSaver</span><spanclass="default">::</span><spanclass="default">info</span><spanclass="keyword">(</span><spanclass="default">'Feed article fetch completed'</span><spanclass="keyword">,</span><spanclass="default"> </span><spanclass="default">null</span><spanclass="keyword">,</span><spanclass="default"> </span><spanclass="keyword">[</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 34"data-bs-content="<ul><li class="danger">Tests\Feature\JobsAndEventsTest::test_article_discovery_for_feed_job_processes_feed</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="34"href="#34">34</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">'feed_id'</span><spanclass="default"> </span><spanclass="default">=></span><spanclass="default"> </span><spanclass="default">$this</span><spanclass="default">-></span><spanclass="default">feed</span><spanclass="default">-></span><spanclass="default">id</span><spanclass="keyword">,</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 35"data-bs-content="<ul><li class="danger">Tests\Feature\JobsAndEventsTest::test_article_discovery_for_feed_job_processes_feed</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="35"href="#35">35</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">'feed_name'</span><spanclass="default"> </span><spanclass="default">=></span><spanclass="default"> </span><spanclass="default">$this</span><spanclass="default">-></span><spanclass="default">feed</span><spanclass="default">-></span><spanclass="default">name</span><spanclass="keyword">,</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 36"data-bs-content="<ul><li class="danger">Tests\Feature\JobsAndEventsTest::test_article_discovery_for_feed_job_processes_feed</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="36"href="#36">36</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">'articles_count'</span><spanclass="default"> </span><spanclass="default">=></span><spanclass="default"> </span><spanclass="default">$articles</span><spanclass="default">-></span><spanclass="default">count</span><spanclass="keyword">(</span><spanclass="keyword">)</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 37"data-bs-content="<ul><li class="danger">Tests\Feature\JobsAndEventsTest::test_article_discovery_for_feed_job_processes_feed</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="37"href="#37">37</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="keyword">]</span><spanclass="keyword">)</span><spanclass="keyword">;</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 39"data-bs-content="<ul><li class="danger">Tests\Feature\JobsAndEventsTest::test_article_discovery_for_feed_job_processes_feed</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="39"href="#39">39</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">$this</span><spanclass="default">-></span><spanclass="default">feed</span><spanclass="default">-></span><spanclass="default">update</span><spanclass="keyword">(</span><spanclass="keyword">[</span><spanclass="default">'last_fetched_at'</span><spanclass="default"> </span><spanclass="default">=></span><spanclass="default"> </span><spanclass="default">now</span><spanclass="keyword">(</span><spanclass="keyword">)</span><spanclass="keyword">]</span><spanclass="keyword">)</span><spanclass="keyword">;</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 44"data-bs-content="<ul><li class="covered-by-large-tests">Tests\Feature\JobsAndEventsTest::test_article_discovery_job_processes_successfully</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="44"href="#44">44</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">Feed</span><spanclass="default">::</span><spanclass="default">where</span><spanclass="keyword">(</span><spanclass="default">'is_active'</span><spanclass="keyword">,</span><spanclass="default"> </span><spanclass="default">true</span><spanclass="keyword">)</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 45"data-bs-content="<ul><li class="covered-by-large-tests">Tests\Feature\JobsAndEventsTest::test_article_discovery_job_processes_successfully</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="45"href="#45">45</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">-></span><spanclass="default">get</span><spanclass="keyword">(</span><spanclass="keyword">)</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 46"data-bs-content="<ul><li class="covered-by-large-tests">Tests\Feature\JobsAndEventsTest::test_article_discovery_job_processes_successfully</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="46"href="#46">46</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">-></span><spanclass="default">each</span><spanclass="keyword">(</span><spanclass="keyword">function</span><spanclass="default"> </span><spanclass="keyword">(</span><spanclass="default">Feed</span><spanclass="default"> </span><spanclass="default">$feed</span><spanclass="keyword">,</span><spanclass="default"> </span><spanclass="default">$index</span><spanclass="keyword">)</span><spanclass="default"> </span><spanclass="keyword">{</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 48"data-bs-content="<ul><li class="covered-by-large-tests">Tests\Feature\JobsAndEventsTest::test_article_discovery_job_processes_successfully</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="48"href="#48">48</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">$delayMinutes</span><spanclass="default"> </span><spanclass="keyword">=</span><spanclass="default"> </span><spanclass="default">$index</span><spanclass="default"> </span><spanclass="keyword">*</span><spanclass="default"> </span><spanclass="default">self</span><spanclass="default">::</span><spanclass="default">FEED_DISCOVERY_DELAY_MINUTES</span><spanclass="keyword">;</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 50"data-bs-content="<ul><li class="covered-by-large-tests">Tests\Feature\JobsAndEventsTest::test_article_discovery_job_processes_successfully</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="50"href="#50">50</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">self</span><spanclass="default">::</span><spanclass="default">dispatch</span><spanclass="keyword">(</span><spanclass="default">$feed</span><spanclass="keyword">)</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 51"data-bs-content="<ul><li class="covered-by-large-tests">Tests\Feature\JobsAndEventsTest::test_article_discovery_job_processes_successfully</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="51"href="#51">51</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">-></span><spanclass="default">delay</span><spanclass="keyword">(</span><spanclass="default">now</span><spanclass="keyword">(</span><spanclass="keyword">)</span><spanclass="default">-></span><spanclass="default">addMinutes</span><spanclass="keyword">(</span><spanclass="default">$delayMinutes</span><spanclass="keyword">)</span><spanclass="keyword">)</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 52"data-bs-content="<ul><li class="covered-by-large-tests">Tests\Feature\JobsAndEventsTest::test_article_discovery_job_processes_successfully</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="52"href="#52">52</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">-></span><spanclass="default">onQueue</span><spanclass="keyword">(</span><spanclass="default">'feed-discovery'</span><spanclass="keyword">)</span><spanclass="keyword">;</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 54"data-bs-content="<ul><li class="covered-by-large-tests">Tests\Feature\JobsAndEventsTest::test_article_discovery_job_processes_successfully</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="54"href="#54">54</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">LogSaver</span><spanclass="default">::</span><spanclass="default">info</span><spanclass="keyword">(</span><spanclass="default">'Dispatched feed discovery job'</span><spanclass="keyword">,</span><spanclass="default"> </span><spanclass="default">null</span><spanclass="keyword">,</span><spanclass="default"> </span><spanclass="keyword">[</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 55"data-bs-content="<ul><li class="covered-by-large-tests">Tests\Feature\JobsAndEventsTest::test_article_discovery_job_processes_successfully</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="55"href="#55">55</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">'feed_id'</span><spanclass="default"> </span><spanclass="default">=></span><spanclass="default"> </span><spanclass="default">$feed</span><spanclass="default">-></span><spanclass="default">id</span><spanclass="keyword">,</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 56"data-bs-content="<ul><li class="covered-by-large-tests">Tests\Feature\JobsAndEventsTest::test_article_discovery_job_processes_successfully</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="56"href="#56">56</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">'feed_name'</span><spanclass="default"> </span><spanclass="default">=></span><spanclass="default"> </span><spanclass="default">$feed</span><spanclass="default">-></span><spanclass="default">name</span><spanclass="keyword">,</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 57"data-bs-content="<ul><li class="covered-by-large-tests">Tests\Feature\JobsAndEventsTest::test_article_discovery_job_processes_successfully</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="57"href="#57">57</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="default">'delay_minutes'</span><spanclass="default"> </span><spanclass="default">=></span><spanclass="default"> </span><spanclass="default">$delayMinutes</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 58"data-bs-content="<ul><li class="covered-by-large-tests">Tests\Feature\JobsAndEventsTest::test_article_discovery_job_processes_successfully</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="58"href="#58">58</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="keyword">]</span><spanclass="keyword">)</span><spanclass="keyword">;</span></td></tr>
<trclass="covered-by-large-tests popin d-flex"><tddata-bs-title="1 test covers line 59"data-bs-content="<ul><li class="covered-by-large-tests">Tests\Feature\JobsAndEventsTest::test_article_discovery_job_processes_successfully</li></ul>"data-bs-placement="top"data-bs-html="true"class="col-1 text-end"><aid="59"href="#59">59</a></td><tdclass="col-11 codeLine"><spanclass="default"> </span><spanclass="keyword">}</span><spanclass="keyword">)</span><spanclass="keyword">;</span></td></tr>
<p><spanclass="legend covered-by-small-tests">Covered by small (and larger) tests</span><spanclass="legend covered-by-medium-tests">Covered by medium (and large) tests</span><spanclass="legend covered-by-large-tests">Covered by large tests (and tests of unknown size)</span><spanclass="legend not-covered">Not covered</span><spanclass="legend not-coverable">Not coverable</span></p>
<small>Generated by <ahref="https://github.com/sebastianbergmann/php-code-coverage"target="_top">php-code-coverage 11.0.10</a> using <ahref="https://www.php.net/"target="_top">PHP 8.4.10</a> and <ahref="https://phpunit.de/">PHPUnit 11.5.28</a> at Sun Aug 3 19:15:34 UTC 2025.</small>