@@ -29,26 +29,29 @@ mod tests {
2929 use crate :: TiledQuery ;
3030 use crate :: clients:: TiledClient ;
3131
32+ fn build_schema ( url : & str ) -> Schema < TiledQuery , EmptyMutation , EmptySubscription > {
33+ Schema :: build (
34+ TiledQuery ( TiledClient {
35+ address : Url :: parse ( url) . unwrap ( ) ,
36+ } ) ,
37+ EmptyMutation ,
38+ EmptySubscription ,
39+ )
40+ . finish ( )
41+ }
42+
3243 #[ tokio:: test]
3344 async fn test_api_version_query ( ) {
34- let mock_server = MockServer :: start ( ) ;
35- let mock = mock_server
45+ let server = MockServer :: start ( ) ;
46+ let mock = server
3647 . mock_async ( |when, then| {
3748 when. method ( "GET" ) . path ( "/api/v1/" ) ;
3849 then. status ( 200 )
3950 . body_from_file ( "resources/tiled_metadata.json" ) ;
4051 } )
4152 . await ;
4253
43- let schema = Schema :: build (
44- TiledQuery ( TiledClient {
45- address : Url :: parse ( & mock_server. base_url ( ) ) . unwrap ( ) ,
46- } ) ,
47- EmptyMutation ,
48- EmptySubscription ,
49- )
50- . finish ( ) ;
51-
54+ let schema = build_schema ( & server. base_url ( ) ) ;
5255 let response = schema. execute ( "{appMetadata { apiVersion } }" ) . await ;
5356
5457 assert_eq ! ( response. data, value! { { "appMetadata" : { "apiVersion" : 0 } } } ) ;
@@ -58,16 +61,9 @@ mod tests {
5861
5962 #[ tokio:: test]
6063 async fn test_server_unavailable ( ) {
61- let schema = Schema :: build (
62- TiledQuery ( TiledClient {
63- address : Url :: parse ( "http://tiled.example.com" ) . unwrap ( ) ,
64- } ) ,
65- EmptyMutation ,
66- EmptySubscription ,
67- )
68- . finish ( ) ;
69-
64+ let schema = build_schema ( "http://tiled.example.com" ) ;
7065 let response = schema. execute ( "{appMetadata { apiVersion } }" ) . await ;
66+
7167 assert_eq ! ( response. data, Value :: Null ) ;
7268 assert_eq ! (
7369 response. errors[ 0 ] . message,
@@ -78,27 +74,20 @@ mod tests {
7874
7975 #[ tokio:: test]
8076 async fn test_internal_tiled_error ( ) {
81- let mock_server = MockServer :: start ( ) ;
82- let mock = mock_server
77+ let server = MockServer :: start ( ) ;
78+ let mock = server
8379 . mock_async ( |when, then| {
8480 when. method ( "GET" ) . path ( "/api/v1/" ) ;
8581 then. status ( 503 ) ;
8682 } )
8783 . await ;
8884
89- let schema = Schema :: build (
90- TiledQuery ( TiledClient {
91- address : Url :: parse ( & mock_server. base_url ( ) ) . unwrap ( ) ,
92- } ) ,
93- EmptyMutation ,
94- EmptySubscription ,
95- )
96- . finish ( ) ;
97-
85+ let schema = build_schema ( & server. base_url ( ) ) ;
9886 let response = schema. execute ( "{appMetadata { apiVersion } }" ) . await ;
9987 let actual = & response. errors [ 0 ] . message ;
10088 let expected =
10189 "Tiled server error: HTTP status server error (503 Service Unavailable) for url" ;
90+
10291 assert_eq ! ( response. data, Value :: Null ) ;
10392 assert ! (
10493 actual. starts_with( expected) ,
@@ -110,24 +99,17 @@ mod tests {
11099
111100 #[ tokio:: test]
112101 async fn test_invalid_server_response ( ) {
113- let mock_server = MockServer :: start ( ) ;
114- let mock = mock_server
102+ let server = MockServer :: start ( ) ;
103+ let mock = server
115104 . mock_async ( |when, then| {
116105 when. method ( "GET" ) . path ( "/api/v1/" ) ;
117106 then. status ( 200 ) . body ( "{}" ) ;
118107 } )
119108 . await ;
120109
121- let schema = Schema :: build (
122- TiledQuery ( TiledClient {
123- address : Url :: parse ( & mock_server. base_url ( ) ) . unwrap ( ) ,
124- } ) ,
125- EmptyMutation ,
126- EmptySubscription ,
127- )
128- . finish ( ) ;
129-
110+ let schema = build_schema ( & server. base_url ( ) ) ;
130111 let response = schema. execute ( "{appMetadata { apiVersion } }" ) . await ;
112+
131113 assert_eq ! ( response. data, Value :: Null ) ;
132114 assert_eq ! ( response. errors. len( ) , 1 ) ;
133115 assert_eq ! (
@@ -140,34 +122,24 @@ mod tests {
140122 #[ tokio:: test]
141123 async fn test_run_metadata_query ( ) {
142124 let id = Uuid :: parse_str ( "5d8f5c3e-0e00-4c5c-816d-70b4b0f41498" ) . unwrap ( ) ;
143- let mock_server = MockServer :: start ( ) ;
144- let mock = mock_server
125+ let server = MockServer :: start ( ) ;
126+ let mock = server
145127 . mock_async ( |when, then| {
146128 when. method ( "GET" ) . path ( format ! ( "/api/v1/metadata/{id}" ) ) ;
147129 then. status ( 200 )
148130 . body_from_file ( "resources/run_metadata.json" ) ;
149131 } )
150132 . await ;
151133
152- let schema = Schema :: build (
153- TiledQuery ( TiledClient {
154- address : Url :: parse ( & mock_server. base_url ( ) ) . unwrap ( ) ,
155- } ) ,
156- EmptyMutation ,
157- EmptySubscription ,
158- )
159- . finish ( ) ;
160-
134+ let schema = build_schema ( & server. base_url ( ) ) ;
161135 let query = r#"{ runMetadata(id: "5d8f5c3e-0e00-4c5c-816d-70b4b0f41498") {data {id}}}"# ;
162-
163136 let response = schema. execute ( query) . await ;
164-
165137 let exp = value ! ( {
166138 "runMetadata" : { "data" : { "id" : "5d8f5c3e-0e00-4c5c-816d-70b4b0f41498" } }
167139 } ) ;
168140
169- mock. assert ( ) ;
170141 assert_eq ! ( response. data, exp) ;
171142 assert_eq ! ( response. errors, & [ ] ) ;
143+ mock. assert ( ) ;
172144 }
173145}
0 commit comments