codegen(reqwest): fix tests

This commit is contained in:
Tanish2002
2024-02-24 10:46:21 +05:30
parent 456cea6f5f
commit 838cd5f1cc

View File

@ -9,16 +9,17 @@ void main() {
test('GET 1', () { test('GET 1', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.foss42.com"; let url = "https://api.foss42.com";
let response = client.get(url) let response = client
.send()?; .get(url)
.send()?;
println!("Status Code: {}", response.status()); println!("Status Code: {}", response.status());
println!("Response Body: {}", response.text()?); println!("Response Body: {}", response.text()?);
Ok(()) Ok(())
} }
"""; """;
expect( expect(
@ -28,19 +29,18 @@ void main() {
test('GET 2', () { test('GET 2', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.foss42.com/country/data"; let url = "https://api.foss42.com/country/data";
let params = [("code", "US")]; let response = client
.get(url)
.query(&[("code", "US")])
.send()?;
let response = client.get(url) println!("Status Code: {}", response.status());
.query(&params) println!("Response Body: {}", response.text()?);
.send()?;
println!("Status Code: {}", response.status()); Ok(())
println!("Response Body: {}", response.text()?);
Ok(())
} }
"""; """;
expect( expect(
@ -50,19 +50,18 @@ void main() {
test('GET 3', () { test('GET 3', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.foss42.com/country/data"; let url = "https://api.foss42.com/country/data";
let params = [("code", "IND")]; let response = client
.get(url)
.query(&[("code", "IND")])
.send()?;
let response = client.get(url) println!("Status Code: {}", response.status());
.query(&params) println!("Response Body: {}", response.text()?);
.send()?;
println!("Status Code: {}", response.status()); Ok(())
println!("Response Body: {}", response.text()?);
Ok(())
} }
"""; """;
expect( expect(
@ -72,19 +71,18 @@ void main() {
test('GET 4', () { test('GET 4', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.foss42.com/humanize/social"; let url = "https://api.foss42.com/humanize/social";
let params = [("num", "8700000"), ("digits", "3"), ("system", "SS"), ("add_space", "true"), ("trailing_zeros", "true")]; let response = client
.get(url)
.query(&[("num", "8700000"), ("digits", "3"), ("system", "SS"), ("add_space", "true"), ("trailing_zeros", "true")])
.send()?;
let response = client.get(url) println!("Status Code: {}", response.status());
.query(&params) println!("Response Body: {}", response.text()?);
.send()?;
println!("Status Code: {}", response.status()); Ok(())
println!("Response Body: {}", response.text()?);
Ok(())
} }
"""; """;
expect( expect(
@ -94,26 +92,18 @@ void main() {
test('GET 5', () { test('GET 5', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.github.com/repos/foss42/apidash"; let url = "https://api.github.com/repos/foss42/apidash";
let header_str = r#"{ let response = client
"User-Agent": "Test Agent" .get(url)
}"#; .header("User-Agent", "Test Agent")
let headers_map: std::collections::HashMap<&str, &str> = serde_json::from_str(header_str)?; // Deserialize as &str .send()?;
let mut headers = reqwest::header::HeaderMap::new();
for (key, val) in headers_map {
headers.insert(key, reqwest::header::HeaderValue::from_str(val)?);
}
let response = client.get(url) println!("Status Code: {}", response.status());
.headers(headers) println!("Response Body: {}", response.text()?);
.send()?;
println!("Status Code: {}", response.status()); Ok(())
println!("Response Body: {}", response.text()?);
Ok(())
} }
"""; """;
expect( expect(
@ -123,29 +113,19 @@ void main() {
test('GET 6', () { test('GET 6', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.github.com/repos/foss42/apidash"; let url = "https://api.github.com/repos/foss42/apidash";
let params = [("raw", "true")]; let response = client
.get(url)
.query(&[("raw", "true")])
.header("User-Agent", "Test Agent")
.send()?;
let header_str = r#"{ println!("Status Code: {}", response.status());
"User-Agent": "Test Agent" println!("Response Body: {}", response.text()?);
}"#;
let headers_map: std::collections::HashMap<&str, &str> = serde_json::from_str(header_str)?; // Deserialize as &str
let mut headers = reqwest::header::HeaderMap::new();
for (key, val) in headers_map {
headers.insert(key, reqwest::header::HeaderValue::from_str(val)?);
}
let response = client.get(url) Ok(())
.query(&params)
.headers(headers)
.send()?;
println!("Status Code: {}", response.status());
println!("Response Body: {}", response.text()?);
Ok(())
} }
"""; """;
expect( expect(
@ -155,16 +135,17 @@ void main() {
test('GET 7', () { test('GET 7', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.foss42.com"; let url = "https://api.foss42.com";
let response = client.get(url) let response = client
.send()?; .get(url)
.send()?;
println!("Status Code: {}", response.status()); println!("Status Code: {}", response.status());
println!("Response Body: {}", response.text()?); println!("Response Body: {}", response.text()?);
Ok(()) Ok(())
} }
"""; """;
expect( expect(
@ -174,29 +155,19 @@ void main() {
test('GET 8', () { test('GET 8', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.github.com/repos/foss42/apidash"; let url = "https://api.github.com/repos/foss42/apidash";
let params = [("raw", "true")]; let response = client
.get(url)
.query(&[("raw", "true")])
.header("User-Agent", "Test Agent")
.send()?;
let header_str = r#"{ println!("Status Code: {}", response.status());
"User-Agent": "Test Agent" println!("Response Body: {}", response.text()?);
}"#;
let headers_map: std::collections::HashMap<&str, &str> = serde_json::from_str(header_str)?; // Deserialize as &str
let mut headers = reqwest::header::HeaderMap::new();
for (key, val) in headers_map {
headers.insert(key, reqwest::header::HeaderValue::from_str(val)?);
}
let response = client.get(url) Ok(())
.query(&params)
.headers(headers)
.send()?;
println!("Status Code: {}", response.status());
println!("Response Body: {}", response.text()?);
Ok(())
} }
"""; """;
expect( expect(
@ -206,19 +177,18 @@ void main() {
test('GET 9', () { test('GET 9', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.foss42.com/humanize/social"; let url = "https://api.foss42.com/humanize/social";
let params = [("num", "8700000"), ("add_space", "true")]; let response = client
.get(url)
.query(&[("num", "8700000"), ("add_space", "true")])
.send()?;
let response = client.get(url) println!("Status Code: {}", response.status());
.query(&params) println!("Response Body: {}", response.text()?);
.send()?;
println!("Status Code: {}", response.status()); Ok(())
println!("Response Body: {}", response.text()?);
Ok(())
} }
"""; """;
expect( expect(
@ -228,26 +198,18 @@ void main() {
test('GET 10', () { test('GET 10', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.foss42.com/humanize/social"; let url = "https://api.foss42.com/humanize/social";
let header_str = r#"{ let response = client
"User-Agent": "Test Agent" .get(url)
}"#; .header("User-Agent", "Test Agent")
let headers_map: std::collections::HashMap<&str, &str> = serde_json::from_str(header_str)?; // Deserialize as &str .send()?;
let mut headers = reqwest::header::HeaderMap::new();
for (key, val) in headers_map {
headers.insert(key, reqwest::header::HeaderValue::from_str(val)?);
}
let response = client.get(url) println!("Status Code: {}", response.status());
.headers(headers) println!("Response Body: {}", response.text()?);
.send()?;
println!("Status Code: {}", response.status()); Ok(())
println!("Response Body: {}", response.text()?);
Ok(())
} }
"""; """;
expect( expect(
@ -261,29 +223,19 @@ void main() {
test('GET 11', () { test('GET 11', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.foss42.com/humanize/social"; let url = "https://api.foss42.com/humanize/social";
let params = [("num", "8700000"), ("digits", "3")]; let response = client
.get(url)
.query(&[("num", "8700000"), ("digits", "3")])
.header("User-Agent", "Test Agent")
.send()?;
let header_str = r#"{ println!("Status Code: {}", response.status());
"User-Agent": "Test Agent" println!("Response Body: {}", response.text()?);
}"#;
let headers_map: std::collections::HashMap<&str, &str> = serde_json::from_str(header_str)?; // Deserialize as &str
let mut headers = reqwest::header::HeaderMap::new();
for (key, val) in headers_map {
headers.insert(key, reqwest::header::HeaderValue::from_str(val)?);
}
let response = client.get(url) Ok(())
.query(&params)
.headers(headers)
.send()?;
println!("Status Code: {}", response.status());
println!("Response Body: {}", response.text()?);
Ok(())
} }
"""; """;
expect( expect(
@ -293,16 +245,17 @@ void main() {
test('GET 12', () { test('GET 12', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.foss42.com/humanize/social"; let url = "https://api.foss42.com/humanize/social";
let response = client.get(url) let response = client
.send()?; .get(url)
.send()?;
println!("Status Code: {}", response.status()); println!("Status Code: {}", response.status());
println!("Response Body: {}", response.text()?); println!("Response Body: {}", response.text()?);
Ok(()) Ok(())
} }
"""; """;
expect( expect(
@ -314,16 +267,17 @@ void main() {
test('HEAD 1', () { test('HEAD 1', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.foss42.com"; let url = "https://api.foss42.com";
let response = client.head(url) let response = client
.send()?; .head(url)
.send()?;
println!("Status Code: {}", response.status()); println!("Status Code: {}", response.status());
println!("Response Body: {}", response.text()?); println!("Response Body: {}", response.text()?);
Ok(()) Ok(())
} }
"""; """;
expect( expect(
@ -333,16 +287,17 @@ void main() {
test('HEAD 2', () { test('HEAD 2', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "http://api.foss42.com"; let url = "http://api.foss42.com";
let response = client.head(url) let response = client
.send()?; .head(url)
.send()?;
println!("Status Code: {}", response.status()); println!("Status Code: {}", response.status());
println!("Response Body: {}", response.text()?); println!("Response Body: {}", response.text()?);
Ok(()) Ok(())
} }
"""; """;
expect( expect(
@ -354,31 +309,22 @@ void main() {
test('POST 1', () { test('POST 1', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.foss42.com/case/lower"; let url = "https://api.foss42.com/case/lower";
let payload = b"{ let payload = b"{
"text": "I LOVE Flutter" "text": "I LOVE Flutter"
}"; }";
let header_str = r#"{ let response = client
"content-type": "text/plain" .post(url)
}"#; .body(payload.to_vec())
let headers_map: std::collections::HashMap<&str, &str> = serde_json::from_str(header_str)?; // Deserialize as &str .send()?;
let mut headers = reqwest::header::HeaderMap::new();
for (key, val) in headers_map {
headers.insert(key, reqwest::header::HeaderValue::from_str(val)?);
}
let response = client.post(url) println!("Status Code: {}", response.status());
.body(payload.to_vec()) println!("Response Body: {}", response.text()?);
.headers(headers)
.send()?;
println!("Status Code: {}", response.status()); Ok(())
println!("Response Body: {}", response.text()?);
Ok(())
} }
"""; """;
expect( expect(
@ -388,21 +334,22 @@ void main() {
test('POST 2', () { test('POST 2', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.foss42.com/case/lower"; let url = "https://api.foss42.com/case/lower";
let payload = serde_json::json!({ let payload = serde_json::json!({
"text": "I LOVE Flutter" "text": "I LOVE Flutter"
}); });
let response = client.post(url) let response = client
.json(&payload) .post(url)
.send()?; .json(&payload)
.send()?;
println!("Status Code: {}", response.status()); println!("Status Code: {}", response.status());
println!("Response Body: {}", response.text()?); println!("Response Body: {}", response.text()?);
Ok(()) Ok(())
} }
"""; """;
expect( expect(
@ -412,31 +359,23 @@ void main() {
test('POST 3', () { test('POST 3', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://api.foss42.com/case/lower"; let url = "https://api.foss42.com/case/lower";
let payload = serde_json::json!({ let payload = serde_json::json!({
"text": "I LOVE Flutter" "text": "I LOVE Flutter"
}); });
let header_str = r#"{ let response = client
"User-Agent": "Test Agent" .post(url)
}"#; .header("User-Agent", "Test Agent")
let headers_map: std::collections::HashMap<&str, &str> = serde_json::from_str(header_str)?; // Deserialize as &str .json(&payload)
let mut headers = reqwest::header::HeaderMap::new(); .send()?;
for (key, val) in headers_map {
headers.insert(key, reqwest::header::HeaderValue::from_str(val)?);
}
let response = client.post(url) println!("Status Code: {}", response.status());
.json(&payload) println!("Response Body: {}", response.text()?);
.headers(headers)
.send()?;
println!("Status Code: {}", response.status()); Ok(())
println!("Response Body: {}", response.text()?);
Ok(())
} }
"""; """;
expect( expect(
@ -448,22 +387,23 @@ void main() {
test('PUT 1', () { test('PUT 1', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://reqres.in/api/users/2"; let url = "https://reqres.in/api/users/2";
let payload = serde_json::json!({ let payload = serde_json::json!({
"name": "morpheus", "name": "morpheus",
"job": "zion resident" "job": "zion resident"
}); });
let response = client.put(url) let response = client
.json(&payload) .put(url)
.send()?; .json(&payload)
.send()?;
println!("Status Code: {}", response.status()); println!("Status Code: {}", response.status());
println!("Response Body: {}", response.text()?); println!("Response Body: {}", response.text()?);
Ok(()) Ok(())
} }
"""; """;
expect( expect(
@ -475,22 +415,23 @@ void main() {
test('PATCH 1', () { test('PATCH 1', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://reqres.in/api/users/2"; let url = "https://reqres.in/api/users/2";
let payload = serde_json::json!({ let payload = serde_json::json!({
"name": "marfeus", "name": "marfeus",
"job": "accountant" "job": "accountant"
}); });
let response = client.patch(url) let response = client
.json(&payload) .patch(url)
.send()?; .json(&payload)
.send()?;
println!("Status Code: {}", response.status()); println!("Status Code: {}", response.status());
println!("Response Body: {}", response.text()?); println!("Response Body: {}", response.text()?);
Ok(()) Ok(())
} }
"""; """;
expect(rustReqwestCodeGen.getCode(requestModelPatch1, "https"), expect(rustReqwestCodeGen.getCode(requestModelPatch1, "https"),
@ -502,16 +443,17 @@ void main() {
test('DELETE 1', () { test('DELETE 1', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://reqres.in/api/users/2"; let url = "https://reqres.in/api/users/2";
let response = client.delete(url) let response = client
.send()?; .delete(url)
.send()?;
println!("Status Code: {}", response.status()); println!("Status Code: {}", response.status());
println!("Response Body: {}", response.text()?); println!("Response Body: {}", response.text()?);
Ok(()) Ok(())
} }
"""; """;
expect(rustReqwestCodeGen.getCode(requestModelDelete1, "https"), expect(rustReqwestCodeGen.getCode(requestModelDelete1, "https"),
@ -521,22 +463,23 @@ void main() {
test('DELETE 2', () { test('DELETE 2', () {
const expectedCode = const expectedCode =
r"""fn main() -> Result<(), Box<dyn std::error::Error>> { r"""fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let url = "https://reqres.in/api/users/2"; let url = "https://reqres.in/api/users/2";
let payload = serde_json::json!({ let payload = serde_json::json!({
"name": "marfeus", "name": "marfeus",
"job": "accountant" "job": "accountant"
}); });
let response = client.delete(url) let response = client
.json(&payload) .delete(url)
.send()?; .json(&payload)
.send()?;
println!("Status Code: {}", response.status()); println!("Status Code: {}", response.status());
println!("Response Body: {}", response.text()?); println!("Response Body: {}", response.text()?);
Ok(()) Ok(())
} }
"""; """;
expect(rustReqwestCodeGen.getCode(requestModelDelete2, "https"), expect(rustReqwestCodeGen.getCode(requestModelDelete2, "https"),