from src.backend.models.api import ok, fail, ApiResponse, ApiError class TestApiEnvelope: def test_ok_response(self): result = ok({"status": "running"}) assert result["success"] is True assert result["data"]["status"] == "running" assert result["error"] is None def test_fail_response(self): result = fail("TIMEOUT", "Frame capture timeout") assert result["success"] is False assert result["data"] is None assert result["error"]["code"] == "TIMEOUT" assert result["error"]["message"] == "Frame capture timeout" def test_api_response_model(self): resp = ApiResponse(success=True, data={"key": "value"}) assert resp.success is True assert resp.data == {"key": "value"} def test_api_error_model(self): err = ApiError(code="NOT_FOUND", message="Resource not found") assert err.code == "NOT_FOUND"