Add unit test for course profile update
This commit is contained in:
parent
f6e459fafe
commit
d0ef9bd5fd
|
|
@ -0,0 +1,94 @@
|
|||
from django.test import RequestFactory, TestCase
|
||||
from graphene.test import Client
|
||||
|
||||
from vbv_lernwelt.core.admin import User
|
||||
from vbv_lernwelt.core.create_default_users import create_default_users
|
||||
from vbv_lernwelt.core.schema import schema
|
||||
from vbv_lernwelt.course.management.commands.create_default_courses import (
|
||||
create_versicherungsvermittlerin_course,
|
||||
)
|
||||
from vbv_lernwelt.learnpath.creators import create_course_profiles
|
||||
|
||||
|
||||
class CourseGraphQLTestCase(TestCase):
|
||||
def setUp(self) -> None:
|
||||
create_default_users()
|
||||
create_course_profiles()
|
||||
create_versicherungsvermittlerin_course()
|
||||
user = User.objects.get(username="student-vv@eiger-versicherungen.ch")
|
||||
request = RequestFactory().get("/")
|
||||
request.user = user
|
||||
self.client = Client(schema=schema, context_value=request)
|
||||
|
||||
def test_query(self):
|
||||
query = """
|
||||
query CourseQuery($slug: String!) {
|
||||
course(slug: $slug){
|
||||
id
|
||||
profiles
|
||||
course_session_users {
|
||||
id
|
||||
__typename
|
||||
chosen_profile
|
||||
course_session {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
slug = "versicherungsvermittler-in"
|
||||
variables = {"slug": slug}
|
||||
result = self.client.execute(query, variables=variables)
|
||||
|
||||
self.assertIsNone(result.get("errors"))
|
||||
data = result.get("data")
|
||||
course = data.get("course")
|
||||
profiles = course.get("profiles")
|
||||
self.assertEqual(
|
||||
set(profiles), set(["nichtleben", "leben", "krankenzusatzversicherung"])
|
||||
)
|
||||
course_session_user = course.get("course_session_users")[0]
|
||||
chosen_profile = course_session_user.get("chosen_profile")
|
||||
|
||||
self.assertEqual(chosen_profile, "")
|
||||
|
||||
mutation = """
|
||||
mutation UpdateCourseSessionProfile($input: CourseSessionProfileMutationInput!) {
|
||||
update_course_session_profile(input: $input) {
|
||||
clientMutationId
|
||||
result {
|
||||
__typename
|
||||
... on UpdateCourseProfileSuccess {
|
||||
user {
|
||||
id
|
||||
chosen_profile
|
||||
}
|
||||
}
|
||||
... on UpdateCourseProfileError {
|
||||
message
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"""
|
||||
|
||||
profile = "nichtleben"
|
||||
input = {"course_profile": profile, "course_slug": slug}
|
||||
|
||||
mutation_result = self.client.execute(mutation, variables={"input": input})
|
||||
|
||||
self.assertIsNone(mutation_result.get("errors"))
|
||||
|
||||
second_query_result = self.client.execute(query, variables=variables)
|
||||
|
||||
self.assertIsNone(second_query_result.get("errors"))
|
||||
data = second_query_result.get("data")
|
||||
course = data.get("course")
|
||||
profiles = course.get("profiles")
|
||||
self.assertEqual(
|
||||
set(profiles), set(["nichtleben", "leben", "krankenzusatzversicherung"])
|
||||
)
|
||||
course_session_user = course.get("course_session_users")[0]
|
||||
chosen_profile = course_session_user.get("chosen_profile")
|
||||
self.assertEqual(chosen_profile, profile)
|
||||
Loading…
Reference in New Issue