ميزة: إضافة مكوني ProcedureSelection و StepProgress لأداة مخططات التدفق بصيغة PDF

- تنفيذ مكون ProcedureSelection لتمكين المستخدمين من اختيار الإجراءات من قائمة، وإدارة الاختيارات، ومعالجة الإجراءات المرفوضة.

- إنشاء مكون StepProgress لعرض تقدم معالج متعدد الخطوات بشكل مرئي.

- تعريف أنواع مشتركة للإجراءات، وخطوات التدفق، ورسائل الدردشة في ملف types.ts.

- إضافة اختبارات وحدة لخطافات useFileUpload و useTaskPolling لضمان الأداء السليم ومعالجة الأخطاء.

- تنفيذ اختبارات واجهة برمجة التطبيقات (API) للتحقق من تنسيقات نقاط النهاية وضمان اتساق ربط الواجهة الأمامية بالخلفية.
This commit is contained in:
Your Name
2026-03-06 17:16:09 +02:00
parent 2e97741d60
commit cfbcc8bd79
62 changed files with 10567 additions and 101 deletions

View File

@@ -1,19 +1,21 @@
"""Tests for text utility functions."""
import sys
import os
# Add backend to path so we can import utils directly
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
from app.utils.file_validator import validate_file
"""Tests for general utility functions."""
from app.utils.sanitizer import generate_safe_path
def test_generate_safe_path():
def test_generate_safe_path(app):
"""generate_safe_path should produce UUID-based path."""
path = generate_safe_path('uploads', 'test.pdf')
assert path.startswith('uploads')
assert path.endswith('.pdf')
# Should contain a UUID directory
parts = path.replace('\\', '/').split('/')
assert len(parts) >= 3 # uploads / uuid / filename.pdf
with app.app_context():
task_id, path = generate_safe_path('pdf', folder_type='upload')
assert task_id in path
assert path.endswith('.pdf')
# Should contain a UUID directory
parts = path.replace('\\', '/').split('/')
assert len(parts) >= 3 # /tmp/test_uploads / uuid / filename.pdf
def test_generate_safe_path_unique(app):
"""Each call should produce a unique task_id."""
with app.app_context():
id1, _ = generate_safe_path('pdf')
id2, _ = generate_safe_path('pdf')
assert id1 != id2