snapshot: preserve custom field parity across forms timeline and pdf
This commit is contained in:
73
backend/workflows/tests/test_request_timeline.py
Normal file
73
backend/workflows/tests/test_request_timeline.py
Normal file
@@ -0,0 +1,73 @@
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.test import TestCase
|
||||
|
||||
from workflows.models import FormCustomFieldConfig, OffboardingRequest, OnboardingRequest
|
||||
from workflows.roles import ROLE_ADMIN, assign_user_role
|
||||
|
||||
|
||||
class RequestTimelineCustomFieldTests(TestCase):
|
||||
def setUp(self):
|
||||
user_model = get_user_model()
|
||||
self.user = user_model.objects.create_user(
|
||||
username='timeline_admin',
|
||||
email='timeline-admin@example.com',
|
||||
password='secret123',
|
||||
)
|
||||
assign_user_role(self.user, ROLE_ADMIN)
|
||||
self.client.force_login(self.user)
|
||||
|
||||
def test_onboarding_timeline_renders_custom_field_values(self):
|
||||
FormCustomFieldConfig.objects.create(
|
||||
form_type='onboarding',
|
||||
field_key='office_location',
|
||||
section_key='stammdaten',
|
||||
sort_order=0,
|
||||
field_type='text',
|
||||
is_active=True,
|
||||
label='Bürostandort',
|
||||
)
|
||||
obj = OnboardingRequest.objects.create(
|
||||
full_name='Max Mustermann',
|
||||
gender='herr',
|
||||
job_title='Consultant',
|
||||
department='IT-Service',
|
||||
work_email='max.mustermann@workdock.de',
|
||||
contract_start='2026-11-01',
|
||||
employment_type='unbefristet',
|
||||
agreement='accepted',
|
||||
custom_field_values={'office_location': 'Berlin Mitte'},
|
||||
)
|
||||
|
||||
response = self.client.get(f'/requests/timeline/onboarding/{obj.id}/', HTTP_HOST='localhost')
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, 'Benutzerdefinierte Felder')
|
||||
self.assertContains(response, 'Bürostandort')
|
||||
self.assertContains(response, 'Berlin Mitte')
|
||||
|
||||
def test_offboarding_timeline_renders_custom_field_values(self):
|
||||
FormCustomFieldConfig.objects.create(
|
||||
form_type='offboarding',
|
||||
field_key='return_comment',
|
||||
section_key='abschluss',
|
||||
sort_order=0,
|
||||
field_type='textarea',
|
||||
is_active=True,
|
||||
label='Rückgabehinweis',
|
||||
)
|
||||
obj = OffboardingRequest.objects.create(
|
||||
full_name='Lara Beispiel',
|
||||
work_email='lara.beispiel@workdock.de',
|
||||
department='IT-Service',
|
||||
job_title='Engineer',
|
||||
last_working_day='2026-12-31',
|
||||
requested_by_email='admin@workdock.de',
|
||||
custom_field_values={'return_comment': 'Abholung durch IT am Freitag.'},
|
||||
)
|
||||
|
||||
response = self.client.get(f'/requests/timeline/offboarding/{obj.id}/', HTTP_HOST='localhost')
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertContains(response, 'Benutzerdefinierte Felder')
|
||||
self.assertContains(response, 'Rückgabehinweis')
|
||||
self.assertContains(response, 'Abholung durch IT am Freitag.')
|
||||
Reference in New Issue
Block a user