From d02c813f0a4477886a357fb7b9338b38a08604e2 Mon Sep 17 00:00:00 2001 From: eldadfux Date: Fri, 20 Sep 2019 15:46:57 +0300 Subject: [PATCH] Added DB search tests --- app/app.php | 4 +- tests/e2e/ProjectDatabaseTest.php | 73 +++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 2 deletions(-) diff --git a/app/app.php b/app/app.php index 2bac8fc08..116886b50 100644 --- a/app/app.php +++ b/app/app.php @@ -209,7 +209,7 @@ $utopia->init(function() use ($utopia, $request, $response, $register, &$user, $ $abuse = new Abuse($timeLimit); - if($timeLimit->limit() && $request->getServer('_APP_OPTIONS_ABUSE', 'enabled') !== 'disabled') { + if($timeLimit->limit()) { $response ->addHeader('X-RateLimit-Limit', $timeLimit->limit()) ->addHeader('X-RateLimit-Remaining', $timeLimit->remaining()) @@ -217,7 +217,7 @@ $utopia->init(function() use ($utopia, $request, $response, $register, &$user, $ ; } - if($abuse->check()) { + if($abuse->check() && $request->getServer('_APP_OPTIONS_ABUSE', 'enabled') !== 'disabled') { throw new Exception('Too many requests', 429); } }); diff --git a/tests/e2e/ProjectDatabaseTest.php b/tests/e2e/ProjectDatabaseTest.php index 2e38090d2..34e811af3 100644 --- a/tests/e2e/ProjectDatabaseTest.php +++ b/tests/e2e/ProjectDatabaseTest.php @@ -259,4 +259,77 @@ class ProjectDatabaseTest extends BaseProjects $this->assertEquals(2019, $documents['body']['documents'][1]['releaseYear']); $this->assertCount(2, $documents['body']['documents']); } + + /** + * @depends testDocumentCreateSuccess + */ + public function testDocumentsListSuccessFirstAndLast($data) { + $documents = $this->client->call(Client::METHOD_GET, '/database/' . $data['collectionId'] . '/documents', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $data['projectUid'], + 'x-appwrite-key' => $data['projectAPIKeySecret'], + ], [ + 'limit' => 1, + 'order-field' => 'releaseYear', + 'order-type' => 'ASC', + 'order-cast' => 'int', + 'first' => true, + ]); + + $this->assertEquals(1944, $documents['body']['releaseYear']); + + $documents = $this->client->call(Client::METHOD_GET, '/database/' . $data['collectionId'] . '/documents', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $data['projectUid'], + 'x-appwrite-key' => $data['projectAPIKeySecret'], + ], [ + 'limit' => 2, + 'offset' => 1, + 'order-field' => 'releaseYear', + 'order-type' => 'ASC', + 'order-cast' => 'int', + 'last' => true, + ]); + + $this->assertEquals(2019, $documents['body']['releaseYear']); + } + + /** + * @depends testDocumentCreateSuccess + */ + public function testDocumentsListSuccessSerach($data) { + $documents = $this->client->call(Client::METHOD_GET, '/database/' . $data['collectionId'] . '/documents', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $data['projectUid'], + 'x-appwrite-key' => $data['projectAPIKeySecret'], + ], [ + 'search' => 'Captain America', + ]); + + $this->assertEquals(1944, $documents['body']['documents'][0]['releaseYear']); + $this->assertCount(1, $documents['body']['documents']); + + $documents = $this->client->call(Client::METHOD_GET, '/database/' . $data['collectionId'] . '/documents', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $data['projectUid'], + 'x-appwrite-key' => $data['projectAPIKeySecret'], + ], [ + 'search' => 'Homecoming', + ]); + + $this->assertEquals(2017, $documents['body']['documents'][0]['releaseYear']); + $this->assertCount(1, $documents['body']['documents']); + + $documents = $this->client->call(Client::METHOD_GET, '/database/' . $data['collectionId'] . '/documents', [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $data['projectUid'], + 'x-appwrite-key' => $data['projectAPIKeySecret'], + ], [ + 'search' => 'spider', + ]); + + $this->assertEquals(2019, $documents['body']['documents'][0]['releaseYear']); + $this->assertEquals(2017, $documents['body']['documents'][1]['releaseYear']); + $this->assertCount(2, $documents['body']['documents']); + } } \ No newline at end of file