Add unit test for old classes query

This commit is contained in:
Ramon Wenger 2020-03-09 15:34:09 +01:00
parent 229c6b4d8b
commit 442bab19bc
3 changed files with 32 additions and 22 deletions

View File

@ -0,0 +1,13 @@
query OldClassesQuery {
me {
id
oldClasses {
edges {
node {
id
name
}
}
}
}
}

View File

@ -11,7 +11,7 @@
</template>
<script>
import gql from 'graphql-tag';
import OLD_CLASSES_QUERY from '@/graphql/gql/oldClasses.gql';
import updateSelectedClassMixin from '@/mixins/updateSelectedClass';
@ -27,23 +27,10 @@
}
},
// todo: test this in front- and backend
apollo: {
me: {
query: gql`
query OldClassesQuery {
me {
id
oldClasses {
edges {
node {
id
name
}
}
}
}
}
`,
query: OLD_CLASSES_QUERY,
update(data) {
return this.$getRidOfEdges(data).me;
}

View File

@ -11,10 +11,12 @@ from django.conf import settings
from django.test import TestCase, RequestFactory
from graphene.test import Client
from api.schema import schema
from api.utils import get_graphql_query
from core.factories import UserFactory
from django.contrib.auth import authenticate
from users.factories import SchoolClassFactory
from users.models import SchoolClassMember
class MySchoolClasses(TestCase):
@ -24,13 +26,17 @@ class MySchoolClasses(TestCase):
self.class1 = SchoolClassFactory(users=[self.user, self.another_user])
self.class2 = SchoolClassFactory(users=[self.user])
self.class3 = SchoolClassFactory(users=[self.another_user])
self.inactive_class = SchoolClassFactory(users=[self.user])
inactive_member = SchoolClassMember.objects.get(school_class=self.inactive_class)
inactive_member.active = False
inactive_member.save()
request = RequestFactory().get('/')
request.user = self.user
self.client = Client(schema=schema, context_value=request)
def make_query(self):
def test_user_sees_her_classes(self):
query = '''
query {
me {
@ -55,11 +61,8 @@ class MySchoolClasses(TestCase):
}
}
'''
return self.client.execute(query)
def test_user_sees_her_classes(self):
result = self.make_query()
result = self.client.execute(query)
classes = result.get('data').get('me').get('schoolClasses').get('edges')
self.assertEqual(len(classes), 2)
@ -72,5 +75,12 @@ class MySchoolClasses(TestCase):
elif school_class.get('name') == self.class2:
self.fail('MySchoolClassTest:test_user_sees_her_classes: Class should not be in response')
def test_old_classes(self):
query = get_graphql_query('oldClasses.gql')
result = self.client.execute(query)
old_classes = result.get('data').get('me').get('oldClasses').get('edges')
self.assertEqual(len(old_classes), 1)