From 398c3eec29d518568d8e4fba3d7fa5ffcc6cd133 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 22 Sep 2022 19:26:54 +1200 Subject: [PATCH 1/2] Fix SDK response model for get team membership --- app/controllers/api/teams.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index c975370223..801c647a29 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -553,7 +553,7 @@ App::get('/v1/teams/:teamId/memberships/:membershipId') ->label('sdk.description', '/docs/references/teams/get-team-member.md') ->label('sdk.response.code', Response::STATUS_CODE_OK) ->label('sdk.response.type', Response::CONTENT_TYPE_JSON) - ->label('sdk.response.model', Response::MODEL_MEMBERSHIP_LIST) + ->label('sdk.response.model', Response::MODEL_MEMBERSHIP) ->param('teamId', '', new UID(), 'Team ID.') ->param('membershipId', '', new UID(), 'Membership ID.') ->inject('response') From 7f236ed2bb413a4ec7f0b0ff987f703b49decedf Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Thu, 22 Sep 2022 20:06:30 +1200 Subject: [PATCH 2/2] Add get membership tests --- tests/e2e/Services/Teams/TeamsBaseClient.php | 46 ++++++++++++++++++++ tests/e2e/Services/Teams/TeamsBaseServer.php | 45 +++++++++++++++++++ 2 files changed, 91 insertions(+) diff --git a/tests/e2e/Services/Teams/TeamsBaseClient.php b/tests/e2e/Services/Teams/TeamsBaseClient.php index 266bdefc8d..c5ecf9f7fc 100644 --- a/tests/e2e/Services/Teams/TeamsBaseClient.php +++ b/tests/e2e/Services/Teams/TeamsBaseClient.php @@ -126,6 +126,52 @@ trait TeamsBaseClient return $data; } + /** + * @depends testCreateTeamMembership + */ + public function testGetTeamMembership($data): void + { + $teamUid = $data['teamUid'] ?? ''; + $membershipUid = $data['membershipUid'] ?? ''; + + /** + * Test for SUCCESS + */ + $response = $this->client->call(Client::METHOD_GET, '/teams/' . $teamUid . '/memberships/' . $membershipUid, array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertNotEmpty($response['body']['$id']); + $this->assertNotEmpty($response['body']['userId']); + $this->assertNotEmpty($response['body']['userName']); + $this->assertNotEmpty($response['body']['userEmail']); + $this->assertNotEmpty($response['body']['teamId']); + $this->assertNotEmpty($response['body']['teamName']); + $this->assertCount(2, $response['body']['roles']); + $this->assertEquals(false, DateTime::isValid($response['body']['joined'])); // is null in DB + $this->assertEquals(false, $response['body']['confirm']); + + /** + * Test for FAILURE + */ + + $response = $this->client->call(Client::METHOD_GET, '/teams/' . $teamUid . '/memberships/' . $membershipUid . 'dasdasd', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(404, $response['headers']['status-code']); + + $response = $this->client->call(Client::METHOD_GET, '/teams/' . $teamUid . '/memberships/' . $membershipUid, [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ]); + + $this->assertEquals(401, $response['headers']['status-code']); + } + /** * @depends testCreateTeam */ diff --git a/tests/e2e/Services/Teams/TeamsBaseServer.php b/tests/e2e/Services/Teams/TeamsBaseServer.php index 2e13c9ed30..df508e5e37 100644 --- a/tests/e2e/Services/Teams/TeamsBaseServer.php +++ b/tests/e2e/Services/Teams/TeamsBaseServer.php @@ -33,6 +33,51 @@ trait TeamsBaseServer return []; } + /** + * @depends testCreateTeamMembership + */ + public function testGetTeamMembership($data): void + { + $teamUid = $data['teamUid'] ?? ''; + $membershipUid = $data['membershipUid'] ?? ''; + + /** + * Test for SUCCESS + */ + $response = $this->client->call(Client::METHOD_GET, '/teams/' . $teamUid . '/memberships/' . $membershipUid, array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(200, $response['headers']['status-code']); + $this->assertNotEmpty($response['body']['$id']); + $this->assertNotEmpty($response['body']['userId']); + $this->assertNotEmpty($response['body']['userName']); + $this->assertNotEmpty($response['body']['userEmail']); + $this->assertNotEmpty($response['body']['teamId']); + $this->assertNotEmpty($response['body']['teamName']); + $this->assertCount(2, $response['body']['roles']); + $this->assertEquals(true, DateTime::isValid($response['body']['joined'])); // is null in DB + $this->assertEquals(true, $response['body']['confirm']); + + /** + * Test for FAILURE + */ + + $response = $this->client->call(Client::METHOD_GET, '/teams/' . $teamUid . '/memberships/' . $membershipUid . 'dasdasd', array_merge([ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ], $this->getHeaders())); + + $this->assertEquals(404, $response['headers']['status-code']); + + $response = $this->client->call(Client::METHOD_GET, '/teams/' . $teamUid . '/memberships/' . $membershipUid, [ + 'content-type' => 'application/json', + 'x-appwrite-project' => $this->getProject()['$id'], + ]); + + $this->assertEquals(401, $response['headers']['status-code']); + } /** * @depends testCreateTeam