From 8963f0bb3dd132cc465a7c36a83f8a5ea91645da Mon Sep 17 00:00:00 2001 From: Sabrina Demagny Date: Thu, 8 Aug 2024 15:55:16 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(mail)=20add=20status=20on=20domain=20?= =?UTF-8?q?create=20or=20retrieve=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit to display status on frontend --- src/backend/mailbox_manager/api/serializers.py | 2 ++ .../mail_domain/test_api_mail_domains_create.py | 17 +++++++++++++---- .../test_api_mail_domains_retrieve.py | 1 + 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/backend/mailbox_manager/api/serializers.py b/src/backend/mailbox_manager/api/serializers.py index ebb4998..a5230c2 100644 --- a/src/backend/mailbox_manager/api/serializers.py +++ b/src/backend/mailbox_manager/api/serializers.py @@ -25,6 +25,7 @@ class MailDomainSerializer(serializers.ModelSerializer): "id", "name", "slug", + "status", "abilities", "created_at", "updated_at", @@ -32,6 +33,7 @@ class MailDomainSerializer(serializers.ModelSerializer): read_only_fields = [ "id", "slug", + "status", "abilities", "created_at", "updated_at", diff --git a/src/backend/mailbox_manager/tests/api/mail_domain/test_api_mail_domains_create.py b/src/backend/mailbox_manager/tests/api/mail_domain/test_api_mail_domains_create.py index 5445e0f..13dfe4d 100644 --- a/src/backend/mailbox_manager/tests/api/mail_domain/test_api_mail_domains_create.py +++ b/src/backend/mailbox_manager/tests/api/mail_domain/test_api_mail_domains_create.py @@ -52,12 +52,10 @@ def test_api_mail_domains__create_authenticated(): Authenticated users should be able to create mail domains and should automatically be added as owner of the newly created domain. """ - user = core_factories.UserFactory() client = APIClient() client.force_login(user) - response = client.post( "/api/v1.0/mail-domains/", { @@ -65,10 +63,21 @@ def test_api_mail_domains__create_authenticated(): }, format="json", ) - assert response.status_code == status.HTTP_201_CREATED - # a new domain pending is created and the authenticated user is the owner domain = models.MailDomain.objects.get() + + # response is as expected + assert response.json() == { + "id": str(domain.id), + "name": domain.name, + "slug": domain.slug, + "status": enums.MailDomainStatusChoices.PENDING, + "created_at": domain.created_at.isoformat().replace("+00:00", "Z"), + "updated_at": domain.updated_at.isoformat().replace("+00:00", "Z"), + "abilities": domain.get_abilities(user), + } + + # a new domain with status "pending" is created and authenticated user is the owner assert domain.status == enums.MailDomainStatusChoices.PENDING assert domain.name == "mydomain.com" assert domain.accesses.filter(role="owner", user=user).exists() diff --git a/src/backend/mailbox_manager/tests/api/mail_domain/test_api_mail_domains_retrieve.py b/src/backend/mailbox_manager/tests/api/mail_domain/test_api_mail_domains_retrieve.py index 5a284fe..0e1ee01 100644 --- a/src/backend/mailbox_manager/tests/api/mail_domain/test_api_mail_domains_retrieve.py +++ b/src/backend/mailbox_manager/tests/api/mail_domain/test_api_mail_domains_retrieve.py @@ -81,6 +81,7 @@ def test_api_mail_domains__retrieve_authenticated_related(): "id": str(domain.id), "name": domain.name, "slug": domain.slug, + "status": domain.status, "created_at": domain.created_at.isoformat().replace("+00:00", "Z"), "updated_at": domain.updated_at.isoformat().replace("+00:00", "Z"), "abilities": domain.get_abilities(user),