makePartial(); $cfg->shouldReceive('get')->andReturnUsing(function (string $key, $default = null) use ($appUrl) { if ($key === 'app_url') { return $appUrl !== null && $appUrl !== '' ? $appUrl : $default; } return $default; }); return $cfg; } public function test_uses_request_host_without_settings(): void { $request = Request::create('https://boursemes.com/server/auth/login', 'POST'); $this->app->instance('request', $request); $host = $this->cfgWithAppUrl(null)->resolvePublicHost($request); $this->assertSame('boursemes.com', $host); } public function test_resolve_public_site_url_from_request(): void { $request = Request::create('https://boursemes.com/server/auth/login', 'POST'); $url = $this->cfgWithAppUrl(null)->resolvePublicSiteUrl($request); $this->assertSame('https://boursemes.com', $url); } public function test_prefers_app_url_over_api_request_host(): void { $request = Request::create('https://goldarvin.gholaktala.ir/server/customer/order', 'POST'); $this->app->instance('request', $request); $cfg = $this->cfgWithAppUrl('https://my.goldarvin.ir'); $this->assertSame('my.goldarvin.ir', $cfg->resolvePublicHost($request)); $this->assertSame('https://my.goldarvin.ir', $cfg->resolvePublicSiteUrl($request)); } public function test_app_url_without_scheme_gets_https(): void { $request = Request::create('https://goldarvin.gholaktala.ir/server/auth/login', 'POST'); $this->assertSame( 'https://my.goldarvin.ir', $this->cfgWithAppUrl('my.goldarvin.ir')->resolvePublicSiteUrl($request) ); } public function test_returns_empty_without_request(): void { $host = $this->cfgWithAppUrl(null)->resolvePublicHost(); $this->assertSame('', $host); } public function test_strips_www_prefix(): void { $request = Request::create('https://www.boursemes.com/server/auth/login', 'POST'); $host = $this->cfgWithAppUrl(null)->resolvePublicHost($request); $this->assertSame('boursemes.com', $host); } public function test_skips_localhost_request_host(): void { $request = Request::create('http://localhost/server/auth/login', 'POST'); $this->app->instance('request', $request); $host = $this->cfgWithAppUrl(null)->resolvePublicHost($request); $this->assertSame('', $host); } }