""" مهمان هم refresh token می‌گیرد. قبلاً مهمان فقط توکنِ یک‌ساعته داشت؛ بعد از یک ساعت همه‌ی درخواست‌ها ۴۰۱ می‌شدند و اپ که هنوز خودش را واردشده می‌دید، بی‌صدا خطا می‌خورد. """ from django.core.cache import cache from django.test import TestCase class GuestRefreshTokenTests(TestCase): def setUp(self): cache.clear() def _guest(self, device='device-abc'): return self.client.post( '/api/auth/session', {'type': 'guest', 'deviceId': device}, content_type='application/json', ).json() def test_guest_session_returns_a_refresh_token(self): body = self._guest() self.assertTrue(body['refreshToken']) def test_the_refresh_token_renews_the_same_guest(self): body = self._guest() renewed = self.client.post( '/api/auth/refresh', {'refreshToken': body['refreshToken']}, content_type='application/json', ) self.assertEqual(renewed.status_code, 200) profile = self.client.get( '/api/user/profile', HTTP_AUTHORIZATION=f"Bearer {renewed.json()['token']}", ).json() self.assertEqual(profile['userId'], body['userId']) self.assertTrue(profile['isGuest']) def test_each_guest_session_gets_its_own_refresh_token(self): self.assertNotEqual(self._guest()['refreshToken'], self._guest()['refreshToken'])