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,