Add unit test for old classes query
This commit is contained in:
parent
229c6b4d8b
commit
442bab19bc
|
|
@ -0,0 +1,13 @@
|
||||||
|
query OldClassesQuery {
|
||||||
|
me {
|
||||||
|
id
|
||||||
|
oldClasses {
|
||||||
|
edges {
|
||||||
|
node {
|
||||||
|
id
|
||||||
|
name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue