chore: initial snapshot of tubco people portal
This commit is contained in:
59
backend/workflows/tests/test_offboarding_flow.py
Normal file
59
backend/workflows/tests/test_offboarding_flow.py
Normal file
@@ -0,0 +1,59 @@
|
||||
from unittest.mock import patch
|
||||
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.test import TestCase
|
||||
|
||||
from workflows.models import EmployeeProfile, OffboardingRequest
|
||||
|
||||
|
||||
class OffboardingFlowTests(TestCase):
|
||||
def setUp(self):
|
||||
user_model = get_user_model()
|
||||
self.user = user_model.objects.create_user(
|
||||
username='offboard_user',
|
||||
password='secret123',
|
||||
email='operator@tub.co',
|
||||
first_name='Nina',
|
||||
last_name='Admin',
|
||||
)
|
||||
self.client.force_login(self.user)
|
||||
self.profile = EmployeeProfile.objects.create(
|
||||
full_name='Lara Beispiel',
|
||||
first_name='Lara',
|
||||
last_name='Beispiel',
|
||||
department='IT-Service',
|
||||
job_title='Engineer',
|
||||
work_email='lara.beispiel@tub.co',
|
||||
)
|
||||
|
||||
def test_offboarding_prefill_from_profile(self):
|
||||
response = self.client.get(f'/offboarding/new/?profile={self.profile.id}', HTTP_HOST='localhost')
|
||||
html = response.content.decode('utf-8')
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertIn('value="Lara Beispiel"', html)
|
||||
self.assertIn('value="lara.beispiel@tub.co"', html)
|
||||
self.assertIn('value="Engineer"', html)
|
||||
|
||||
@patch('workflows.views.process_offboarding_request.delay')
|
||||
def test_offboarding_submit_uses_logged_in_user_email(self, mock_delay):
|
||||
payload = {
|
||||
'full_name': self.profile.full_name,
|
||||
'work_email': self.profile.work_email,
|
||||
'department': self.profile.department,
|
||||
'job_title': self.profile.job_title,
|
||||
'last_working_day': '2026-12-31',
|
||||
'notes': 'Bitte Accounts sperren.',
|
||||
}
|
||||
|
||||
response = self.client.post(
|
||||
f'/offboarding/new/?profile={self.profile.id}',
|
||||
payload,
|
||||
HTTP_HOST='localhost',
|
||||
)
|
||||
|
||||
self.assertEqual(response.status_code, 302)
|
||||
obj = OffboardingRequest.objects.get(work_email=self.profile.work_email)
|
||||
self.assertEqual(obj.requested_by_email, 'operator@tub.co')
|
||||
self.assertEqual(obj.requested_by_name, 'Nina Admin')
|
||||
mock_delay.assert_called_once_with(obj.id)
|
||||
Reference in New Issue
Block a user