This commit is contained in:
Bryce
2025-08-03 21:49:18 -07:00
parent e5efb541c4
commit fb3906a670
2 changed files with 50 additions and 18 deletions

View File

@@ -12,7 +12,7 @@ MOCK_USER_ID = 1
@main.route('/')
def index():
# Ensure the mock user exists
user = User.query.get(MOCK_USER_ID)
user = db.session.get(User, MOCK_USER_ID)
if not user:
user = User(id=MOCK_USER_ID, email='prototype@example.com')
db.session.add(user)

View File

@@ -37,10 +37,14 @@ def test_add_folder_validation_failure_empty_name(client, mock_user):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
soup = BeautifulSoup(response.data, 'html.parser')
# Check that the specific error message is present
assert b'Folder name is required' in response.data
error_text = soup.find(string='Folder name is required')
assert error_text is not None
# Check that the input field has the error class
assert b'input-error' in response.data
name_input = soup.find('input', {'name': 'name'})
assert name_input is not None
assert 'input-error' in name_input.get('class', [])
def test_add_folder_validation_failure_short_name(client, mock_user):
"""Test validation failure when folder name is too short."""
@@ -49,7 +53,9 @@ def test_add_folder_validation_failure_short_name(client, mock_user):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
assert b'Folder name must be at least 3 characters' in response.data
soup = BeautifulSoup(response.data, 'html.parser')
error_text = soup.find(string='Folder name must be at least 3 characters')
assert error_text is not None
def test_add_folder_validation_failure_long_name(client, mock_user):
"""Test validation failure when folder name is too long."""
@@ -59,7 +65,9 @@ def test_add_folder_validation_failure_long_name(client, mock_user):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
assert b'Folder name must be less than 50 characters' in response.data
soup = BeautifulSoup(response.data, 'html.parser')
error_text = soup.find(string='Folder name must be less than 50 characters')
assert error_text is not None
def test_add_folder_validation_failure_empty_rule(client, mock_user):
"""Test validation failure when rule text is empty."""
@@ -68,7 +76,9 @@ def test_add_folder_validation_failure_empty_rule(client, mock_user):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
assert b'Rule text is required' in response.data
soup = BeautifulSoup(response.data, 'html.parser')
error_text = soup.find(string='Rule text is required')
assert error_text is not None
def test_add_folder_validation_failure_short_rule(client, mock_user):
"""Test validation failure when rule text is too short."""
@@ -77,7 +87,9 @@ def test_add_folder_validation_failure_short_rule(client, mock_user):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
assert b'Rule text must be at least 10 characters' in response.data
soup = BeautifulSoup(response.data, 'html.parser')
error_text = soup.find(string='Rule text must be at least 10 characters')
assert error_text is not None
def test_add_folder_validation_failure_long_rule(client, mock_user):
"""Test validation failure when rule text is too long."""
@@ -87,7 +99,9 @@ def test_add_folder_validation_failure_long_rule(client, mock_user):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
assert b'Rule text must be less than 200 characters' in response.data
soup = BeautifulSoup(response.data, 'html.parser')
error_text = soup.find(string='Rule text must be less than 200 characters')
assert error_text is not None
def test_add_folder_validation_multiple_errors(client, mock_user):
"""Test validation failure with multiple errors."""
@@ -96,8 +110,11 @@ def test_add_folder_validation_multiple_errors(client, mock_user):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
assert b'Folder name must be at least 3 characters' in response.data
assert b'Rule text must be at least 10 characters' in response.data
soup = BeautifulSoup(response.data, 'html.parser')
error_text1 = soup.find(string='Folder name must be at least 3 characters')
error_text2 = soup.find(string='Rule text must be at least 10 characters')
assert error_text1 is not None
assert error_text2 is not None
# Edit folder validation failure tests
def test_edit_folder_validation_failure_empty_name(client, mock_folder):
@@ -107,7 +124,9 @@ def test_edit_folder_validation_failure_empty_name(client, mock_folder):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
assert b'Folder name is required' in response.data
soup = BeautifulSoup(response.data, 'html.parser')
error_text = soup.find(string='Folder name is required')
assert error_text is not None
def test_edit_folder_validation_failure_short_name(client, mock_folder):
"""Test validation failure when folder name is too short during edit."""
@@ -116,7 +135,9 @@ def test_edit_folder_validation_failure_short_name(client, mock_folder):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
assert b'Folder name must be at least 3 characters' in response.data
soup = BeautifulSoup(response.data, 'html.parser')
error_text = soup.find(string='Folder name must be at least 3 characters')
assert error_text is not None
def test_edit_folder_validation_failure_long_name(client, mock_folder):
"""Test validation failure when folder name is too long during edit."""
@@ -126,7 +147,9 @@ def test_edit_folder_validation_failure_long_name(client, mock_folder):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
assert b'Folder name must be less than 50 characters' in response.data
soup = BeautifulSoup(response.data, 'html.parser')
error_text = soup.find(string='Folder name must be less than 50 characters')
assert error_text is not None
def test_edit_folder_validation_failure_empty_rule(client, mock_folder):
"""Test validation failure when rule text is empty during edit."""
@@ -135,7 +158,9 @@ def test_edit_folder_validation_failure_empty_rule(client, mock_folder):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
assert b'Rule text is required' in response.data
soup = BeautifulSoup(response.data, 'html.parser')
error_text = soup.find(string='Rule text is required')
assert error_text is not None
def test_edit_folder_validation_failure_short_rule(client, mock_folder):
"""Test validation failure when rule text is too short during edit."""
@@ -144,7 +169,9 @@ def test_edit_folder_validation_failure_short_rule(client, mock_folder):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
assert b'Rule text must be at least 10 characters' in response.data
soup = BeautifulSoup(response.data, 'html.parser')
error_text = soup.find(string='Rule text must be at least 10 characters')
assert error_text is not None
def test_edit_folder_validation_failure_long_rule(client, mock_folder):
"""Test validation failure when rule text is too long during edit."""
@@ -154,7 +181,9 @@ def test_edit_folder_validation_failure_long_rule(client, mock_folder):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
assert b'Rule text must be less than 200 characters' in response.data
soup = BeautifulSoup(response.data, 'html.parser')
error_text = soup.find(string='Rule text must be less than 200 characters')
assert error_text is not None
def test_edit_folder_validation_multiple_errors(client, mock_folder):
"""Test validation failure with multiple errors during edit."""
@@ -163,8 +192,11 @@ def test_edit_folder_validation_multiple_errors(client, mock_folder):
content_type='application/x-www-form-urlencoded')
assert response.status_code == 200
assert b'Folder name must be at least 3 characters' in response.data
assert b'Rule text must be at least 10 characters' in response.data
soup = BeautifulSoup(response.data, 'html.parser')
error_text1 = soup.find(string='Folder name must be at least 3 characters')
error_text2 = soup.find(string='Rule text must be at least 10 characters')
assert error_text1 is not None
assert error_text2 is not None
# Dialog close tests
def test_add_folder_success_closes_dialog(client, mock_user):