-
Notifications
You must be signed in to change notification settings - Fork 143
Closed
codeigniter4/settings
#78Labels
Description
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');
shield/tests/Authentication/Authenticators/SessionAuthenticatorTest.php
Lines 82 to 113 in 8123388
| 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'); | |
| } |