setLogoUrl(self::LOGO); $this->em->persist($withLogo); $withoutLogo = new Insurance('بیمه بی‌لوگو ' . random_int(1000, 9999), InsuranceType::Basic); $this->em->persist($withoutLogo); $clinic = new Clinic($this->createUser(['ROLE_USER', 'ROLE_CLINIC'])); $clinic->setName('کلینیک تست بیمه'); $clinic->getInsurances()->add($withLogo); $clinic->getInsurances()->add($withoutLogo); $this->em->persist($clinic); $this->em->flush(); return $clinic; } public function testClinicPayloadCarriesEachInsurerLogo(): void { $clinic = $this->makeClinicWithInsurances(); $list = $clinic->toDetailArray()['list_bime']; $urls = array_column($list, 'logo_url', 'name'); self::assertCount(2, $list); self::assertContains(self::LOGO, $urls); self::assertContains(null, $urls, 'بیمهٔ بدون لوگو باید null بدهد، نه کلید غایب'); } public function testPublicClinicEndpointExposesTheLogo(): void { $clinic = $this->makeClinicWithInsurances(); $this->client->request('GET', '/api/v1/clinic/' . $clinic->getUuid()); $body = json_decode($this->client->getResponse()->getContent(), true); $payload = $body['data']['data'] ?? $body['data']; self::assertContains(self::LOGO, array_column($payload['list_bime'], 'logo_url')); } }