skillbox/server/users/tests/test_onboarding.py

50 lines
1.6 KiB
Python

from django.test import TestCase
from graphene import Context
from graphene.test import Client
from core.factories import UserFactory
from users.factories import SchoolClassFactory
from users.models import SchoolClass, SchoolClassMember
from api.schema import schema
class OnboardingTest(TestCase):
def setUp(self):
self.client = Client(schema=schema)
self.user = UserFactory(username='ueli')
SchoolClassFactory(users=[self.user], name='Klasse 1A', code='XXXX')
self.context = Context(user=self.user)
self.me_query = """
query MeQuery {
me {
onboardingVisited
}
}
"""
self.mutation = """
mutation UpdateOnboardingProgress {
updateOnboardingProgress {
success
}
}
"""
def test_show_onboarding(self):
executed = self.client.execute(self.me_query, context=self.context)
self.assertIsNone(executed.get('errors', None))
result = executed['data']['me']
self.assertEqual(result['onboardingVisited'], False)
def test_update_onboarding(self):
executed = self.client.execute(self.mutation, context=self.context)
self.assertIsNone(executed.get('errors', None))
result = executed['data']['updateOnboardingProgress']
self.assertEqual(result['success'], True)
executed = self.client.execute(self.me_query, context=self.context)
self.assertIsNone(executed.get('errors', None))
result = executed['data']['me']
self.assertEqual(result['onboardingVisited'], True)