From 0af01b4a4830d524bd7c1f4ba4f19ba7160b8676 Mon Sep 17 00:00:00 2001 From: Christian Cueni Date: Thu, 25 Jul 2019 07:37:05 +0200 Subject: [PATCH] Add mutation test --- server/api/utils.py | 2 -- server/users/tests/test_usersettings.py | 40 +++++++++++++++---------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/server/api/utils.py b/server/api/utils.py index 3b3e76f1..9318513d 100644 --- a/server/api/utils.py +++ b/server/api/utils.py @@ -1,8 +1,6 @@ import io import os -from django.apps import apps -from graphene_django.filter import DjangoFilterConnectionField from graphql_relay.node.node import from_global_id """Script defined to create helper functions for graphql schema.""" diff --git a/server/users/tests/test_usersettings.py b/server/users/tests/test_usersettings.py index 5a9dc89c..963273be 100644 --- a/server/users/tests/test_usersettings.py +++ b/server/users/tests/test_usersettings.py @@ -10,6 +10,8 @@ from django.contrib.sessions.middleware import SessionMiddleware from django.test import TestCase, RequestFactory from graphene.test import Client +from graphql_relay import to_global_id + from api.schema import schema from core.factories import UserFactory from users.factories import SchoolClassFactory @@ -32,7 +34,7 @@ class UserSettingTests(TestCase): request.session.save() self.client = Client(schema=schema, context_value=request) - def make_request(self, class_id): + def make_mutation(self, class_id): mutation = ''' mutation UpdateSettings($input: UpdateSettingInput!) { updateSetting(input: $input) { @@ -46,11 +48,11 @@ class UserSettingTests(TestCase): return self.client.execute(mutation, variables={ 'input': { - 'id': class_id + 'id': to_global_id('SchoolClassNode', class_id) } }) - def test_selects_first_class_on_first_call(self): + def make_query(self): query = ''' query MeQuery { me { @@ -62,27 +64,33 @@ class UserSettingTests(TestCase): } ''' + return self.client.execute(query) + + def test_selects_first_class_on_first_call(self): + result = self.make_query() first_class = self.user.school_classes.first() - result = self.client.execute(query) self.assertIsNone(result.get('errors')) self.assertEqual(result.get('data').get('me').get('selectedClass').get('name'), first_class.name) def test_returns_selected_class(self): - query = ''' - query MeQuery { - me { - selectedClass { - name - id - } - } - } - ''' - selected_class = self.user.school_classes.all()[1] setting = UserSetting.objects.create(user=self.user, selected_class=selected_class) setting.save() - result = self.client.execute(query) + result = self.make_query() self.assertIsNone(result.get('errors')) self.assertEqual(result.get('data').get('me').get('selectedClass').get('name'), selected_class.name) + + def test_user_can_select_class(self): + + selected_class = self.user.school_classes.first() + setting = UserSetting.objects.create(user=self.user, selected_class=selected_class) + setting.save() + + selected_class = self.user.school_classes.all()[1] + mutation_result = self.make_mutation(selected_class.pk) + self.assertIsNone(mutation_result.get('errors')) + query_result = self.make_query() + self.assertIsNone(query_result.get('errors')) + self.assertEqual(query_result.get('data').get('me').get('selectedClass').get('name'), + selected_class.name)