createUser(), 100_000, 'mellat', Payment::TYPE_SUBSCRIPTION, $frontendAddress); $this->stampTenant($payment); $this->em->persist($payment); $this->em->flush(); return $payment; } private function admin(): \App\Auth\Entity\User { return $this->createUser(['ROLE_USER', 'ROLE_ADMIN']); } public function testListExposesTheOriginDomain(): void { $payment = $this->makePayment('https://nobat724.com/payment/result'); $body = $this->authJson('GET', '/api/v1/admin/payments?limit=100', $this->admin()); $row = current(array_filter($body['data'], fn(array $r) => $r['uuid'] === $payment->getUuid())); self::assertSame('nobat724.com', $row['origin']); } public function testWwwAndCaseAreNormalisedSoOneDomainIsOneValue(): void { $payment = $this->makePayment('https://WWW.Nobat724.com/payment/result'); $body = $this->authJson('GET', '/api/v1/admin/payments/' . $payment->getUuid(), $this->admin()); self::assertSame('nobat724.com', $body['data']['origin']); self::assertSame('https://WWW.Nobat724.com/payment/result', $body['data']['frontend_address']); } public function testPaymentWithoutAReturnAddressHasNoOrigin(): void { $payment = $this->makePayment(''); $body = $this->authJson('GET', '/api/v1/admin/payments/' . $payment->getUuid(), $this->admin()); self::assertNull($body['data']['origin']); } public function testSearchMatchesTheOriginDomain(): void { $wanted = $this->makePayment('https://yasuj-nobat.ir/payment/result'); $other = $this->makePayment('https://nobat724.com/payment/result'); $body = $this->authJson('GET', '/api/v1/admin/payments?limit=100&search=yasuj-nobat.ir', $this->admin()); $uuids = array_column($body['data'], 'uuid'); self::assertContains($wanted->getUuid(), $uuids); self::assertNotContains($other->getUuid(), $uuids); } }