mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 23:47:45 +00:00
WebDriver: Support "data" field in error responses
This commit is contained in:
parent
747ba2a88f
commit
6e1131e6de
3 changed files with 11 additions and 6 deletions
|
@ -229,6 +229,8 @@ ErrorOr<void> Client::send_error_response(WebDriverError const& error, HTTP::Htt
|
|||
result.set("error", error.error);
|
||||
result.set("message", error.message);
|
||||
result.set("stacktrace", "");
|
||||
if (error.data.has_value())
|
||||
result.set("data", *error.data);
|
||||
|
||||
StringBuilder content_builder;
|
||||
result.serialize(content_builder);
|
||||
|
|
|
@ -47,13 +47,14 @@ static Vector<ErrorCodeData> const s_error_code_data = {
|
|||
{ ErrorCode::UnsupportedOperation, 500, "unsupported operation" },
|
||||
};
|
||||
|
||||
WebDriverError WebDriverError::from_code(ErrorCode code, String message)
|
||||
WebDriverError WebDriverError::from_code(ErrorCode code, String message, Optional<JsonValue> data)
|
||||
{
|
||||
auto& data = s_error_code_data[to_underlying(code)];
|
||||
auto const& error_code_data = s_error_code_data[to_underlying(code)];
|
||||
return {
|
||||
.http_status = data.http_status,
|
||||
.error = data.json_error_code,
|
||||
.message = move(message)
|
||||
.http_status = error_code_data.http_status,
|
||||
.error = error_code_data.json_error_code,
|
||||
.message = move(message),
|
||||
.data = move(data)
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include <AK/JsonValue.h>
|
||||
#include <AK/String.h>
|
||||
|
||||
namespace WebDriver {
|
||||
|
@ -48,8 +49,9 @@ struct WebDriverError {
|
|||
unsigned http_status;
|
||||
String error;
|
||||
String message;
|
||||
Optional<JsonValue> data;
|
||||
|
||||
static WebDriverError from_code(ErrorCode, String message);
|
||||
static WebDriverError from_code(ErrorCode, String message, Optional<JsonValue> data = {});
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue