Files
workdock-platform/backend/workflows/tests/test_session_warning.py
Md Bayazid Bostame 6d8c727b29
Some checks failed
CI / python-validation (push) Has been cancelled
CI / docker-release-gate (push) Has been cancelled
i18n / compile-translations (push) Has been cancelled
feat: add session warning countdown ring
2026-04-01 22:12:22 +02:00

53 lines
1.8 KiB
Python

from django.contrib.auth import get_user_model
from django.test import Client, TestCase
from django.test.utils import override_settings
TEST_STORAGES = {
'default': {
'BACKEND': 'django.core.files.storage.FileSystemStorage',
},
'staticfiles': {
'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage',
},
}
@override_settings(STORAGES=TEST_STORAGES)
class SessionWarningTests(TestCase):
def setUp(self):
self.user = get_user_model().objects.create_user(
username='session-user',
email='session@example.com',
password='secret-12345',
)
def test_base_shell_exposes_session_warning_config(self):
client = Client(HTTP_HOST='localhost')
client.force_login(self.user)
response = client.get('/')
self.assertEqual(response.status_code, 200)
self.assertContains(response, 'WorkdockSessionConfig')
self.assertContains(response, '/session/keepalive/')
self.assertContains(response, 'Ihre Sitzung läuft bald ab')
self.assertContains(response, 'app-session-warning-status')
self.assertContains(response, 'app-session-warning-seconds')
self.assertContains(response, 'Was passiert?')
def test_keepalive_refreshes_session_timestamps(self):
client = Client(HTTP_HOST='localhost')
client.force_login(self.user)
session = client.session
session['last_activity_ts'] = 1
session['auth_fresh_ts'] = 1
session.save()
response = client.post('/session/keepalive/', {}, HTTP_HOST='localhost')
self.assertEqual(response.status_code, 200)
session = client.session
self.assertGreater(session['last_activity_ts'], 1)
self.assertGreater(session['auth_fresh_ts'], 1)