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