Skip to content

Dev: error phpstan #738

@datamweb

Description

@datamweb

The new version settings [v2.1.1] has been released. This problem started from version 2.1.1.

Error: Cannot call method forget() on array|bool|float|int|object|string|void.
 ------ ------------------------------------------------------------------ 
  Line   tests/Authentication/Authenticators/SessionAuthenticatorTest.php  
 ------ ------------------------------------------------------------------ 
  112    Cannot call method forget() on                                    
         array|bool|float|int|object|string|void.                          
 ------ ------------------------------------------------------------------ 

see https://github.com/codeigniter4/shield/actions/runs/4960040688/jobs/8876233138?pr=736

Temporary solution:

-setting()->forget('Cookie.prefix');
+service('settings')->forget('Cookie.prefix');

public function testLoggedInWithRememberCookie(): void
{
unset($_SESSION['user']);
// Set Cookie.prefix
$cookiePrefix = 'prefix_';
setting('Cookie.prefix', $cookiePrefix);
$this->user->createEmailIdentity(['email' => '[email protected]', 'password' => 'secret']);
// Insert remember-me token.
/** @var RememberModel $rememberModel */
$rememberModel = model(RememberModel::class);
$selector = 'selector';
$validator = 'validator';
$expires = date('Y-m-d H:i:s', time() + setting('Auth.sessionConfig')['rememberLength']);
$rememberModel->rememberUser($this->user, $selector, hash('sha256', $validator), $expires);
// Set Cookie value for remember-me.
$token = $selector . ':' . $validator;
$cookieName = $cookiePrefix . setting('Auth.sessionConfig')['rememberCookieName'];
$_COOKIE[$cookieName] = $token;
$this->assertTrue($this->auth->loggedIn());
$authUser = $this->auth->getUser();
$this->assertInstanceOf(User::class, $authUser);
$this->assertSame($this->user->id, $authUser->id);
// Forget Cookie.prefix
setting()->forget('Cookie.prefix');
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions