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

View File

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