Skip to content

Commit

Permalink
Merge pull request #97 from gbradley/main
Browse files Browse the repository at this point in the history
Changed getSiteLink to use protocol based on sslRequired variable
  • Loading branch information
mehrancodes authored Apr 5, 2024
2 parents c62fcfb + d368f44 commit 81cc502
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 1 deletion.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@
/.vagrant
.phpunit.result.cache
.env
.DS_Store
2 changes: 1 addition & 1 deletion app/Services/Forge/ForgeService.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
49 changes: 49 additions & 0 deletions tests/Unit/Services/Forge/ForgeServiceTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php

use App\Services\Forge\ForgeService;
use App\Services\Forge\ForgeSetting;
use Laravel\Forge\Forge;
use Laravel\Forge\Resources\Site;

test('it gets the site link using the environment URL when explicity provided', function () {

$setting = Mockery::mock(ForgeSetting::class);
$setting->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');
});

0 comments on commit 81cc502

Please sign in to comment.