Skip to content

Commit

Permalink
laravel#152 Rename faking middleware classes and support passing argu…
Browse files Browse the repository at this point in the history
…ments upon fake initialization
  • Loading branch information
NoelDeMartin committed Feb 20, 2018
1 parent ef4900e commit 68d77d0
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 13 deletions.
8 changes: 6 additions & 2 deletions src/Concerns/FakesFacades.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,15 @@ trait FakesFacades
* Fake a facade and return the fake proxy.
*
* @param string $facade
* @param mixed[] ...$arguments
* @return \Laravel\Dusk\Faking\FacadeFakeProxy
*/
public function fake(string $facade)
public function fake(string $facade, ...$arguments)
{
$this->visit('/_dusk/fake/'.urlencode($facade));
$this->visit(
'/_dusk/fake/'.urlencode($facade).
'?arguments='.urlencode(json_encode($arguments))
);

return new FacadeFakeProxy($this, $facade);
}
Expand Down
8 changes: 4 additions & 4 deletions src/DuskServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
use Illuminate\Support\Facades\Route;
use Laravel\Dusk\Faking\FakingManager;
use Illuminate\Support\ServiceProvider;
use Laravel\Dusk\Http\Middleware\SaveFaking;
use Laravel\Dusk\Http\Middleware\StartFaking;
use Laravel\Dusk\Http\Middleware\SaveFacadeFakes;
use Laravel\Dusk\Http\Controllers\FakingController;
use Illuminate\Contracts\Http\Kernel as HttpKernel;
use Laravel\Dusk\Http\Middleware\StartFakingFacades;

class DuskServiceProvider extends ServiceProvider
{
Expand Down Expand Up @@ -50,8 +50,8 @@ public function register()
]);
} else {
$kernel = $this->app->make(HttpKernel::class);
$kernel->pushMiddleware(StartFaking::class);
$kernel->pushMiddleware(SaveFaking::class);
$kernel->pushMiddleware(StartFakingFacades::class);
$kernel->pushMiddleware(SaveFacadeFakes::class);
}

}
Expand Down
10 changes: 6 additions & 4 deletions src/Faking/Driver.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,13 @@ public function save(Response $response)
* Replace facade instance with a fake.
*
* @param string $facade
* @param mixed[] ...$arguments
* @return void
*/
public function fake(string $facade)
public function fake(string $facade, ...$arguments)
{
if (!$this->has($facade)) {
$fake = $this->createFake($facade);
$fake = $this->createFake($facade, ...$arguments);
$facade::swap($fake);
$this->fakes[$facade] = $fake;
}
Expand Down Expand Up @@ -90,11 +91,12 @@ public function unserialize(string $serializedFake)
* Create a facade fake.
*
* @param $facade string
* @param mixed[] ...$arguments
* @return mixed
*/
protected function createFake(string $facade)
protected function createFake(string $facade, ...$arguments)
{
$facade::fake();
$facade::fake(...$arguments);

return $facade::getFacadeRoot();
}
Expand Down
3 changes: 2 additions & 1 deletion src/Http/Controllers/FakingController.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ class FakingController
*/
public function fake(string $facade)
{
Faking::fake($facade);
$arguments = json_decode(request('arguments'));
Faking::fake($facade, ...$arguments);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Closure;
use Laravel\Dusk\Facades\Faking;

class SaveFaking
class SaveFacadeFakes
{
/**
* Handle an incoming request.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Closure;
use Laravel\Dusk\Facades\Faking;

class StartFaking
class StartFakingFacades
{
/**
* Handle an incoming request.
Expand Down

0 comments on commit 68d77d0

Please sign in to comment.