get(EntityManagerInterface::class) ->createQueryBuilder(); $personIds = $qb ->from(Person::class, 'p') ->join('p.accompanyingPeriodParticipations', 'part') ->join('part.accompanyingPeriod', 'period') ->join('p.center', 'center') ->select('p.id') ->where($qb->expr()->eq('center.name', ':center')) ->setParameter('center', 'Center A') ->setMaxResults(1000) ->getQuery() ->getResult(); shuffle($personIds); yield [array_pop($personIds)['id']]; yield [array_pop($personIds)['id']]; yield [array_pop($personIds)['id']]; } /** * @dataProvider provideDataPersonWithAccompanyingPeriod */ public function testEntriesAreShown(mixed $personId): never { $this->markTestSkipped('page does not work'); $client = $this->getClientAuthenticated(); $crawler = $client->request('GET', "/en/person/{$personId}/timeline"); $this->assertTrue( $client->getResponse()->isSuccessful(), 'the timeline page loads sucessfully' ); $this->assertGreaterThan( 0, $crawler->filter('.timeline div')->count(), 'the timeline page contains multiple div inside a .timeline element' ); $this->assertStringContainsString( 'est ouvert', $crawler->filter('.timeline')->text(), "the text 'est ouvert' is present" ); } }