mirror of
https://github.com/simple-login/app.git
synced 2024-11-15 05:07:33 +08:00
50c130a3a3
* Store the latest email_log id in the alias to simplify dashboard query * Fix test * Add script to migrate users last email_log_id to alias * Always update the alias last_email_log_id automatically * Only set the alias_id if it is set * Fix test with randomization * Fix notification test * Also remove explicit set on tests * Rate limit alias creation to prevent abuse (#2021) * Rate limit alias creation to prevent abuse * Limit in secs * Calculate bucket time * fix exception * Tune limits * Move rate limit config to configuration (#2023) * Fix dropdown item in header (#2024) * Add option for admin to stop trial (#2026) * Fix: if redis is not configured do not enable rate limit (#2027) * support product IDs for the new Mac app (#2028) Co-authored-by: Son NK <son@simplelogin.io> * Add metrics to rate limit (#2029) * Order domains alphabetically when retrieving them (#2030) * Removed unused import * Remove debug info --------- Co-authored-by: D-Bao <49440133+D-Bao@users.noreply.github.com> Co-authored-by: Son Nguyen Kim <son.nguyen@proton.ch> Co-authored-by: Son NK <son@simplelogin.io>
55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
from flask import url_for
|
|
|
|
from app.db import Session
|
|
from app.models import Notification
|
|
from tests.api.utils import get_new_user_and_api_key
|
|
|
|
|
|
def test_get_notifications(flask_client):
|
|
user, api_key = get_new_user_and_api_key()
|
|
|
|
# create some notifications
|
|
Notification.create(user_id=user.id, message="Test message 1")
|
|
Notification.create(user_id=user.id, message="Test message 2")
|
|
Session.commit()
|
|
|
|
r = flask_client.get(
|
|
"/api/notifications?page=0",
|
|
headers={"Authentication": api_key.code},
|
|
)
|
|
|
|
assert r.status_code == 200
|
|
assert r.json["more"] is False
|
|
assert len(r.json["notifications"]) == 2
|
|
for n in r.json["notifications"]:
|
|
assert n["id"] > 0
|
|
assert n["message"]
|
|
assert "title" in n
|
|
assert n["read"] is False
|
|
assert n["created_at"]
|
|
|
|
# no more post at the next page
|
|
r = flask_client.get(
|
|
url_for("api.get_notifications", page=1),
|
|
headers={"Authentication": api_key.code},
|
|
)
|
|
assert r.json["more"] is False
|
|
assert len(r.json["notifications"]) == 0
|
|
|
|
|
|
def test_mark_notification_as_read(flask_client):
|
|
user, api_key = get_new_user_and_api_key()
|
|
|
|
notif_id = Notification.create(
|
|
user_id=user.id, message="Test message 1", flush=True
|
|
).id
|
|
Session.commit()
|
|
|
|
r = flask_client.post(
|
|
url_for("api.mark_as_read", notification_id=notif_id),
|
|
headers={"Authentication": api_key.code},
|
|
)
|
|
|
|
assert r.status_code == 200
|
|
notification = Notification.filter_by(id=notif_id).first()
|
|
assert notification.read
|