chore: test notifications are sent

This commit is contained in:
Livio Bieri 2024-02-02 15:15:24 +01:00
parent 844cc881ca
commit 0734894cb9
1 changed files with 39 additions and 7 deletions

View File

@ -1,3 +1,5 @@
from unittest.mock import patch
from django.urls import reverse
from rest_framework.test import APITestCase
@ -56,7 +58,10 @@ class SelfEvaluationFeedbackAPI(APITestCase):
learning_mentor.participants.add(member_csu)
def test_start_self_evaluation_feedback(self):
@patch(
"vbv_lernwelt.notify.services.NotificationService.send_self_evaluation_feedback_request_feedback_notification"
)
def test_start_self_evaluation_feedback(self, mock_notification_service_send):
# GIVEN
learning_unit = create_learning_unit(course=self.course, circle=self.circle)
@ -98,6 +103,17 @@ class SelfEvaluationFeedbackAPI(APITestCase):
},
)
# shall be idempotent
self.client.post(
reverse(
"start_self_evaluation_feedback",
args=[learning_unit.id],
),
{
"feedback_provider_user_id": self.mentor.id,
},
)
# THEN
self.assertEqual(response.status_code, 200)
self.assertEqual(response.data["success"], True)
@ -107,12 +123,14 @@ class SelfEvaluationFeedbackAPI(APITestCase):
1,
)
# just get the first one
f = SelfEvaluationFeedback.objects.first()
self_evaluation_feedback = SelfEvaluationFeedback.objects.first()
self.assertEqual(self_evaluation_feedback.feedback_requester_user, self.member)
self.assertEqual(self_evaluation_feedback.feedback_provider_user, self.mentor)
self.assertEqual(self_evaluation_feedback.learning_unit, learning_unit)
self.assertEqual(f.feedback_requester_user, self.member)
self.assertEqual(f.feedback_provider_user, self.mentor)
self.assertEqual(f.learning_unit, learning_unit)
mock_notification_service_send.assert_called_once_with(
self_evaluation_feedback=self_evaluation_feedback
)
def test_start_self_evaluation_feedback_not_allowed_user(self):
# GIVEN
@ -370,7 +388,10 @@ class SelfEvaluationFeedbackAPI(APITestCase):
feedback.feedback_assessment, CourseCompletionStatus.FAIL.value
)
def test_release_self_evaluation_feedback(self):
@patch(
"vbv_lernwelt.notify.services.NotificationService.send_self_evaluation_feedback_received_notification"
)
def test_release_self_evaluation_feedback(self, mock_notification_service_send):
# GIVEN
learning_unit = create_learning_unit(course=self.course, circle=self.circle)
self_evaluation_feedback = create_self_evaluation_feedback(
@ -389,6 +410,13 @@ class SelfEvaluationFeedbackAPI(APITestCase):
),
)
# shall be idempotent
response = self.client.put(
reverse(
"release_self_evaluation_feedback", args=[self_evaluation_feedback.id]
),
)
# THEN
self.assertEqual(response.status_code, 200)
self.assertEqual(response.data["success"], True)
@ -398,3 +426,7 @@ class SelfEvaluationFeedbackAPI(APITestCase):
).feedback_submitted,
True,
)
mock_notification_service_send.assert_called_once_with(
self_evaluation_feedback=self_evaluation_feedback
)