> $items */ function fakeNewsFeed(array $items): void { Http::fake([ 'projectsend.org/serve/news' => Http::response($items, 200), ]); } test('it fetches, sanitizes, and caches news items', function () { fakeNewsFeed([ [ 'title' => 'ProjectSend r2029 Released', 'date' => '28-03-2026', 'content' => "Some notes.\r\n\r\n changelog", 'link' => 'https://example.test/r2029', ], ]); $this->artisan('projectsend:fetch-news')->assertSuccessful(); $items = app(NewsItems::class)->current(); expect($items)->toHaveCount(1) ->and($items[0]['title'])->toBe('ProjectSend r2029 Released') ->and($items[0]['date'])->toBe('2026-03-28') ->and($items[0]['link'])->toBe('https://example.test/r2029') ->and($items[0]['content'])->not->toContain('