Remove Authentica E2E test and expand OTP coverage
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
from datetime import timedelta
|
||||
|
||||
import pytest
|
||||
from django.test import override_settings
|
||||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
from apps.accounts.models import OtpChannel, OtpPurpose, PhoneOTP
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@override_settings(OTP_PROVIDER="console")
|
||||
def test_otp_request_whatsapp_ok(client):
|
||||
response = client.post(
|
||||
reverse("otp_request"),
|
||||
{"phone_number": "0512345678", "channel": "whatsapp"},
|
||||
content_type="application/json",
|
||||
)
|
||||
assert response.status_code == 201
|
||||
data = response.json()
|
||||
assert "request_id" in data
|
||||
assert "expires_at" in data
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_otp_verify_rejects_expired(client):
|
||||
otp = PhoneOTP.objects.create(
|
||||
phone_number="+966512345678",
|
||||
channel=OtpChannel.SMS,
|
||||
purpose=OtpPurpose.VERIFY,
|
||||
provider="console",
|
||||
code_hash="unused",
|
||||
expires_at=timezone.now() - timedelta(minutes=1),
|
||||
)
|
||||
response = client.post(
|
||||
reverse("otp_verify"),
|
||||
{"request_id": str(otp.id), "code": "123456"},
|
||||
content_type="application/json",
|
||||
)
|
||||
assert response.status_code == 400
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@override_settings(OTP_PROVIDER="console")
|
||||
def test_otp_request_invalid_phone_localized_ar(client):
|
||||
response = client.post(
|
||||
reverse("otp_request"),
|
||||
{"phone_number": "123", "channel": "sms"},
|
||||
content_type="application/json",
|
||||
HTTP_ACCEPT_LANGUAGE="ar-sa",
|
||||
)
|
||||
assert response.status_code == 400
|
||||
assert response.json()["phone_number"][0] == "تنسيق رقم الهاتف غير صالح"
|
||||
Reference in New Issue
Block a user