50 lines
1.6 KiB
Python
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)
|
|
|