Skip to content

Commit

Permalink
Specify all required files explicitly in given order and test all lib…
Browse files Browse the repository at this point in the history
…s loaded

Alphabetical order, coincidentally.

Partially reverts #204 commit 6bf2f2b

Close #211
  • Loading branch information
spaze committed Jul 25, 2023
1 parent 5e92127 commit 3816596
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 8 deletions.
29 changes: 29 additions & 0 deletions tests/BootstrapTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php
declare(strict_types = 1);

namespace Spaze\PHPStan\Rules\Disallowed;

use FilesystemIterator;
use PHPStan\Testing\PHPStanTestCase;
use RecursiveDirectoryIterator;
use RecursiveIteratorIterator;

class BootstrapTest extends PHPStanTestCase
{

public function testBootstrapRequiresAllLibs(): void
{
$allRequired = get_required_files();
$notRequired = [];
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__ . '/libs', FilesystemIterator::SKIP_DOTS));
foreach ($iterator as $fileInfo) {
if ($fileInfo->getExtension() === 'php') {
if (!in_array($this->getFileHelper()->normalizePath($fileInfo->getPathname()), $allRequired)) {
$notRequired[] = $fileInfo->getPathname();
}
}
}
$this->assertEmpty($notRequired, 'Require these files in bootstrap.php: ' . implode(', ', $notRequired));
}

}
22 changes: 14 additions & 8 deletions tests/bootstrap.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
<?php
declare(strict_types = 1);

require_once __DIR__ . '/../vendor/autoload.php';

$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__ . '/libs', FilesystemIterator::SKIP_DOTS));
foreach ($iterator as $fileInfo) {
if ($fileInfo->getExtension() === 'php') {
require_once $fileInfo->getPathname();
}
}
require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/libs/AttributeClass.php';
require __DIR__ . '/libs/AttributeEntity.php';
require __DIR__ . '/libs/Bar.php';
require __DIR__ . '/libs/Blade.php';
require __DIR__ . '/libs/Constructor.php';
require __DIR__ . '/libs/Functions.php';
require __DIR__ . '/libs/Inheritance.php';
require __DIR__ . '/libs/Option.php';
require __DIR__ . '/libs/Royale.php';
require __DIR__ . '/libs/SomeInterface.php';
require __DIR__ . '/libs/TestException.php';
require __DIR__ . '/libs/TestTrait.php';
require __DIR__ . '/libs/Traits.php';

0 comments on commit 3816596

Please sign in to comment.