From b2b20c48b36f90168aafafdb8814ff810e16b71f Mon Sep 17 00:00:00 2001 From: Eldad Fux Date: Tue, 18 Mar 2025 22:12:03 +0100 Subject: [PATCH] Fixed tests --- app/controllers/api/account.php | 2 +- app/realtime.php | 4 ++-- src/Appwrite/Migration/Migration.php | 1 + src/Appwrite/Migration/Version/V23.php | 29 ++++++++++++++++++++++++++ tests/unit/Auth/AuthTest.php | 25 +++++++++++----------- tests/unit/Migration/MigrationTest.php | 2 +- 6 files changed, 47 insertions(+), 16 deletions(-) create mode 100644 src/Appwrite/Migration/Version/V23.php diff --git a/app/controllers/api/account.php b/app/controllers/api/account.php index 703ba764ec..189982e45a 100644 --- a/app/controllers/api/account.php +++ b/app/controllers/api/account.php @@ -4393,7 +4393,7 @@ App::post('/v1/account/mfa/challenge') ->action(function (string $factor, Response $response, Database $dbForProject, Document $user, Locale $locale, Document $project, Request $request, Event $queueForEvents, Messaging $queueForMessaging, Mail $queueForMails, callable $timelimit, StatsUsage $queueForStatsUsage, array $plan, ProofsToken $proofForToken, ProofsCode $proofForCode) { $expire = DateTime::addSeconds(new \DateTime(), TOKEN_EXPIRATION_CONFIRM); - + $code = $proofForCode->generate(); $challenge = new Document([ 'userId' => $user->getId(), diff --git a/app/realtime.php b/app/realtime.php index 95dabaafba..d65a7cdb69 100644 --- a/app/realtime.php +++ b/app/realtime.php @@ -653,11 +653,11 @@ $server->onMessage(function (int $connection, string $message) use ($server, $re } $store = new Store(); - + $store->decode($message['data']['session']); $user = $database->getDocument('users', $store->getProperty('id', '')); - + /** * TODO: * Moving forward, we should try to use our dependency injection container diff --git a/src/Appwrite/Migration/Migration.php b/src/Appwrite/Migration/Migration.php index 56016f1057..17e93f43f5 100644 --- a/src/Appwrite/Migration/Migration.php +++ b/src/Appwrite/Migration/Migration.php @@ -93,6 +93,7 @@ abstract class Migration '1.6.0' => 'V21', '1.6.1' => 'V21', '1.6.2' => 'V22', + '1.7.0' => 'V23', ]; /** diff --git a/src/Appwrite/Migration/Version/V23.php b/src/Appwrite/Migration/Version/V23.php new file mode 100644 index 0000000000..f6f830436d --- /dev/null +++ b/src/Appwrite/Migration/Version/V23.php @@ -0,0 +1,29 @@ +hash($secret); $tokens1 = [ new Document([ '$id' => ID::custom('token1'), @@ -64,8 +66,6 @@ class AuthTest extends TestCase ]), ]; - $proofForToken = new Token(); - $this->assertEquals(Auth::sessionVerify($tokens1, $secret, $proofForToken), 'token1'); $this->assertEquals(Auth::sessionVerify($tokens1, 'false-secret', $proofForToken), false); $this->assertEquals(Auth::sessionVerify($tokens2, $secret, $proofForToken), false); @@ -74,8 +74,9 @@ class AuthTest extends TestCase public function testTokenVerify(): void { + $proofForToken = new Token(); $secret = 'secret1'; - $hash = Auth::hash($secret); + $hash = $proofForToken->hash($secret); $tokens1 = [ new Document([ '$id' => ID::custom('token1'), @@ -121,13 +122,13 @@ class AuthTest extends TestCase ]), ]; - $this->assertEquals(Auth::tokenVerify($tokens1, TOKEN_TYPE_RECOVERY, $secret), $tokens1[0]); - $this->assertEquals(Auth::tokenVerify($tokens1, null, $secret), $tokens1[0]); - $this->assertEquals(Auth::tokenVerify($tokens1, TOKEN_TYPE_RECOVERY, 'false-secret'), false); - $this->assertEquals(Auth::tokenVerify($tokens2, TOKEN_TYPE_RECOVERY, $secret), false); - $this->assertEquals(Auth::tokenVerify($tokens2, TOKEN_TYPE_RECOVERY, 'false-secret'), false); - $this->assertEquals(Auth::tokenVerify($tokens3, TOKEN_TYPE_RECOVERY, $secret), false); - $this->assertEquals(Auth::tokenVerify($tokens3, TOKEN_TYPE_RECOVERY, 'false-secret'), false); + $this->assertEquals(Auth::tokenVerify($tokens1, TOKEN_TYPE_RECOVERY, $secret, $proofForToken), $tokens1[0]); + $this->assertEquals(Auth::tokenVerify($tokens1, null, $secret, $proofForToken), $tokens1[0]); + $this->assertEquals(Auth::tokenVerify($tokens1, TOKEN_TYPE_RECOVERY, 'false-secret', $proofForToken), false); + $this->assertEquals(Auth::tokenVerify($tokens2, TOKEN_TYPE_RECOVERY, $secret, $proofForToken), false); + $this->assertEquals(Auth::tokenVerify($tokens2, TOKEN_TYPE_RECOVERY, 'false-secret', $proofForToken), false); + $this->assertEquals(Auth::tokenVerify($tokens3, TOKEN_TYPE_RECOVERY, $secret, $proofForToken), false); + $this->assertEquals(Auth::tokenVerify($tokens3, TOKEN_TYPE_RECOVERY, 'false-secret', $proofForToken), false); } public function testIsPrivilegedUser(): void diff --git a/tests/unit/Migration/MigrationTest.php b/tests/unit/Migration/MigrationTest.php index 536278d55b..8c619b76c2 100644 --- a/tests/unit/Migration/MigrationTest.php +++ b/tests/unit/Migration/MigrationTest.php @@ -7,7 +7,7 @@ use PHPUnit\Framework\TestCase; use ReflectionMethod; use Utopia\Database\Document; -abstract class MigrationTest extends TestCase +class MigrationTest extends TestCase { /** * @var Migration