File tree 2 files changed +13
-9
lines changed
2 files changed +13
-9
lines changed Original file line number Diff line number Diff line change @@ -136,12 +136,16 @@ impl Error {
136
136
reason : format ! ( "invalid `extensions` within error: {}" , err) ,
137
137
} ) ?
138
138
. unwrap_or_default ( ) ;
139
- let message = extract_key_value_from_object ! ( object, "message" , Value :: String ( s) => s)
140
- . map_err ( |err| MalformedResponseError {
141
- reason : format ! ( "invalid `message` within error: {}" , err) ,
142
- } ) ?
143
- . map ( |s| s. as_str ( ) . to_string ( ) )
144
- . unwrap_or_default ( ) ;
139
+ let message =
140
+ match extract_key_value_from_object ! ( object, "message" , Value :: String ( s) => s) {
141
+ Ok ( Some ( s) ) => Ok ( s. as_str ( ) . to_string ( ) ) ,
142
+ Ok ( None ) => Err ( MalformedResponseError {
143
+ reason : "missing required `message` property within error" . to_owned ( ) ,
144
+ } ) ,
145
+ Err ( err) => Err ( MalformedResponseError {
146
+ reason : format ! ( "invalid `message` within error: {}" , err) ,
147
+ } ) ,
148
+ } ?;
145
149
let locations = extract_key_value_from_object ! ( object, "locations" )
146
150
. map ( skip_invalid_locations)
147
151
. map ( serde_json_bytes:: from_value)
Original file line number Diff line number Diff line change @@ -3,6 +3,8 @@ mod tests {
3
3
use std:: collections:: HashMap ;
4
4
use std:: sync:: Arc ;
5
5
6
+ use crate :: json_ext:: Object ;
7
+ use crate :: json_ext:: Value ;
6
8
use futures:: future:: BoxFuture ;
7
9
use http:: HeaderMap ;
8
10
use http:: HeaderValue ;
@@ -19,8 +21,6 @@ mod tests {
19
21
use tower:: ServiceExt ;
20
22
21
23
use super :: super :: * ;
22
- use crate :: json_ext:: Object ;
23
- use crate :: json_ext:: Value ;
24
24
use crate :: plugin:: test:: MockInternalHttpClientService ;
25
25
use crate :: plugin:: test:: MockRouterService ;
26
26
use crate :: plugin:: test:: MockSubgraphService ;
@@ -332,7 +332,7 @@ mod tests {
332
332
let request = subgraph:: Request :: fake_builder ( ) . build ( ) ;
333
333
334
334
assert_eq ! (
335
- "couldn't deserialize coprocessor output body: missing field `message`" ,
335
+ "couldn't deserialize coprocessor output body: GraphQL response was malformed: missing required `message` property within error " ,
336
336
service
337
337
. oneshot( request)
338
338
. await
You can’t perform that action at this time.
0 commit comments