chore: adds tests for competence progress (user dashboard)

This commit is contained in:
Livio Bieri 2023-10-26 11:00:23 +02:00
parent 01db821d6b
commit c96472dbe6
1 changed files with 31 additions and 3 deletions

View File

@ -2,6 +2,7 @@ from graphene_django.utils import GraphQLTestCase
from vbv_lernwelt.assignment.models import AssignmentType from vbv_lernwelt.assignment.models import AssignmentType
from vbv_lernwelt.course.models import CourseSessionUser from vbv_lernwelt.course.models import CourseSessionUser
from vbv_lernwelt.course.services import mark_course_completion
from vbv_lernwelt.dashboard.tests.graphql.utils import ( from vbv_lernwelt.dashboard.tests.graphql.utils import (
add_course_session_group_supervisor, add_course_session_group_supervisor,
add_course_session_user, add_course_session_user,
@ -11,6 +12,8 @@ from vbv_lernwelt.dashboard.tests.graphql.utils import (
create_course_session, create_course_session,
create_course_session_group, create_course_session_group,
create_user, create_user,
create_circle,
create_performance_criteria_page,
) )
@ -19,7 +22,7 @@ class DashboardTestCase(GraphQLTestCase):
def test_course_progress(self): def test_course_progress(self):
# GIVEN # GIVEN
course, _ = create_course("Test Course") course, course_page = create_course("Test Course")
cs_1 = create_course_session( cs_1 = create_course_session(
course=course, title="Test Course Session 1", generation="" 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 course_session=cs_3, user=member, role=CourseSessionUser.Role.MEMBER
) )
# setup assignments
create_assignment_completion( create_assignment_completion(
user=member, user=member,
assignment=create_assignment( assignment=create_assignment(
@ -65,6 +69,29 @@ class DashboardTestCase(GraphQLTestCase):
max_points=40, 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) self.client.force_login(member)
query = f"""query($course_id: ID!) {{ query = f"""query($course_id: ID!) {{
@ -94,12 +121,13 @@ class DashboardTestCase(GraphQLTestCase):
self.assertResponseNoErrors(response) self.assertResponseNoErrors(response)
course_progress = response.json()["data"]["course_progress"] course_progress = response.json()["data"]["course_progress"]
self.assertEqual(course_progress["course_id"], str(course.id)) self.assertEqual(course_progress["course_id"], str(course.id))
self.assertEqual(course_progress["session_to_continue_id"], str(cs_2.id)) self.assertEqual(course_progress["session_to_continue_id"], str(cs_2.id))
competence = course_progress["competence"] 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"] assignment = course_progress["assignment"]
self.assertEqual(assignment["total_count"], 2) self.assertEqual(assignment["total_count"], 2)