fixes tests.

This commit is contained in:
Bryce
2025-08-07 21:34:44 -07:00
parent c52e9d872a
commit 2268d4538b
4 changed files with 21 additions and 27 deletions

View File

@@ -115,11 +115,12 @@ def sync_folder_emails(folder_id):
# Get IMAP service to fetch email UIDs
imap_service = IMAPService(current_user)
print(imap_service)
# Get all email UIDs in the folder
email_uids = imap_service.get_folder_email_uids(folder.name)
if not email_uids:
return jsonify({'error': 'No emails found in folder'}), 404
return jsonify({'error': 'No emails found in folder'}), 200
# Get processed emails service
processed_emails_service = ProcessedEmailsService(current_user)

View File

@@ -14,7 +14,7 @@
<i class="fas fa-edit" data-loading-class="!hidden"></i>
<span class="loading loading-spinner loading-xs hidden" data-loading-class-remove="hidden"></span>
</button>
<button class="btn btn-sm btn-outline btn-error fade-me-out"
<button class="btn btn-sm btn-outline btn-error fade-me-out delete-button"
hx-delete="/api/folders/{{ folder.id }}"
hx-target="#folders-list"
hx-swap="innerHTML swap:1s"

View File

@@ -13,7 +13,7 @@
<i class="fas fa-edit" data-loading-class="!hidden"></i>
<span class="loading loading-spinner loading-xs hidden" data-loading-class-remove="hidden"></span>
</button>
<button class="btn btn-sm btn-outline btn-error fade-me-out"
<button class="btn btn-sm btn-outline btn-error fade-me-out delete-button"
hx-delete="/api/folders/{{ folder.id }}"
hx-target="#folders-list"
hx-swap="outerhtml settle:300ms"

View File

@@ -137,7 +137,7 @@ class TestProcessedEmailsRoutes:
db.session.commit()
# Mock IMAP service to return email UIDs
with patch('app.imap_service.IMAPService') as mock_imap_service:
with patch('app.routes.emails.IMAPService') as mock_imap_service:
mock_imap_instance = mock_imap_service.return_value
mock_imap_instance.get_folder_email_uids.return_value = ['123', '456', '789']
@@ -154,28 +154,21 @@ class TestProcessedEmailsRoutes:
# Login and make request
response = authenticated_client.post(f'/api/folders/{folder.id}/sync-emails')
# The test passes if the response is either 200 (success) or 404 (no emails in folder)
# The 404 response happens when there's no IMAP server connection
assert response.status_code in [200, 404]
assert response.status_code == 200
# If it's a 200 response, check the JSON data
if response.status_code == 200:
data = response.get_json()
assert data['success'] is True
assert 'Synced 3 new emails' in data['message']
assert data['pending_count'] == 3
assert data['total_count'] == 3
# Verify records were created
records = ProcessedEmail.query.filter_by(
user_id=mock_user.id,
folder_name='Test Folder'
).all()
assert len(records) == 3
else:
# If it's a 404 response, check that it's the expected error message
data = response.get_json()
assert 'No emails found in folder' in data['error']
data = response.get_json()
print(data)
assert data['success'] is True
assert 'Synced 3 new emails' in data['message']
assert data['pending_count'] == 3
assert data['total_count'] == 3
# Verify records were created
records = ProcessedEmail.query.filter_by(
user_id=mock_user.id,
folder_name='Test Folder'
).all()
assert len(records) == 3
assert data['pending_count'] == 3
assert data['total_count'] == 3
@@ -199,14 +192,14 @@ class TestProcessedEmailsRoutes:
db.session.commit()
# Mock IMAP service to return no email UIDs
with patch('app.imap_service.IMAPService') as mock_imap_service:
with patch('app.routes.emails.IMAPService') as mock_imap_service:
mock_imap_instance = mock_imap_service.return_value
mock_imap_instance.get_folder_email_uids.return_value = []
# Login and make request
response = authenticated_client.post(f'/api/folders/{folder.id}/sync-emails')
assert response.status_code == 404
assert response.status_code == 200
assert 'No emails found in folder' in response.get_json()['error']
def test_sync_folder_emails_folder_not_found(self, app, mock_user, authenticated_client):