diff --git a/app/controllers/api/teams.php b/app/controllers/api/teams.php index dd64fe0768..9c383803f2 100644 --- a/app/controllers/api/teams.php +++ b/app/controllers/api/teams.php @@ -1089,7 +1089,10 @@ App::patch('/v1/teams/:teamId/memberships/:membershipId') // Quick check: fetch up to 2 owners to determine if only one exists $ownersCount = $dbForProject->count( collection: 'memberships', - queries: [Query::contains('roles', ['owner'])], + queries: [ + Query::contains('roles', ['owner']), + Query::equal('teamInternalId', [$team->getInternalId()]) + ], max: 2 ); diff --git a/tests/e2e/Services/Teams/TeamsConsoleClientTest.php b/tests/e2e/Services/Teams/TeamsConsoleClientTest.php index 4b5ade7cbf..06358765f6 100644 --- a/tests/e2e/Services/Teams/TeamsConsoleClientTest.php +++ b/tests/e2e/Services/Teams/TeamsConsoleClientTest.php @@ -86,7 +86,7 @@ class TeamsConsoleClientTest extends Scope $session = $data['session'] ?? ''; /** - * Test for SUCCESS + * Test for FAILURE */ $roles = ['developer']; $response = $this->client->call(Client::METHOD_PATCH, '/teams/' . $teamUid . '/memberships/' . $membershipUid, array_merge([ @@ -97,12 +97,8 @@ class TeamsConsoleClientTest extends Scope 'roles' => $roles ]); - $this->assertEquals(200, $response['headers']['status-code']); - $this->assertNotEmpty($response['body']['$id']); - $this->assertNotEmpty($response['body']['userId']); - $this->assertNotEmpty($response['body']['teamId']); - $this->assertCount(count($roles), $response['body']['roles']); - $this->assertEquals($roles[0], $response['body']['roles'][0]); + $this->assertEquals(400, $response['headers']['status-code']); + $this->assertEquals('There must be at least one owner in the organization.', $response['body']['message']); /** * Test for unknown team