From 13be9bb461829b9158cb57ca2dfb6c43c7ff951b Mon Sep 17 00:00:00 2001 From: Md Bayazid Bostame Date: Wed, 1 Apr 2026 13:13:14 +0200 Subject: [PATCH] fix: render branded welcome subject placeholders --- backend/workflows/branding.py | 4 +-- .../tests/test_welcome_email_schedule.py | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/backend/workflows/branding.py b/backend/workflows/branding.py index 1679a0a..2352d69 100644 --- a/backend/workflows/branding.py +++ b/backend/workflows/branding.py @@ -268,8 +268,8 @@ def get_default_notification_templates() -> dict[str, dict[str, str]]: support_email = company_contact['it_contact_email'] or branding_copy['support_email'] or f"it@{branding_copy['company_domain']}" welcome = templates.get('onboarding_welcome') if welcome: - welcome['subject'] = f'Willkommen bei {company_name}, {{ VORNAME }}' - welcome['subject_en'] = f'Welcome to {company_name}, {{ VORNAME }}' + welcome['subject'] = f'Willkommen bei {company_name}, {{{{ VORNAME }}}}' + welcome['subject_en'] = f'Welcome to {company_name}, {{{{ VORNAME }}}}' welcome['body'] = ( 'Hallo {{ FULL_NAME }},\n\n' f'herzlich willkommen bei {company_name}.\n' diff --git a/backend/workflows/tests/test_welcome_email_schedule.py b/backend/workflows/tests/test_welcome_email_schedule.py index 33f83e6..3c0c1f8 100644 --- a/backend/workflows/tests/test_welcome_email_schedule.py +++ b/backend/workflows/tests/test_welcome_email_schedule.py @@ -6,6 +6,8 @@ from django.contrib.auth import get_user_model from django.test import TestCase, override_settings from django.utils import timezone +from workflows.branding import get_default_notification_templates +from workflows.email_workflows import render_notification_template from workflows.models import NotificationTemplate, OnboardingRequest, ScheduledWelcomeEmail, WorkflowConfig from workflows.tasks import process_onboarding_request, send_scheduled_welcome_email @@ -160,3 +162,32 @@ class WelcomeEmailScheduleTests(TestCase): kwargs = mock_send_templated.call_args.kwargs self.assertEqual(kwargs.get('attachments'), []) self.assertEqual(kwargs.get('from_email'), 'admin.sender@tub.co') + + def test_branded_default_welcome_subject_renders_first_name(self): + default_templates = get_default_notification_templates() + + self.assertIn('{{ VORNAME }}', default_templates['onboarding_welcome']['subject']) + self.assertIn('{{ VORNAME }}', default_templates['onboarding_welcome']['subject_en']) + + context = { + 'VORNAME': 'Anika', + 'FULL_NAME': 'Anika Anan', + 'DEPARTMENT': 'IT', + 'CONTRACT_START': '2026-04-01', + 'EMAIL': 'anika@tub.co', + } + subject_de, _body_de = render_notification_template( + 'onboarding_welcome', + context, + language_code='de', + ) + subject_en, _body_en = render_notification_template( + 'onboarding_welcome', + context, + language_code='en', + ) + + self.assertIn('Anika', subject_de) + self.assertNotIn('{ VORNAME }', subject_de) + self.assertIn('Anika', subject_en) + self.assertNotIn('{ VORNAME }', subject_en)