diff --git a/cli/Valet/Caddy.php b/cli/Valet/Caddy.php index 5f1ed02..60e9a96 100644 --- a/cli/Valet/Caddy.php +++ b/cli/Valet/Caddy.php @@ -2,13 +2,12 @@ namespace Valet; -use Configuration as ConfigurationFacade; -use Site as SiteFacade; - class Caddy { var $cli; var $files; + var $configuration; + var $site; var $daemonPath = '/Library/LaunchDaemons/com.laravel.valetServer.plist'; /** @@ -17,10 +16,12 @@ class Caddy * @param CommandLine $cli * @param Filesystem $files */ - function __construct(CommandLine $cli, Filesystem $files) + function __construct(CommandLine $cli, Filesystem $files, Configuration $configuration, Site $site) { $this->cli = $cli; $this->files = $files; + $this->configuration = $configuration; + $this->site = $site; } /** @@ -77,8 +78,8 @@ function installCaddyDirectory() */ function rewriteSecureCaddyFiles() { - $domain = ConfigurationFacade::read()['domain']; - SiteFacade::resecureForNewDomain($domain, $domain); + $domain = $this->configuration->read()['domain']; + $this->site->resecureForNewDomain('dev', 'dev'); } /** diff --git a/cli/valet.php b/cli/valet.php index 2f9ab23..fe2671b 100755 --- a/cli/valet.php +++ b/cli/valet.php @@ -18,7 +18,7 @@ */ Container::setInstance(new Container); -$version = '1.1.20'; +$version = '1.2.0-alpha'; $app = new Application('Laravel Valet', $version); diff --git a/tests/CaddyTest.php b/tests/CaddyTest.php index 0ae6ecc..7c6ada1 100644 --- a/tests/CaddyTest.php +++ b/tests/CaddyTest.php @@ -1,7 +1,9 @@ shouldReceive('putAsUser')->andReturnUsing(function ($path, $contents) { $this->assertSame(VALET_HOME_PATH.'/Caddyfile', $path); $this->assertTrue(strpos($contents, 'import '.VALET_HOME_PATH.'/Caddy/*') !== false); - }); + })->once(); swap(Filesystem::class, $files); + $caddy = resolve(Caddy::class); $caddy->installCaddyFile(); } @@ -39,12 +42,14 @@ public function test_install_caddy_directories_creates_location_for_site_specifi { $files = Mockery::mock(Filesystem::class); $files->shouldReceive('isDir')->with(VALET_HOME_PATH.'/Caddy')->andReturn(false); - $files->shouldReceive('mkdirAsUser')->with(VALET_HOME_PATH.'/Caddy'); - $files->shouldReceive('touchAsUser')->with(VALET_HOME_PATH.'/Caddy/.keep'); + $files->shouldReceive('mkdirAsUser')->with(VALET_HOME_PATH.'/Caddy')->once(); + $files->shouldReceive('touchAsUser')->with(VALET_HOME_PATH.'/Caddy/.keep')->once(); swap(Filesystem::class, $files); - $caddy = resolve(Caddy::class); + swap(Configuration::class, Mockery::spy(Configuration::class)); + swap(Site::class, Mockery::spy(Site::class)); + $caddy = resolve(Caddy::class); $caddy->installCaddyDirectory(); } @@ -57,23 +62,46 @@ public function test_caddy_directory_is_never_created_if_it_already_exists() $files->shouldReceive('touchAsUser')->with(VALET_HOME_PATH.'/Caddy/.keep'); swap(Filesystem::class, $files); - $caddy = resolve(Caddy::class); + swap(Configuration::class, Mockery::spy(Configuration::class)); + swap(Site::class, Mockery::spy(Site::class)); + $caddy = resolve(Caddy::class); $caddy->installCaddyDirectory(); } + public function test_install_caddy_directories_rewrites_secure_caddy_files() + { + $files = Mockery::mock(Filesystem::class); + $files->shouldReceive('isDir')->with(VALET_HOME_PATH.'/Caddy')->andReturn(false); + $files->shouldReceive('mkdirAsUser')->with(VALET_HOME_PATH.'/Caddy'); + $files->shouldReceive('touchAsUser')->with(VALET_HOME_PATH.'/Caddy/.keep'); + + swap(Filesystem::class, $files); + swap(Configuration::class, $config = Mockery::spy(Configuration::class, ['read' => ['domain' => 'dev']])); + swap(Site::class, $site = Mockery::spy(Site::class)); + + $caddy = resolve(Caddy::class); + $caddy->installCaddyDirectory(); + + $site->shouldHaveReceived('resecureForNewDomain', ['dev', 'dev']); + } + + public function test_caddy_daemon_is_placed_in_correct_location() { $files = Mockery::mock(Filesystem::class.'[put]'); swap(Filesystem::class, $files); + swap(Configuration::class, Mockery::spy(Configuration::class)); + swap(Site::class, Mockery::spy(Site::class)); + $caddy = resolve(Caddy::class); $files->shouldReceive('put')->andReturnUsing(function ($path, $contents) use ($caddy) { $this->assertSame($caddy->daemonPath, $path); $this->assertTrue(strpos($contents, VALET_HOME_PATH) !== false); - }); + })->once(); $caddy->installCaddyDaemon(); }