Enhance UI rendering and add unit tests for simulation functionality
- Updated the `_render` function in `ui.py` to correctly pass the request object to `TemplateResponse`. - Initialized `upcoming_maintenance` as a typed list in `_load_dashboard` for better type safety. - Added new unit tests in `test_simulation.py` to cover triangular sampling and uniform distribution defaults. - Implemented a test to ensure that running the simulation without parameters returns an empty result. - Created a parameterized test in `test_ui_routes.py` to verify that additional UI routes render the correct templates and context.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from typing import Any, Dict, cast
|
||||
|
||||
import pytest
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from models.scenario import Scenario
|
||||
@@ -98,3 +99,33 @@ def test_dashboard_data_endpoint_returns_aggregates(
|
||||
activity_labels = payload["scenario_activity_chart"]["labels"]
|
||||
activity_idx = activity_labels.index(scenario.name)
|
||||
assert payload["scenario_activity_chart"]["production"][activity_idx] == 800.0
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("path", "template_name"),
|
||||
[
|
||||
("/", "Dashboard.html"),
|
||||
("/ui/parameters", "ParameterInput.html"),
|
||||
("/ui/costs", "costs.html"),
|
||||
("/ui/consumption", "consumption.html"),
|
||||
("/ui/production", "production.html"),
|
||||
("/ui/equipment", "equipment.html"),
|
||||
("/ui/maintenance", "maintenance.html"),
|
||||
("/ui/simulations", "simulations.html"),
|
||||
],
|
||||
)
|
||||
def test_additional_ui_routes_render_templates(
|
||||
api_client: TestClient,
|
||||
seeded_ui_data: Dict[str, Any],
|
||||
path: str,
|
||||
template_name: str,
|
||||
) -> None:
|
||||
response = api_client.get(path)
|
||||
assert response.status_code == 200
|
||||
|
||||
template = getattr(response, "template", None)
|
||||
assert template is not None
|
||||
assert template.name == template_name
|
||||
|
||||
context = cast(Dict[str, Any], getattr(response, "context", {}))
|
||||
assert context
|
||||
|
||||
Reference in New Issue
Block a user