diff --git a/django/thunderstore/api/cyberstorm/tests/test_team.py b/django/thunderstore/api/cyberstorm/tests/test_team.py index 4c566b941..ab80be838 100644 --- a/django/thunderstore/api/cyberstorm/tests/test_team.py +++ b/django/thunderstore/api/cyberstorm/tests/test_team.py @@ -296,3 +296,63 @@ def test_team_add_member__when_adding_a_member__fails_because_user_is_already_in "Team Member with this User and Team already exists." in response2.json()["__all__"] ) + + +@pytest.mark.django_db +def test_team_create__when_creating_a_team__succeeds( + api_client: APIClient, + user: UserType, +): + api_client.force_authenticate(user) + + response = api_client.post( + "/api/cyberstorm/teams/create/", + json.dumps({"name": "CoolestTeamNameEver"}), + content_type="application/json", + ) + + assert response.status_code == 200 + response_json = response.json() + assert response_json["name"] == "CoolestTeamNameEver" + assert ( + Team.objects.get(name="CoolestTeamNameEver") + .members.filter(user__username=user.username) + .count() + == 1 + ) + + +@pytest.mark.django_db +def test_team_create__when_creating_a_team__fails_because_user_is_not_authenticated( + api_client: APIClient, + user: UserType, +): + response = api_client.post( + "/api/cyberstorm/teams/create/", + json.dumps({"name": "CoolestTeamNameEver"}), + content_type="application/json", + ) + + assert response.status_code == 401 + response_json = response.json() + assert response_json["detail"] == "Authentication credentials were not provided." + assert Team.objects.filter(name="CoolestTeamNameEver").count() == 0 + + +@pytest.mark.django_db +def test_team_create__when_creating_a_team__fails_because_team_with_provided_name_exists( + api_client: APIClient, + user: UserType, + team: Team, +): + api_client.force_authenticate(user) + + response = api_client.post( + "/api/cyberstorm/teams/create/", + json.dumps({"name": team.name}), + content_type="application/json", + ) + + assert response.status_code == 400 + response_json = response.json() + assert "A team with the provided name already exists" in response_json["name"]