mirror of
https://github.com/foss42/apidash.git
synced 2025-06-07 03:48:11 +08:00
tests added
This commit is contained in:
@ -5,6 +5,9 @@ import 'package:jinja/jinja.dart' as jj;
|
|||||||
import '../../utils/utils.dart';
|
import '../../utils/utils.dart';
|
||||||
|
|
||||||
class RustUreqCodeGen {
|
class RustUreqCodeGen {
|
||||||
|
final String kJsonImport = """
|
||||||
|
use serde_json::json;
|
||||||
|
""";
|
||||||
final String kTemplateStart = """
|
final String kTemplateStart = """
|
||||||
{%- if isFormDataRequest -%}
|
{%- if isFormDataRequest -%}
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
@ -23,8 +26,7 @@ fn main() -> Result<(), ureq::Error> {
|
|||||||
|
|
||||||
""";
|
""";
|
||||||
|
|
||||||
String kTemplateJson = """
|
String kTemplateJson = """\n
|
||||||
use serde_json::json;
|
|
||||||
let payload = json!({{body}});
|
let payload = json!({{body}});
|
||||||
|
|
||||||
""";
|
""";
|
||||||
@ -90,7 +92,7 @@ multipart/form-data; boundary={{boundary}}''';
|
|||||||
let payload = build_data_list(form_data_items);
|
let payload = build_data_list(form_data_items);
|
||||||
""";
|
""";
|
||||||
|
|
||||||
String kStringRequestBody = """\n .send_string(payload)?;""";
|
String kStringRequestBody = """\n .send(payload)?;""";
|
||||||
|
|
||||||
String kStringRequestForm = """\n .send_bytes(&payload)?;""";
|
String kStringRequestForm = """\n .send_bytes(&payload)?;""";
|
||||||
|
|
||||||
@ -117,12 +119,16 @@ multipart/form-data; boundary={{boundary}}''';
|
|||||||
String uuid = getNewUuid();
|
String uuid = getNewUuid();
|
||||||
|
|
||||||
String url = requestModel.url;
|
String url = requestModel.url;
|
||||||
|
|
||||||
var rec = getValidRequestUri(
|
var rec = getValidRequestUri(
|
||||||
url,
|
url,
|
||||||
requestModel.enabledParams,
|
requestModel.enabledParams,
|
||||||
);
|
);
|
||||||
Uri? uri = rec.$1;
|
Uri? uri = rec.$1;
|
||||||
|
var method = requestModel.method;
|
||||||
|
var requestBody = requestModel.body;
|
||||||
|
if (requestModel.bodyContentType == ContentType.json && requestBody?.isNotEmpty == true){
|
||||||
|
result += kJsonImport;
|
||||||
|
}
|
||||||
if (uri != null) {
|
if (uri != null) {
|
||||||
var templateStartUrl = jj.Template(kTemplateStart);
|
var templateStartUrl = jj.Template(kTemplateStart);
|
||||||
result += templateStartUrl.render({
|
result += templateStartUrl.render({
|
||||||
@ -130,9 +136,8 @@ multipart/form-data; boundary={{boundary}}''';
|
|||||||
'isFormDataRequest': requestModel.hasFormData,
|
'isFormDataRequest': requestModel.hasFormData,
|
||||||
"method": requestModel.method.name.toLowerCase()
|
"method": requestModel.method.name.toLowerCase()
|
||||||
});
|
});
|
||||||
|
|
||||||
var method = requestModel.method;
|
|
||||||
var requestBody = requestModel.body;
|
|
||||||
if (kMethodsWithBody.contains(method) && requestBody != null) {
|
if (kMethodsWithBody.contains(method) && requestBody != null) {
|
||||||
var contentLength = utf8.encode(requestBody).length;
|
var contentLength = utf8.encode(requestBody).length;
|
||||||
if (contentLength > 0) {
|
if (contentLength > 0) {
|
||||||
|
@ -9,7 +9,8 @@ void main() {
|
|||||||
|
|
||||||
group('GET Request', () {
|
group('GET Request', () {
|
||||||
test('GET 1', () {
|
test('GET 1', () {
|
||||||
const expectedCode = r"""fn main() -> Result<(), ureq::Error> {
|
const expectedCode = r"""
|
||||||
|
fn main() -> Result<(), ureq::Error> {
|
||||||
let url = "https://api.apidash.dev";
|
let url = "https://api.apidash.dev";
|
||||||
let response = ureq::get(url)
|
let response = ureq::get(url)
|
||||||
.call()?;
|
.call()?;
|
||||||
@ -103,7 +104,7 @@ void main() {
|
|||||||
const expectedCode = r"""fn main() -> Result<(), ureq::Error> {
|
const expectedCode = r"""fn main() -> Result<(), ureq::Error> {
|
||||||
let url = "https://api.github.com/repos/foss42/apidash";
|
let url = "https://api.github.com/repos/foss42/apidash";
|
||||||
let response = ureq::get(url)
|
let response = ureq::get(url)
|
||||||
.set("User-Agent", "Test Agent")
|
.header("User-Agent", "Test Agent")
|
||||||
.call()?;
|
.call()?;
|
||||||
|
|
||||||
println!("Response Status: {}", response.status());
|
println!("Response Status: {}", response.status());
|
||||||
@ -126,7 +127,7 @@ void main() {
|
|||||||
let url = "https://api.github.com/repos/foss42/apidash";
|
let url = "https://api.github.com/repos/foss42/apidash";
|
||||||
let response = ureq::get(url)
|
let response = ureq::get(url)
|
||||||
.query("raw", "true")
|
.query("raw", "true")
|
||||||
.set("User-Agent", "Test Agent")
|
.header("User-Agent", "Test Agent")
|
||||||
.call()?;
|
.call()?;
|
||||||
|
|
||||||
println!("Response Status: {}", response.status());
|
println!("Response Status: {}", response.status());
|
||||||
@ -170,7 +171,7 @@ void main() {
|
|||||||
let url = "https://api.github.com/repos/foss42/apidash";
|
let url = "https://api.github.com/repos/foss42/apidash";
|
||||||
let response = ureq::get(url)
|
let response = ureq::get(url)
|
||||||
.query("raw", "true")
|
.query("raw", "true")
|
||||||
.set("User-Agent", "Test Agent")
|
.header("User-Agent", "Test Agent")
|
||||||
.call()?;
|
.call()?;
|
||||||
|
|
||||||
println!("Response Status: {}", response.status());
|
println!("Response Status: {}", response.status());
|
||||||
@ -215,7 +216,7 @@ void main() {
|
|||||||
const expectedCode = r"""fn main() -> Result<(), ureq::Error> {
|
const expectedCode = r"""fn main() -> Result<(), ureq::Error> {
|
||||||
let url = "https://api.apidash.dev/humanize/social";
|
let url = "https://api.apidash.dev/humanize/social";
|
||||||
let response = ureq::get(url)
|
let response = ureq::get(url)
|
||||||
.set("User-Agent", "Test Agent")
|
.header("User-Agent", "Test Agent")
|
||||||
.call()?;
|
.call()?;
|
||||||
|
|
||||||
println!("Response Status: {}", response.status());
|
println!("Response Status: {}", response.status());
|
||||||
@ -239,7 +240,7 @@ void main() {
|
|||||||
let response = ureq::get(url)
|
let response = ureq::get(url)
|
||||||
.query("num", "8700000")
|
.query("num", "8700000")
|
||||||
.query("digits", "3")
|
.query("digits", "3")
|
||||||
.set("User-Agent", "Test Agent")
|
.header("User-Agent", "Test Agent")
|
||||||
.call()?;
|
.call()?;
|
||||||
|
|
||||||
println!("Response Status: {}", response.status());
|
println!("Response Status: {}", response.status());
|
||||||
@ -332,8 +333,8 @@ void main() {
|
|||||||
}"#;
|
}"#;
|
||||||
|
|
||||||
let response = ureq::post(url)
|
let response = ureq::post(url)
|
||||||
.set("content-type", "text/plain")
|
.header("content-type", "text/plain")
|
||||||
.send_string(payload)?;
|
.send(payload)?;
|
||||||
|
|
||||||
println!("Response Status: {}", response.status());
|
println!("Response Status: {}", response.status());
|
||||||
println!("Response: {}", response.into_body().read_to_string()?);
|
println!("Response: {}", response.into_body().read_to_string()?);
|
||||||
@ -351,9 +352,12 @@ void main() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('POST 2', () {
|
test('POST 2', () {
|
||||||
const expectedCode = r'''fn main() -> Result<(), ureq::Error> {
|
const expectedCode = r'''
|
||||||
|
use serde_json::json;
|
||||||
|
fn main() -> Result<(), ureq::Error> {
|
||||||
let url = "https://api.apidash.dev/case/lower";
|
let url = "https://api.apidash.dev/case/lower";
|
||||||
let payload = ureq::json!({
|
|
||||||
|
let payload = json!({
|
||||||
"text": "I LOVE Flutter",
|
"text": "I LOVE Flutter",
|
||||||
"flag": null,
|
"flag": null,
|
||||||
"male": true,
|
"male": true,
|
||||||
@ -381,14 +385,17 @@ void main() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('POST 3', () {
|
test('POST 3', () {
|
||||||
const expectedCode = r'''fn main() -> Result<(), ureq::Error> {
|
const expectedCode = r'''
|
||||||
|
use serde_json::json;
|
||||||
|
fn main() -> Result<(), ureq::Error> {
|
||||||
let url = "https://api.apidash.dev/case/lower";
|
let url = "https://api.apidash.dev/case/lower";
|
||||||
let payload = ureq::json!({
|
|
||||||
|
let payload = json!({
|
||||||
"text": "I LOVE Flutter"
|
"text": "I LOVE Flutter"
|
||||||
});
|
});
|
||||||
|
|
||||||
let response = ureq::post(url)
|
let response = ureq::post(url)
|
||||||
.set("User-Agent", "Test Agent")
|
.header("User-Agent", "Test Agent")
|
||||||
.send_json(payload)?;
|
.send_json(payload)?;
|
||||||
|
|
||||||
println!("Response Status: {}", response.status());
|
println!("Response Status: {}", response.status());
|
||||||
@ -465,7 +472,7 @@ fn main() -> Result<(), ureq::Error> {
|
|||||||
|
|
||||||
let payload = build_data_list(form_data_items);
|
let payload = build_data_list(form_data_items);
|
||||||
let response = ureq::post(url)
|
let response = ureq::post(url)
|
||||||
.set("content-type", "multipart/form-data; boundary=test")
|
.header("content-type", "multipart/form-data; boundary=test")
|
||||||
.send_bytes(&payload)?;
|
.send_bytes(&payload)?;
|
||||||
|
|
||||||
println!("Response Status: {}", response.status());
|
println!("Response Status: {}", response.status());
|
||||||
@ -542,8 +549,8 @@ fn main() -> Result<(), ureq::Error> {
|
|||||||
|
|
||||||
let payload = build_data_list(form_data_items);
|
let payload = build_data_list(form_data_items);
|
||||||
let response = ureq::post(url)
|
let response = ureq::post(url)
|
||||||
.set("User-Agent", "Test Agent")
|
.header("User-Agent", "Test Agent")
|
||||||
.set("content-type", "multipart/form-data; boundary=test")
|
.header("content-type", "multipart/form-data; boundary=test")
|
||||||
.send_bytes(&payload)?;
|
.send_bytes(&payload)?;
|
||||||
|
|
||||||
println!("Response Status: {}", response.status());
|
println!("Response Status: {}", response.status());
|
||||||
@ -612,7 +619,7 @@ fn main() -> Result<(), ureq::Error> {
|
|||||||
|
|
||||||
let payload = build_data_list(form_data_items);
|
let payload = build_data_list(form_data_items);
|
||||||
let response = ureq::post(url)
|
let response = ureq::post(url)
|
||||||
.set("content-type", "multipart/form-data; boundary=test")
|
.header("content-type", "multipart/form-data; boundary=test")
|
||||||
.send_bytes(&payload)?;
|
.send_bytes(&payload)?;
|
||||||
|
|
||||||
println!("Response Status: {}", response.status());
|
println!("Response Status: {}", response.status());
|
||||||
@ -681,7 +688,7 @@ fn main() -> Result<(), ureq::Error> {
|
|||||||
|
|
||||||
let payload = build_data_list(form_data_items);
|
let payload = build_data_list(form_data_items);
|
||||||
let response = ureq::post(url)
|
let response = ureq::post(url)
|
||||||
.set("content-type", "multipart/form-data; boundary=test")
|
.header("content-type", "multipart/form-data; boundary=test")
|
||||||
.send_bytes(&payload)?;
|
.send_bytes(&payload)?;
|
||||||
|
|
||||||
println!("Response Status: {}", response.status());
|
println!("Response Status: {}", response.status());
|
||||||
@ -757,7 +764,7 @@ fn main() -> Result<(), ureq::Error> {
|
|||||||
let response = ureq::post(url)
|
let response = ureq::post(url)
|
||||||
.query("size", "2")
|
.query("size", "2")
|
||||||
.query("len", "3")
|
.query("len", "3")
|
||||||
.set("content-type", "multipart/form-data; boundary=test")
|
.header("content-type", "multipart/form-data; boundary=test")
|
||||||
.send_bytes(&payload)?;
|
.send_bytes(&payload)?;
|
||||||
|
|
||||||
println!("Response Status: {}", response.status());
|
println!("Response Status: {}", response.status());
|
||||||
@ -828,9 +835,9 @@ fn main() -> Result<(), ureq::Error> {
|
|||||||
let response = ureq::post(url)
|
let response = ureq::post(url)
|
||||||
.query("size", "2")
|
.query("size", "2")
|
||||||
.query("len", "3")
|
.query("len", "3")
|
||||||
.set("User-Agent", "Test Agent")
|
.header("User-Agent", "Test Agent")
|
||||||
.set("Keep-Alive", "true")
|
.header("Keep-Alive", "true")
|
||||||
.set("content-type", "multipart/form-data; boundary=test")
|
.header("content-type", "multipart/form-data; boundary=test")
|
||||||
.send_bytes(&payload)?;
|
.send_bytes(&payload)?;
|
||||||
|
|
||||||
println!("Response Status: {}", response.status());
|
println!("Response Status: {}", response.status());
|
||||||
@ -849,9 +856,11 @@ fn main() -> Result<(), ureq::Error> {
|
|||||||
|
|
||||||
group('PUT Request', () {
|
group('PUT Request', () {
|
||||||
test('PUT 1', () {
|
test('PUT 1', () {
|
||||||
const expectedCode = r'''fn main() -> Result<(), ureq::Error> {
|
const expectedCode = r'''use serde_json::json;
|
||||||
|
fn main() -> Result<(), ureq::Error> {
|
||||||
let url = "https://reqres.in/api/users/2";
|
let url = "https://reqres.in/api/users/2";
|
||||||
let payload = ureq::json!({
|
|
||||||
|
let payload = json!({
|
||||||
"name": "morpheus",
|
"name": "morpheus",
|
||||||
"job": "zion resident"
|
"job": "zion resident"
|
||||||
});
|
});
|
||||||
@ -877,9 +886,12 @@ fn main() -> Result<(), ureq::Error> {
|
|||||||
|
|
||||||
group('PATCH Request', () {
|
group('PATCH Request', () {
|
||||||
test('PATCH 1', () {
|
test('PATCH 1', () {
|
||||||
const expectedCode = r'''fn main() -> Result<(), ureq::Error> {
|
const expectedCode = r'''
|
||||||
|
use serde_json::json;
|
||||||
|
fn main() -> Result<(), ureq::Error> {
|
||||||
let url = "https://reqres.in/api/users/2";
|
let url = "https://reqres.in/api/users/2";
|
||||||
let payload = ureq::json!({
|
|
||||||
|
let payload = json!({
|
||||||
"name": "marfeus",
|
"name": "marfeus",
|
||||||
"job": "accountant"
|
"job": "accountant"
|
||||||
});
|
});
|
||||||
@ -905,7 +917,8 @@ fn main() -> Result<(), ureq::Error> {
|
|||||||
|
|
||||||
group('DELETE Request', () {
|
group('DELETE Request', () {
|
||||||
test('DELETE 1', () {
|
test('DELETE 1', () {
|
||||||
const expectedCode = r"""fn main() -> Result<(), ureq::Error> {
|
const expectedCode = r"""
|
||||||
|
fn main() -> Result<(), ureq::Error> {
|
||||||
let url = "https://reqres.in/api/users/2";
|
let url = "https://reqres.in/api/users/2";
|
||||||
let response = ureq::delete(url)
|
let response = ureq::delete(url)
|
||||||
.call()?;
|
.call()?;
|
||||||
@ -926,9 +939,12 @@ fn main() -> Result<(), ureq::Error> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('DELETE 2', () {
|
test('DELETE 2', () {
|
||||||
const expectedCode = r'''fn main() -> Result<(), ureq::Error> {
|
const expectedCode = r'''
|
||||||
|
use serde_json::json;
|
||||||
|
fn main() -> Result<(), ureq::Error> {
|
||||||
let url = "https://reqres.in/api/users/2";
|
let url = "https://reqres.in/api/users/2";
|
||||||
let payload = ureq::json!({
|
|
||||||
|
let payload = json!({
|
||||||
"name": "marfeus",
|
"name": "marfeus",
|
||||||
"job": "accountant"
|
"job": "accountant"
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user