Add push notification functionality with tests and digest scheduler
All checks were successful
Chore App Build, Test, and Push Docker Images / build-and-push (push) Successful in 2m14s
All checks were successful
Chore App Build, Test, and Push Docker Images / build-and-push (push) Successful in 2m14s
- Implemented push subscription API with tests for subscribing and unsubscribing users. - Created web push notification tests triggered by child actions. - Added digest scheduler to send email digests to users at 9 PM local time. - Developed utility functions for creating and validating digest action tokens. - Integrated web push sender to handle sending notifications to users. - Added service worker for handling push notifications in the frontend. - Created a push opt-in component for user notification preferences. - Implemented tests for the push opt-in component to ensure correct behavior. - Updated frontend services to manage push subscriptions and permissions.
This commit is contained in:
@@ -227,3 +227,36 @@ def test_update_profile_success(authenticated_client):
|
||||
assert user['first_name'] == 'Updated'
|
||||
assert user['last_name'] == 'Name'
|
||||
assert user['image_id'] == 'new_image'
|
||||
|
||||
|
||||
def test_get_profile_includes_email_digest_enabled(authenticated_client):
|
||||
"""GET /user/profile response includes email_digest_enabled field."""
|
||||
response = authenticated_client.get('/user/profile')
|
||||
assert response.status_code == 200
|
||||
data = response.get_json()
|
||||
assert 'email_digest_enabled' in data
|
||||
assert isinstance(data['email_digest_enabled'], bool)
|
||||
|
||||
|
||||
def test_update_profile_disables_digest(authenticated_client):
|
||||
"""PUT /user/profile with email_digest_enabled: false disables the digest."""
|
||||
# Ensure it starts enabled
|
||||
users_db.update({'email_digest_enabled': True}, Query().email == TEST_EMAIL)
|
||||
|
||||
response = authenticated_client.put('/user/profile', json={'email_digest_enabled': False})
|
||||
assert response.status_code == 200
|
||||
|
||||
user = users_db.search(Query().email == TEST_EMAIL)[0]
|
||||
assert user['email_digest_enabled'] is False
|
||||
|
||||
|
||||
def test_update_profile_enables_digest(authenticated_client):
|
||||
"""PUT /user/profile with email_digest_enabled: true re-enables the digest."""
|
||||
# Start disabled
|
||||
users_db.update({'email_digest_enabled': False}, Query().email == TEST_EMAIL)
|
||||
|
||||
response = authenticated_client.put('/user/profile', json={'email_digest_enabled': True})
|
||||
assert response.status_code == 200
|
||||
|
||||
user = users_db.search(Query().email == TEST_EMAIL)[0]
|
||||
assert user['email_digest_enabled'] is True
|
||||
|
||||
Reference in New Issue
Block a user