Files
finansePRO/tests/unit/RememberTokenModelTest.php
2026-07-12 19:21:35 +02:00

35 lines
914 B
PHP

<?php
use App\Models\RememberTokenModel;
use CodeIgniter\Test\CIUnitTestCase;
use CodeIgniter\Test\DatabaseTestTrait;
/**
* @internal
*/
final class RememberTokenModelTest extends CIUnitTestCase
{
use DatabaseTestTrait;
protected $namespace = 'App';
protected $refresh = true;
public function testTokensRemainIndependentAcrossDevices(): void
{
$model = new RememberTokenModel();
$first = $model->issueToken();
$second = $model->issueToken();
$this->assertTrue($model->verifyToken($first));
$this->assertTrue($model->verifyToken($second));
$tampered = substr($first, 0, -1) . (str_ends_with($first, '0') ? '1' : '0');
$this->assertFalse($model->verifyToken($tampered));
$model->deleteToken($first);
$this->assertFalse($model->verifyToken($first));
$this->assertTrue($model->verifyToken($second));
}
}