v2.0
This commit is contained in:
59
tests/test_remnawave_client.py
Normal file
59
tests/test_remnawave_client.py
Normal 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"
|
||||
Reference in New Issue
Block a user