Skip to content

Commit

Permalink
fix: Team add member (#201)
Browse files Browse the repository at this point in the history
* test: Add test to add and remove team member

* fix: Add users_service to teams controller

* fix: pass tag.name instead of tag for slugify
  • Loading branch information
FranzForstmayr authored Jan 23, 2025
1 parent bcfb051 commit 07340da
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 1 deletion.
3 changes: 3 additions & 0 deletions src/app/domain/teams/controllers/team_member.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@

from advanced_alchemy.exceptions import IntegrityError
from litestar import Controller, post
from litestar.di import Provide
from litestar.params import Parameter

from app.db import models as m
from app.domain.accounts.deps import provide_users_service
from app.domain.teams import urls
from app.domain.teams.schemas import Team, TeamMemberModify
from app.domain.teams.services import TeamMemberService, TeamService
Expand All @@ -30,6 +32,7 @@ class TeamMemberController(Controller):
TeamMemberService,
load=[m.TeamMember.team, m.TeamMember.user],
),
"users_service": Provide(provide_users_service),
}

@post(operation_id="AddMemberToTeam", path=urls.TEAM_ADD_MEMBER)
Expand Down
4 changes: 3 additions & 1 deletion src/app/domain/teams/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,9 @@ async def _populate_with_owner_and_tags(
data.tags.remove(tag_rm)
data.tags.extend(
[
await m.Tag.as_unique_async(self.repository.session, name=tag_text, slug=slugify(tag_text))
await m.Tag.as_unique_async(
self.repository.session, name=tag_text.name, slug=slugify(tag_text.name)
)
for tag_text in tags_to_add
],
)
Expand Down
18 changes: 18 additions & 0 deletions tests/integration/test_teams.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,3 +87,21 @@ async def test_teams_delete(client: "AsyncClient", superuser_token_headers: dict
headers=superuser_token_headers,
)
assert response.status_code == 200


async def test_teams_add_remove_member(client: "AsyncClient", superuser_token_headers: dict[str, str]) -> None:
response = await client.post(
"/api/teams/81108ac1-ffcb-411d-8b1e-d91833999999/members/add",
headers=superuser_token_headers,
json={"userName": "[email protected]"},
)
assert response.status_code == 201
assert "[email protected]" in [e["email"] for e in response.json()["members"]]

response = await client.post(
"/api/teams/81108ac1-ffcb-411d-8b1e-d91833999999/members/remove",
headers=superuser_token_headers,
json={"userName": "[email protected]"},
)
assert response.status_code == 201
assert "[email protected]" not in [e["email"] for e in response.json()["members"]]

0 comments on commit 07340da

Please sign in to comment.