- Updated architecture documentation to include details on UI rendering checks and Playwright end-to-end tests. - Revised testing documentation to specify Playwright for frontend E2E tests and added details on running tests. - Implemented feedback mechanism in scenario form for successful creation notifications. - Added feedback div in ScenarioForm.html for user notifications. - Created new fixtures for Playwright tests to manage server and browser instances. - Developed comprehensive E2E tests for consumption, costs, equipment, maintenance, production, and scenarios. - Added smoke tests to verify UI page loading and form submissions. - Enhanced unit tests for simulation and validation, including new tests for report generation and validation errors. - Created new test files for router validation to ensure consistent error handling. - Established a new test suite for UI routes to validate dashboard and reporting functionalities. - Implemented validation tests to ensure proper handling of JSON payloads.
29 lines
892 B
Python
29 lines
892 B
Python
from uuid import uuid4
|
|
|
|
import pytest
|
|
from fastapi import HTTPException
|
|
from fastapi.testclient import TestClient
|
|
|
|
|
|
def test_validate_json_allows_valid_payload(api_client: TestClient) -> None:
|
|
payload = {
|
|
"name": f"ValidJSON-{uuid4()}",
|
|
"description": "Middleware should allow valid JSON.",
|
|
}
|
|
response = api_client.post("/api/scenarios/", json=payload)
|
|
assert response.status_code == 200
|
|
data = response.json()
|
|
assert data["name"] == payload["name"]
|
|
|
|
|
|
def test_validate_json_rejects_invalid_payload(api_client: TestClient) -> None:
|
|
with pytest.raises(HTTPException) as exc_info:
|
|
api_client.post(
|
|
"/api/scenarios/",
|
|
content=b"{not valid json",
|
|
headers={"Content-Type": "application/json"},
|
|
)
|
|
|
|
assert exc_info.value.status_code == 400
|
|
assert exc_info.value.detail == "Invalid JSON payload"
|