Merge pull request #1174 from ClaraLeigh/feat/presets

feature(presets): Add security preset
This commit is contained in:
Nuno Maduro
2024-06-10 11:13:50 +01:00
committed by GitHub
3 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,29 @@
<?php
declare(strict_types=1);
namespace Pest\ArchPresets;
/**
* @internal
*/
final class Security extends AbstractPreset
{
/**
* Executes the arch preset.
*/
public function execute(): void
{
$this->expectations[] = expect([
'md5',
'sha1',
'uniqid',
'rand',
'mt_rand',
'tempnam',
'str_shuffle',
'shuffle',
'array_rand'
])->not->toBeUsed();
}
}

View File

@ -8,6 +8,7 @@ use Pest\Arch\Support\Composer;
use Pest\ArchPresets\AbstractPreset; use Pest\ArchPresets\AbstractPreset;
use Pest\ArchPresets\Base; use Pest\ArchPresets\Base;
use Pest\ArchPresets\Strict; use Pest\ArchPresets\Strict;
use Pest\ArchPresets\Security;
use Pest\PendingCalls\TestCall; use Pest\PendingCalls\TestCall;
use stdClass; use stdClass;
@ -47,6 +48,14 @@ final class Preset
return $this->executePreset(new Strict($this->baseNamespaces())); return $this->executePreset(new Strict($this->baseNamespaces()));
} }
/**
* Uses the Pest security preset and returns the test call instance.
*/
public function security(): AbstractPreset
{
return $this->executePreset(new Security($this->baseNamespaces()));
}
/** /**
* Executes the given preset. * Executes the given preset.
* *

View File

@ -11,6 +11,8 @@ arch()->preset()->base()->ignoring([
arch()->preset()->strict(); arch()->preset()->strict();
arch()->preset()->security();
arch('globals') arch('globals')
->expect(['dd', 'dump', 'ray', 'die', 'var_dump', 'sleep']) ->expect(['dd', 'dump', 'ray', 'die', 'var_dump', 'sleep'])
->not->toBeUsed() ->not->toBeUsed()