diff --git a/.gitignore b/.gitignore index 353fb79..2b2cadd 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /.vagrant .phpunit.result.cache .env +.DS_Store \ No newline at end of file diff --git a/app/Services/Forge/ForgeService.php b/app/Services/Forge/ForgeService.php index c866b17..10a825d 100644 --- a/app/Services/Forge/ForgeService.php +++ b/app/Services/Forge/ForgeService.php @@ -142,7 +142,7 @@ public function getSiteLink(): string return $this->setting->environmentUrl; } - return ($this->site->isSecured ? 'https://' : 'http://').$this->site->name; + return ($this->setting->sslRequired ? 'https://' : 'http://').$this->site->name; } public function siteDirectory(): string diff --git a/tests/Unit/Services/Forge/ForgeServiceTest.php b/tests/Unit/Services/Forge/ForgeServiceTest.php new file mode 100644 index 0000000..3046c4a --- /dev/null +++ b/tests/Unit/Services/Forge/ForgeServiceTest.php @@ -0,0 +1,49 @@ +environmentUrl = 'https://foo.bar'; + $setting->timeoutSeconds = 0; + + $service = new ForgeService($setting, new Forge); + + expect($service->getSiteLink())->toBe('https://foo.bar'); +}); + +test('it gets the site link using HTTPS when SSL is required', function () { + + $setting = Mockery::mock(ForgeSetting::class); + $setting->environmentUrl = null; + $setting->sslRequired = true; + $setting->timeoutSeconds = 0; + + $service = new ForgeService($setting, new Forge); + + $site = mock(Site::class); + $site->name = 'foo.bar'; + $service->setSite($site); + + expect($service->getSiteLink())->toBe('https://foo.bar'); +}); + +test('it gets the site link using HTTP when SSL is not required', function () { + + $setting = Mockery::mock(ForgeSetting::class); + $setting->environmentUrl = null; + $setting->sslRequired = false; + $setting->timeoutSeconds = 0; + + $service = new ForgeService($setting, new Forge); + + $site = mock(Site::class); + $site->name = 'foo.bar'; + $service->setSite($site); + + expect($service->getSiteLink())->toBe('http://foo.bar'); +});