إنجاز: تفعيل خاصية استعادة كلمة المرور وإعادة تعيينها
- إضافة نقاط نهاية لخاصيتي استعادة كلمة المرور وإعادة تعيينها في الواجهة الخلفية. - إنشاء اختبارات لخاصية إعادة تعيين كلمة المرور لضمان كفاءتها وأمانها. - تطوير صفحات واجهة المستخدم لخاصيتي استعادة كلمة المرور وإعادة تعيينها مع معالجة النماذج. - دمج حدود تحميل ديناميكية لأنواع ملفات مختلفة بناءً على خطط المستخدمين. - تقديم أداة جديدة لتغيير حجم الصور مع إمكانية تعديل الأبعاد وإعدادات الجودة. - تحديث نظام التوجيه والتنقل ليشمل أدوات جديدة وميزات مصادقة. - تحسين تجربة المستخدم من خلال معالجة الأخطاء ورسائل التغذية الراجعة المناسبة. - إضافة دعم التدويل للميزات الجديدة باللغات الإنجليزية والعربية والفرنسية.
This commit is contained in:
53
backend/tests/test_config.py
Normal file
53
backend/tests/test_config.py
Normal file
@@ -0,0 +1,53 @@
|
||||
"""Tests for GET /api/config — dynamic upload limits."""
|
||||
import pytest
|
||||
|
||||
|
||||
class TestConfigEndpoint:
|
||||
"""Tests for the public config endpoint."""
|
||||
|
||||
def test_anonymous_gets_free_limits(self, client):
|
||||
"""Anonymous users receive free-plan file limits."""
|
||||
resp = client.get("/api/config")
|
||||
assert resp.status_code == 200
|
||||
data = resp.get_json()
|
||||
|
||||
assert "file_limits_mb" in data
|
||||
assert "max_upload_mb" in data
|
||||
limits = data["file_limits_mb"]
|
||||
assert limits["pdf"] == 20
|
||||
assert limits["word"] == 15
|
||||
assert limits["image"] == 10
|
||||
assert limits["video"] == 50
|
||||
assert limits["homepageSmartUpload"] == 50
|
||||
# No usage section for anon
|
||||
assert "usage" not in data
|
||||
|
||||
def test_authenticated_free_user_gets_usage(self, client, app):
|
||||
"""Logged-in free user receives limits + usage summary."""
|
||||
# Register + login
|
||||
client.post("/api/auth/register", json={
|
||||
"email": "config_test@example.com",
|
||||
"password": "TestPassword123!",
|
||||
})
|
||||
client.post("/api/auth/login", json={
|
||||
"email": "config_test@example.com",
|
||||
"password": "TestPassword123!",
|
||||
})
|
||||
|
||||
resp = client.get("/api/config")
|
||||
assert resp.status_code == 200
|
||||
data = resp.get_json()
|
||||
|
||||
assert data["file_limits_mb"]["pdf"] == 20
|
||||
assert "usage" in data
|
||||
usage = data["usage"]
|
||||
assert usage["plan"] == "free"
|
||||
assert "web_quota" in usage
|
||||
assert "api_quota" in usage
|
||||
|
||||
def test_max_upload_mb_is_correct(self, client):
|
||||
"""max_upload_mb should equal the largest single-type limit."""
|
||||
resp = client.get("/api/config")
|
||||
data = resp.get_json()
|
||||
limits = data["file_limits_mb"]
|
||||
assert data["max_upload_mb"] == max(limits.values())
|
||||
Reference in New Issue
Block a user