achievements tracking
This commit is contained in:
44
ui/tests.py
44
ui/tests.py
@@ -1,5 +1,5 @@
|
||||
from django.contrib.auth.models import AnonymousUser, User
|
||||
from django.test import RequestFactory, TestCase
|
||||
from django.test import RequestFactory, TestCase, Client
|
||||
|
||||
from .views import button
|
||||
|
||||
@@ -11,23 +11,31 @@ class SimpleTest(TestCase):
|
||||
username='testuser', email='test@test.test', password='testpass')
|
||||
|
||||
def test_button(self):
|
||||
# Create an instance of a GET request.
|
||||
request = self.factory.get('/snippets')
|
||||
request.user = self.user
|
||||
request.session = self.client.session
|
||||
response = button(request)
|
||||
# Test initial load
|
||||
c = Client()
|
||||
response = c.get('/button')
|
||||
self.assertEqual(response.status_code, 301)
|
||||
response = c.get('/button/')
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
request = self.factory.post(
|
||||
'/button',
|
||||
data={},
|
||||
content_type='application/json'
|
||||
)
|
||||
request.session = self.client.session
|
||||
response = button(request)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(request.session.get('pressed'), 1)
|
||||
self.assertEqual(response.context.get("achievement"), {})
|
||||
|
||||
response = button(request)
|
||||
# Test first achievement
|
||||
response = c.post('/button/', {})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(request.session.get('pressed'), 2)
|
||||
self.assertEqual(response.json().get("pressed"), 1)
|
||||
self.assertEqual(response.json().get("achievement"), "Clicked!")
|
||||
self.assertEqual(c.session.get('pressed'), 1)
|
||||
|
||||
# Test second achievement
|
||||
response = c.post('/button/', {})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.json().get("pressed"), 2)
|
||||
self.assertEqual(response.json().get("achievement"), "Clicked Twice!")
|
||||
self.assertEqual(c.session.get('pressed'), 2)
|
||||
|
||||
# Test no achievement
|
||||
response = c.post('/button/', {})
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.json().get("pressed"), 3)
|
||||
self.assertEqual(response.json().get("achievement"), None)
|
||||
self.assertEqual(c.session.get('pressed'), 3)
|
||||
Reference in New Issue
Block a user