From c96472dbe630793f6dfbc9800a0186e099143c43 Mon Sep 17 00:00:00 2001 From: Livio Bieri Date: Thu, 26 Oct 2023 11:00:23 +0200 Subject: [PATCH] chore: adds tests for competence progress (user dashboard) --- .../dashboard/tests/graphql/test_dashboard.py | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/server/vbv_lernwelt/dashboard/tests/graphql/test_dashboard.py b/server/vbv_lernwelt/dashboard/tests/graphql/test_dashboard.py index 5629502d..aebc90b2 100644 --- a/server/vbv_lernwelt/dashboard/tests/graphql/test_dashboard.py +++ b/server/vbv_lernwelt/dashboard/tests/graphql/test_dashboard.py @@ -2,6 +2,7 @@ from graphene_django.utils import GraphQLTestCase from vbv_lernwelt.assignment.models import AssignmentType from vbv_lernwelt.course.models import CourseSessionUser +from vbv_lernwelt.course.services import mark_course_completion from vbv_lernwelt.dashboard.tests.graphql.utils import ( add_course_session_group_supervisor, add_course_session_user, @@ -11,6 +12,8 @@ from vbv_lernwelt.dashboard.tests.graphql.utils import ( create_course_session, create_course_session_group, create_user, + create_circle, + create_performance_criteria_page, ) @@ -19,7 +22,7 @@ class DashboardTestCase(GraphQLTestCase): def test_course_progress(self): # GIVEN - course, _ = create_course("Test Course") + course, course_page = create_course("Test Course") cs_1 = create_course_session( course=course, title="Test Course Session 1", generation="" @@ -43,6 +46,7 @@ class DashboardTestCase(GraphQLTestCase): course_session=cs_3, user=member, role=CourseSessionUser.Role.MEMBER ) + # setup assignments create_assignment_completion( user=member, assignment=create_assignment( @@ -65,6 +69,29 @@ class DashboardTestCase(GraphQLTestCase): max_points=40, ) + # setup competence + circle, _ = create_circle( + title="How to circle like a pro!", course_page=course_page + ) + + mark_course_completion( + page=create_performance_criteria_page( + course=course, course_page=course_page, circle=circle + ), + user=member, + course_session=cs_1, + completion_status="SUCCESS", + ) + + mark_course_completion( + page=create_performance_criteria_page( + course=course, course_page=course_page, circle=circle + ), + user=member, + course_session=cs_2, + completion_status="FAIL", + ) + self.client.force_login(member) query = f"""query($course_id: ID!) {{ @@ -94,12 +121,13 @@ class DashboardTestCase(GraphQLTestCase): self.assertResponseNoErrors(response) course_progress = response.json()["data"]["course_progress"] - self.assertEqual(course_progress["course_id"], str(course.id)) self.assertEqual(course_progress["session_to_continue_id"], str(cs_2.id)) competence = course_progress["competence"] - # TODO + self.assertEqual(competence["total_count"], 2) + self.assertEqual(competence["success_count"], 1) + self.assertEqual(competence["fail_count"], 1) assignment = course_progress["assignment"] self.assertEqual(assignment["total_count"], 2)