67 lines
2.0 KiB
Python
67 lines
2.0 KiB
Python
from graphene_django.utils import GraphQLTestCase
|
|
|
|
from vbv_lernwelt.course.models import CourseSessionUser
|
|
from vbv_lernwelt.dashboard.graphql.types.feedback import feedback_responses
|
|
from vbv_lernwelt.dashboard.tests.graphql.utils import (
|
|
add_course_session_user,
|
|
create_circle,
|
|
create_course,
|
|
create_course_session,
|
|
create_user,
|
|
)
|
|
from vbv_lernwelt.feedback.models import FeedbackResponse
|
|
|
|
|
|
class DashboardFeedbackTestCase(GraphQLTestCase):
|
|
GRAPHQL_URL = "/server/graphql/"
|
|
|
|
def test_feedback(self):
|
|
# GIVEN
|
|
course, course_page = create_course("Test Course")
|
|
course_session = create_course_session(course=course, title="Test Bern 2022 a")
|
|
|
|
supervisor = create_user("supervisor")
|
|
|
|
add_course_session_user(
|
|
course_session=course_session,
|
|
user=supervisor,
|
|
role=CourseSessionUser.Role.SESSION_SUPERVISOR,
|
|
)
|
|
|
|
member = create_user("member")
|
|
|
|
circle1, _ = create_circle(title="Test Circle 1", course_page=course_page)
|
|
circle2, _ = create_circle(title="Test Circle 2", course_page=course_page)
|
|
|
|
FeedbackResponse.objects.create(
|
|
feedback_user=member,
|
|
data={"satisfaction": 3},
|
|
circle=circle1,
|
|
course_session=course_session,
|
|
)
|
|
FeedbackResponse.objects.create(
|
|
feedback_user=member,
|
|
data={"satisfaction": 4},
|
|
circle=circle1,
|
|
course_session=course_session,
|
|
)
|
|
|
|
# Create Feedbacks for circle2
|
|
FeedbackResponse.objects.create(
|
|
feedback_user=member,
|
|
data={"satisfaction": 5},
|
|
circle=circle2,
|
|
course_session=course_session,
|
|
)
|
|
FeedbackResponse.objects.create(
|
|
feedback_user=member,
|
|
data={"satisfaction": 2},
|
|
circle=circle2,
|
|
course_session=course_session,
|
|
)
|
|
|
|
# Get average satisfaction per circle
|
|
result = feedback_responses(course.id, supervisor)
|
|
|
|
# THEN
|