This commit is contained in:
2026-04-22 18:34:13 +03:00
parent 3992121397
commit ce7a1f70b2
60 changed files with 10243 additions and 3443 deletions

View File

@@ -0,0 +1,59 @@
import httpx
from app.services.remnawave_client import RemnawaveApiClient
def test_normalize_base_url_adds_api_suffix() -> None:
assert (
RemnawaveApiClient.normalize_base_url("https://panel.example.com")
== "https://panel.example.com/api/"
)
def test_normalize_base_url_keeps_existing_api_suffix() -> None:
assert (
RemnawaveApiClient.normalize_base_url("https://panel.example.com/api/")
== "https://panel.example.com/api/"
)
def test_unwrap_payload_response_field() -> None:
payload = {"response": {"ok": True}}
assert RemnawaveApiClient.unwrap_payload(payload) == {"ok": True}
def test_build_error_includes_error_code() -> None:
client = object.__new__(RemnawaveApiClient)
response = httpx.Response(
500,
json={
"message": "Failed to create user",
"errorCode": "A018",
},
request=httpx.Request("POST", "https://panel.example.com/api/users"),
)
error = client._build_error(response)
assert error.message == "Failed to create user [A018]"
def test_build_error_includes_validation_details() -> None:
client = object.__new__(RemnawaveApiClient)
response = httpx.Response(
400,
json={
"message": "Validation failed",
"errors": [
{
"message": "Invalid uuid",
"path": ["uuid"],
}
],
},
request=httpx.Request("DELETE", "https://panel.example.com/api/users/not-a-uuid"),
)
error = client._build_error(response)
assert error.message == "Validation failed | uuid: Invalid uuid"