Merge pull request #297 from owenvoke/bugfix/laravel-commands

fix: resolve test directory before function call
This commit is contained in:
Nuno Maduro
2021-05-14 10:17:51 +01:00
committed by GitHub
3 changed files with 18 additions and 4 deletions

View File

@ -9,6 +9,7 @@ use Illuminate\Support\Facades\File;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Pest\Exceptions\InvalidConsoleArgument; use Pest\Exceptions\InvalidConsoleArgument;
use function Pest\testDirectory; use function Pest\testDirectory;
use Pest\TestSuite;
/** /**
* @internal * @internal
@ -20,7 +21,8 @@ final class PestDatasetCommand extends Command
* *
* @var string * @var string
*/ */
protected $signature = 'pest:dataset {name : The name of the dataset}'; protected $signature = 'pest:dataset {name : The name of the dataset}
{--test-directory=tests : The name of the tests directory}';
/** /**
* The console command description. * The console command description.
@ -34,6 +36,9 @@ final class PestDatasetCommand extends Command
*/ */
public function handle(): void public function handle(): void
{ {
/* @phpstan-ignore-next-line */
TestSuite::getInstance(base_path(), $this->option('test-directory'));
/** @var string $name */ /** @var string $name */
$name = $this->argument('name'); $name = $this->argument('name');

View File

@ -9,6 +9,7 @@ use Illuminate\Support\Facades\File;
use Pest\Console\Thanks; use Pest\Console\Thanks;
use Pest\Exceptions\InvalidConsoleArgument; use Pest\Exceptions\InvalidConsoleArgument;
use function Pest\testDirectory; use function Pest\testDirectory;
use Pest\TestSuite;
/** /**
* @internal * @internal
@ -20,7 +21,7 @@ final class PestInstallCommand extends Command
* *
* @var string * @var string
*/ */
protected $signature = 'pest:install'; protected $signature = 'pest:install {--test-directory=tests : The name of the tests directory}';
/** /**
* The console command description. * The console command description.
@ -34,6 +35,9 @@ final class PestInstallCommand extends Command
*/ */
public function handle(): void public function handle(): void
{ {
/* @phpstan-ignore-next-line */
TestSuite::getInstance(base_path(), $this->option('test-directory'));
/* @phpstan-ignore-next-line */ /* @phpstan-ignore-next-line */
$pest = base_path(testDirectory('Pest.php')); $pest = base_path(testDirectory('Pest.php'));
$stubs = 'stubs/Laravel'; $stubs = 'stubs/Laravel';

View File

@ -9,6 +9,7 @@ use Illuminate\Support\Facades\File;
use Pest\Exceptions\InvalidConsoleArgument; use Pest\Exceptions\InvalidConsoleArgument;
use Pest\Support\Str; use Pest\Support\Str;
use function Pest\testDirectory; use function Pest\testDirectory;
use Pest\TestSuite;
/** /**
* @internal * @internal
@ -20,7 +21,7 @@ final class PestTestCommand extends Command
* *
* @var string * @var string
*/ */
protected $signature = 'pest:test {name : The name of the file} {--unit : Create a unit test} {--dusk : Create a Dusk test}'; protected $signature = 'pest:test {name : The name of the file} {--unit : Create a unit test} {--dusk : Create a Dusk test} {--test-directory=tests : The name of the tests directory}';
/** /**
* The console command description. * The console command description.
@ -34,12 +35,16 @@ final class PestTestCommand extends Command
*/ */
public function handle(): void public function handle(): void
{ {
/* @phpstan-ignore-next-line */
TestSuite::getInstance(base_path(), $this->option('test-directory'));
/** @var string $name */ /** @var string $name */
$name = $this->argument('name'); $name = $this->argument('name');
$type = ((bool) $this->option('unit')) ? 'Unit' : (((bool) $this->option('dusk')) ? 'Browser' : 'Feature'); $type = ((bool) $this->option('unit')) ? 'Unit' : (((bool) $this->option('dusk')) ? 'Browser' : 'Feature');
$relativePath = sprintf(testDirectory('%s/%s.php'), $relativePath = sprintf(
testDirectory('%s/%s.php'),
$type, $type,
ucfirst($name) ucfirst($name)
); );