Merge pull request #7 from pestphp/feat/helpers

feat(helpers): adds helpers file
This commit is contained in:
Nuno Maduro
2020-05-15 02:12:12 +02:00
committed by GitHub
5 changed files with 37 additions and 5 deletions

View File

@ -22,6 +22,7 @@ final class LoadStructure
*/ */
private const STRUCTURE = [ private const STRUCTURE = [
'Datasets.php', 'Datasets.php',
'Helpers.php',
'Pest.php', 'Pest.php',
'Datasets', 'Datasets',
]; ];

View File

@ -33,18 +33,29 @@ final class PestInstallCommand extends Command
public function handle(): void public function handle(): void
{ {
/* @phpstan-ignore-next-line */ /* @phpstan-ignore-next-line */
$target = base_path('tests/Pest.php'); $pest = base_path('tests/Pest.php');
/* @phpstan-ignore-next-line */
$helpers = base_path('tests/Helpers.php');
if (File::exists($target)) { foreach ([$pest, $helpers] as $file) {
throw new InvalidConsoleArgument(sprintf('%s already exist', $target)); if (File::exists($file)) {
throw new InvalidConsoleArgument(sprintf('%s already exist', $file));
}
} }
File::copy(implode(DIRECTORY_SEPARATOR, [ File::copy(implode(DIRECTORY_SEPARATOR, [
dirname(__DIR__, 3), dirname(__DIR__, 3),
'stubs', 'stubs',
'Pest.php', 'Pest.php',
]), $target); ]), $pest);
File::copy(implode(DIRECTORY_SEPARATOR, [
dirname(__DIR__, 3),
'stubs',
'Helpers.php',
]), $helpers);
$this->output->success('`tests/Pest.php` created successfully.'); $this->output->success('`tests/Pest.php` created successfully.');
$this->output->success('`tests/Helpers.php` created successfully.');
} }
} }

12
stubs/Helpers.php Normal file
View File

@ -0,0 +1,12 @@
<?php
use Illuminate\Contracts\Auth\Authenticatable;
use Tests\TestCase;
/**
* Set the currently logged in user for the application.
*/
function actingAs(Authenticatable $user, string $driver = null): TestCase
{
return test()->actingAs($user, $driver);
}

View File

@ -6,7 +6,7 @@ interface Foo
} }
it('has bar', function () { it('has bar', function () {
$mock = Mockery::mock(Foo::class); $mock = mock(Foo::class);
$mock->shouldReceive('bar') $mock->shouldReceive('bar')
->times(1) ->times(1)
->andReturn(2); ->andReturn(2);

8
tests/Helpers.php Normal file
View File

@ -0,0 +1,8 @@
<?php
use Mockery\MockInterface;
function mock(string $class): MockInterface
{
return Mockery::mock($class);
}