""" Tests for Café Bach Email Generator - Form Validation """ import pytest from app.forms import EmailGeneratorForm def test_email_form_valid_data(): """Test form with valid data.""" form = EmailGeneratorForm( title='Test Event', date_time='2024-12-25 18:00:00', location='Test Location', description='This is a test event description.', button_text='RSVP Now', button_url='https://example.com/rsvp', ) assert form.validate_on_submit() is False # validate_on_submit requires POST context assert form.title.data == 'Test Event' assert form.location.data == 'Test Location' def test_email_form_missing_required_fields(): """Test form with missing required fields.""" form = EmailGeneratorForm() assert not form.validate() def test_email_form_title_length(): """Test title length validation.""" long_title = 'A' * 101 form = EmailGeneratorForm(title=long_title) assert not form.validate() def test_email_form_description_length(): """Test description length validation.""" long_desc = 'A' * 2001 form = EmailGeneratorForm(description=long_desc) assert not form.validate() def test_email_form_button_text_length(): """Test button text length validation.""" long_text = 'A' * 51 form = EmailGeneratorForm(button_text=long_text) assert not form.validate() def test_email_form_next_event_text_length(): """Test next event text length validation.""" long_text = 'A' * 101 form = EmailGeneratorForm(next_event_text=long_text) assert not form.validate() def test_email_form_optional_image_url(): """Test that image URL is optional.""" form = EmailGeneratorForm( title='Test', date_time='2024-12-25 18:00:00', location='Test', description='Test', button_text='RSVP', button_url='https://example.com', ) # Should validate without image_url assert form.title.is.data == 'Test' assert form.location.data == 'Test'