Skip to content

Commit 989aaad

Browse files
committed
Extract build schema into function in tests
1 parent 5d0582c commit 989aaad

File tree

1 file changed

+26
-47
lines changed

1 file changed

+26
-47
lines changed

src/model.rs

Lines changed: 26 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -29,26 +29,29 @@ mod tests {
2929
use crate::TiledQuery;
3030
use crate::clients::TiledClient;
3131

32+
fn build_schema(server: &MockServer) -> Schema<TiledQuery, EmptyMutation, EmptySubscription> {
33+
Schema::build(
34+
TiledQuery(TiledClient {
35+
address: Url::parse(&server.base_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);
5255
let response = schema.execute("{appMetadata { apiVersion } }").await;
5356

5457
assert_eq!(response.data, value! {{"appMetadata": {"apiVersion": 0}}});
@@ -78,27 +81,20 @@ mod tests {
7881

7982
#[tokio::test]
8083
async fn test_internal_tiled_error() {
81-
let mock_server = MockServer::start();
82-
let mock = mock_server
84+
let server = MockServer::start();
85+
let mock = server
8386
.mock_async(|when, then| {
8487
when.method("GET").path("/api/v1/");
8588
then.status(503);
8689
})
8790
.await;
8891

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-
92+
let schema = build_schema(&server);
9893
let response = schema.execute("{appMetadata { apiVersion } }").await;
9994
let actual = &response.errors[0].message;
10095
let expected =
10196
"Tiled server error: HTTP status server error (503 Service Unavailable) for url";
97+
10298
assert_eq!(response.data, Value::Null);
10399
assert!(
104100
actual.starts_with(expected),
@@ -110,24 +106,17 @@ mod tests {
110106

111107
#[tokio::test]
112108
async fn test_invalid_server_response() {
113-
let mock_server = MockServer::start();
114-
let mock = mock_server
109+
let server = MockServer::start();
110+
let mock = server
115111
.mock_async(|when, then| {
116112
when.method("GET").path("/api/v1/");
117113
then.status(200).body("{}");
118114
})
119115
.await;
120116

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-
117+
let schema = build_schema(&server);
130118
let response = schema.execute("{appMetadata { apiVersion } }").await;
119+
131120
assert_eq!(response.data, Value::Null);
132121
assert_eq!(response.errors.len(), 1);
133122
assert_eq!(
@@ -140,34 +129,24 @@ mod tests {
140129
#[tokio::test]
141130
async fn test_run_metadata_query() {
142131
let id = Uuid::parse_str("5d8f5c3e-0e00-4c5c-816d-70b4b0f41498").unwrap();
143-
let mock_server = MockServer::start();
144-
let mock = mock_server
132+
let server = MockServer::start();
133+
let mock = server
145134
.mock_async(|when, then| {
146135
when.method("GET").path(format!("/api/v1/metadata/{id}"));
147136
then.status(200)
148137
.body_from_file("resources/run_metadata.json");
149138
})
150139
.await;
151140

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-
141+
let schema = build_schema(&server);
161142
let query = r#"{ runMetadata(id: "5d8f5c3e-0e00-4c5c-816d-70b4b0f41498") {data {id}}}"#;
162-
163143
let response = schema.execute(query).await;
164-
165144
let exp = value! ({
166145
"runMetadata": { "data": {"id": "5d8f5c3e-0e00-4c5c-816d-70b4b0f41498"}}
167146
});
168147

169-
mock.assert();
170148
assert_eq!(response.data, exp);
171149
assert_eq!(response.errors, &[]);
150+
mock.assert();
172151
}
173152
}

0 commit comments

Comments
 (0)