From 84f803ebf126afb2559d2c6efbd95fe917bafde2 Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Wed, 10 Apr 2024 13:48:47 +0200 Subject: [PATCH] Add dashboard config tests --- .../dashboard/tests/test_views.py | 90 ++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) diff --git a/server/vbv_lernwelt/dashboard/tests/test_views.py b/server/vbv_lernwelt/dashboard/tests/test_views.py index 4f0a5c99..395adc35 100644 --- a/server/vbv_lernwelt/dashboard/tests/test_views.py +++ b/server/vbv_lernwelt/dashboard/tests/test_views.py @@ -9,7 +9,7 @@ from vbv_lernwelt.course.creators.test_utils import ( create_user, ) from vbv_lernwelt.course.models import CourseSessionUser -from vbv_lernwelt.dashboard.views import get_course_sessions_with_roles_for_user +from vbv_lernwelt.dashboard.views import get_course_sessions_with_roles_for_user, get_course_config from vbv_lernwelt.learning_mentor.models import LearningMentor @@ -84,3 +84,91 @@ class GetCourseSessionsForUserTestCase(TestCase): self.assertEqual(len(sessions), 1) self.assertEqual(sessions[0].title, "Test Session") self.assertEqual(sessions[0].roles, {"LEARNING_MENTOR"}) + + +class GetDashboardConfig(TestCase): + def setUp(self): + self.course, _ = create_course("Test Course") + self.course_session = create_course_session( + course=self.course, title="Test Session" + ) + + def _test_config(self, user, role, is_uk, is_vv, is_mentor, has_preview, widgets): + # WHEN + sessions = get_course_sessions_with_roles_for_user(user) + course_configs = get_course_config(sessions) + + # THEN + self.assertEqual(len(course_configs), 1) + self.assertEqual(course_configs[0].course_title, self.course.title) + self.assertEqual(course_configs[0].is_uk, is_uk) + self.assertEqual(course_configs[0].is_vv, is_vv) + self.assertEqual(course_configs[0].is_mentor, is_mentor) + self.assertEqual(course_configs[0].has_preview, has_preview) + self.assertEqual(course_configs[0].session_to_continue_id, str(self.course_session.id)) + self.assertEqual(course_configs[0].role_key, role) + self.assertEqual(course_configs[0].widgets, widgets) + + def test_participant_uk_get_config(self): + participant = create_user("participant") + add_course_session_user( + self.course_session, + participant, + role=CourseSessionUser.Role.MEMBER, + ) + self.course.configuration.is_uk = True + self.course.configuration.save() + + self._test_config(user=participant, role="Member", is_uk=True, is_vv=False, is_mentor=False, has_preview=False, + widgets=['ProgressWidget', 'CompetenceWidget', 'CompetenceCertificateWidget']) + + def test_participant_vv_get_config(self): + participant = create_user("participant") + add_course_session_user( + self.course_session, + participant, + role=CourseSessionUser.Role.MEMBER, + ) + self.course.configuration.is_vv = True + self.course.configuration.save() + + self._test_config(user=participant, role="Member", is_uk=False, is_vv=True, is_mentor=False, has_preview=False, + widgets=['ProgressWidget', 'CompetenceWidget']) + + def test_mentor_uk_get_config(self): + # GIVEN + mentor = create_user("mentor") + LearningMentor.objects.create(mentor=mentor, course_session=self.course_session) + + self.course.configuration.is_uk = True + self.course.configuration.save() + + self._test_config(user=mentor, role="MentorUK", is_uk=True, is_vv=False, is_mentor=True, has_preview=True, + widgets=['MentorPersonWidget', 'MentorCompetenceWidget']) + + def test_mentor_vv_get_config(self): + # GIVEN + mentor = create_user("mentor") + LearningMentor.objects.create(mentor=mentor, course_session=self.course_session) + + self.course.configuration.is_vv = True + self.course.configuration.save() + + self._test_config(user=mentor, role="MentorVV", is_uk=False, is_vv=True, is_mentor=True, has_preview=True, + widgets=['MentorPersonWidget', 'MentorTasksWidget']) + + def test_participant_as_mentor_vv_get_config(self): + # GIVEN + mentor = create_user("mentor") + add_course_session_user( + self.course_session, + mentor, + role=CourseSessionUser.Role.MEMBER, + ) + LearningMentor.objects.create(mentor=mentor, course_session=self.course_session) + + self.course.configuration.is_vv = True + self.course.configuration.save() + + self._test_config(user=mentor, role="Member", is_uk=False, is_vv=True, is_mentor=True, has_preview=False, + widgets=['ProgressWidget', 'CompetenceWidget', 'MentorPersonWidget', 'MentorTasksWidget'])