101 lines
3.1 KiB
Python
101 lines
3.1 KiB
Python
from graphene_django.utils import GraphQLTestCase
|
|
|
|
from vbv_lernwelt.course.models import CourseSessionUser
|
|
from vbv_lernwelt.dashboard.tests.graphql.utils import (
|
|
add_course_session_user,
|
|
create_course,
|
|
create_course_session,
|
|
create_user,
|
|
)
|
|
|
|
|
|
class DashboardTestCase(GraphQLTestCase):
|
|
GRAPHQL_URL = "/server/graphql/"
|
|
|
|
def test_course_dashboard(self):
|
|
# GIVEN
|
|
supervisor = create_user("supervisor")
|
|
course, _ = create_course("Test Course")
|
|
course_session = create_course_session(course=course, title="Test Bern 2022 a")
|
|
add_course_session_user(
|
|
course_session=course_session,
|
|
user=supervisor,
|
|
role=CourseSessionUser.Role.SESSION_SUPERVISOR,
|
|
)
|
|
|
|
some_course, _ = create_course("Other Course")
|
|
some_course_session = create_course_session(
|
|
course=some_course, title="Here is go study"
|
|
)
|
|
add_course_session_user(
|
|
course_session=some_course_session,
|
|
user=supervisor,
|
|
role=CourseSessionUser.Role.MEMBER,
|
|
)
|
|
|
|
self.client.force_login(supervisor)
|
|
|
|
query = f"""
|
|
query {{
|
|
course_dashboard {{
|
|
course_id
|
|
course_title
|
|
}}
|
|
}}
|
|
"""
|
|
|
|
# WHEN
|
|
response = self.query(query)
|
|
|
|
# THEN
|
|
self.assertResponseNoErrors(response)
|
|
|
|
course_dashboard = response.json()["data"]["course_dashboard"]
|
|
|
|
self.assertEqual(len(course_dashboard), 1)
|
|
self.assertEqual(course_dashboard[0]["course_id"], str(course.id))
|
|
self.assertEqual(course_dashboard[0]["course_title"], str(course.title))
|
|
|
|
def test_course_dashboard_id(self):
|
|
# GIVEN
|
|
supervisor = create_user("supervisor")
|
|
course_1, _ = create_course("Test Course 1")
|
|
course_2, _ = create_course("Test Course 2")
|
|
course_session_1 = create_course_session(
|
|
course=course_1, title="Test Course 1 Session"
|
|
)
|
|
course_session_2 = create_course_session(
|
|
course=course_2, title="Test Course 2 Session"
|
|
)
|
|
add_course_session_user(
|
|
course_session=course_session_1,
|
|
user=supervisor,
|
|
role=CourseSessionUser.Role.SESSION_SUPERVISOR,
|
|
)
|
|
add_course_session_user(
|
|
course_session=course_session_2,
|
|
user=supervisor,
|
|
role=CourseSessionUser.Role.SESSION_SUPERVISOR,
|
|
)
|
|
|
|
self.client.force_login(supervisor)
|
|
|
|
query = f"""query($course_id: ID) {{
|
|
course_dashboard(course_id: $course_id) {{
|
|
course_id
|
|
}}
|
|
}}
|
|
"""
|
|
variables = {"course_id": str(course_2.id)}
|
|
|
|
# WHEN
|
|
response = self.query(query, variables=variables)
|
|
|
|
# THEN
|
|
self.assertResponseNoErrors(response)
|
|
|
|
course_dashboard = response.json()["data"]["course_dashboard"]
|
|
|
|
self.assertEqual(len(course_dashboard), 1)
|
|
self.assertEqual(course_dashboard[0]["course_id"], str(course_2.id))
|