diff --git a/psalm-baseline.xml b/psalm-baseline.xml new file mode 100644 index 000000000..3c9f7c89e --- /dev/null +++ b/psalm-baseline.xml @@ -0,0 +1,17 @@ + + + + + $this->where(['user_id' => $user->id])->delete() + + + + + + + + + + + + diff --git a/psalm.xml b/psalm.xml index 28656c022..5ea186498 100644 --- a/psalm.xml +++ b/psalm.xml @@ -7,6 +7,7 @@ xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd" autoloader="psalm_autoload.php" cacheDirectory="build/psalm/" + errorBaseline="psalm-baseline.xml" > diff --git a/psalm_autoload.php b/psalm_autoload.php index 5601e5146..f68b2665a 100644 --- a/psalm_autoload.php +++ b/psalm_autoload.php @@ -12,6 +12,10 @@ foreach ($helperDirs as $dir) { $dir = __DIR__ . '/' . $dir; + if (! is_dir($dir)) { + continue; + } + chdir($dir); foreach (glob('*_helper.php') as $filename) { @@ -20,3 +24,5 @@ require_once $filePath; } } + +chdir(__DIR__); diff --git a/rector.php b/rector.php index 1b797a7d0..528fb5757 100644 --- a/rector.php +++ b/rector.php @@ -114,9 +114,13 @@ // Ignore tests that use CodeIgniter::CI_VERSION UnwrapFutureCompatibleIfPhpVersionRector::class => [ __DIR__ . '/tests/Commands/UserModelGeneratorTest.php', + __DIR__ . '/tests/Controllers/LoginTest.php', + __DIR__ . '/tests/Commands/SetupTest.php', ], RemoveUnusedPrivatePropertyRector::class => [ __DIR__ . '/tests/Commands/UserModelGeneratorTest.php', + __DIR__ . '/tests/Controllers/LoginTest.php', + __DIR__ . '/tests/Commands/SetupTest.php', ], ]); // auto import fully qualified class names diff --git a/tests/Commands/SetupTest.php b/tests/Commands/SetupTest.php index 198df5884..43225adf9 100644 --- a/tests/Commands/SetupTest.php +++ b/tests/Commands/SetupTest.php @@ -4,6 +4,7 @@ namespace Tests\Commands; +use CodeIgniter\CodeIgniter; use CodeIgniter\Shield\Commands\Setup; use CodeIgniter\Test\Filters\CITestStreamFilter; use Config\Services; @@ -21,15 +22,25 @@ protected function setUp(): void { parent::setUp(); - CITestStreamFilter::$buffer = ''; - $this->streamFilter = stream_filter_append(STDOUT, 'CITestStreamFilter'); + if (version_compare(CodeIgniter::CI_VERSION, '4.3.0', '>=')) { + CITestStreamFilter::registration(); + CITestStreamFilter::addOutputFilter(); + } else { + CITestStreamFilter::$buffer = ''; + $this->streamFilter = stream_filter_append(STDOUT, 'CITestStreamFilter'); + } } protected function tearDown(): void { parent::tearDown(); - stream_filter_remove($this->streamFilter); + if (version_compare(CodeIgniter::CI_VERSION, '4.3.0', '>=')) { + CITestStreamFilter::removeOutputFilter(); + CITestStreamFilter::removeErrorFilter(); + } else { + stream_filter_remove($this->streamFilter); + } } public function testRun(): void diff --git a/tests/Controllers/LoginTest.php b/tests/Controllers/LoginTest.php index 063ce4878..2ffe35341 100644 --- a/tests/Controllers/LoginTest.php +++ b/tests/Controllers/LoginTest.php @@ -4,6 +4,7 @@ namespace Tests\Controllers; +use CodeIgniter\CodeIgniter; use CodeIgniter\Config\Factories; use CodeIgniter\I18n\Time; use CodeIgniter\Shield\Authentication\Actions\Email2FA; @@ -64,7 +65,11 @@ public function testLoginBadEmail(): void public function testLoginActionEmailSuccess(): void { - Time::setTestNow('March 10, 2017', 'America/Chicago'); + if (version_compare(CodeIgniter::CI_VERSION, '4.3.0', '>=')) { + Time::setTestNow('March 10, 2017', 'UTC'); + } else { + Time::setTestNow('March 10, 2017', 'America/Chicago'); + } $this->user->createEmailIdentity([ 'email' => 'foo@example.com', @@ -116,7 +121,11 @@ public function testAfterLoggedInNotDisplayLoginPage(): void public function testLoginActionUsernameSuccess(): void { - Time::setTestNow('March 10, 2017', 'America/Chicago'); + if (version_compare(CodeIgniter::CI_VERSION, '4.3.0', '>=')) { + Time::setTestNow('March 10, 2017', 'UTC'); + } else { + Time::setTestNow('March 10, 2017', 'America/Chicago'); + } // Add 'username' to $validFields $authConfig = config('Auth'); diff --git a/tests/Unit/UserModelTest.php b/tests/Unit/UserModelTest.php index 3b8371fd1..65eee5b27 100644 --- a/tests/Unit/UserModelTest.php +++ b/tests/Unit/UserModelTest.php @@ -173,7 +173,7 @@ public function testUpdateUserObjectWithUserDataToUpdate(): void $user->email = 'bar@bar.com'; $user->active = true; - $users->update(null, $user); + $users->update($user->id, $user); $this->seeInDatabase('auth_identities', [ 'user_id' => $user->id, @@ -209,7 +209,7 @@ public function testUpdateUserArrayWithUserDataToUpdate(): void // Fix value type $userArray['active'] = (int) $userArray['active']; - $users->update(null, $userArray); + $users->update($user->id, $userArray); $this->dontSeeInDatabase('auth_identities', [ 'user_id' => $user->id,