chore: add request_model tests

This commit is contained in:
DenserMeerkat
2023-12-27 12:16:40 +05:30
parent bdd63ead7e
commit 3fd0a1933c
21 changed files with 1219 additions and 11 deletions

View File

@ -18,8 +18,8 @@ class DartDioCodeGen {
final next = generatedDartCode(
url: url,
method: requestModel.method,
queryParams: requestModel.paramsMap,
headers: requestModel.headersMap,
queryParams: requestModel.enabledParamsMap,
headers: requestModel.enabledHeadersMap,
body: requestModel.requestBody,
contentType: requestModel.requestBodyContentType,
);

View File

@ -60,7 +60,7 @@ axios(config)
}
var rM = requestModel.copyWith(url: url);
var harJson = requestModelToHARJsonRequest(rM);
var harJson = requestModelToHARJsonRequest(rM, useEnabled: true);
var templateStart = jj.Template(kTemplateStart);
result += templateStart.render({

View File

@ -61,7 +61,7 @@ fetch(url, options)
}
var rM = requestModel.copyWith(url: url);
var harJson = requestModelToHARJsonRequest(rM);
var harJson = requestModelToHARJsonRequest(rM, useEnabled: true);
var templateStart = jj.Template(kTemplateStart);
result += templateStart.render({

View File

@ -28,7 +28,7 @@ class cURLCodeGen {
}
var rM = requestModel.copyWith(url: url);
var harJson = requestModelToHARJsonRequest(rM);
var harJson = requestModelToHARJsonRequest(rM, useEnabled: true);
var templateStart = jj.Template(kTemplateStart);
result += templateStart.render({

View File

@ -10,7 +10,9 @@ class HARCodeGen {
try {
var harString = kEncoder.convert(requestModelToHARJsonRequest(
requestModel,
defaultUriScheme: defaultUriScheme));
defaultUriScheme: defaultUriScheme,
useEnabled: true,
));
return harString;
} catch (e) {
return null;

View File

@ -127,7 +127,9 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
seed = random.nextInt(kRandMax);
if (rows.length == 1) {
setState(() {
rows = [kNameValueEmptyModel];
rows = [
kNameValueEmptyModel,
];
isRowEnabledList = [true];
});
} else {

View File

@ -129,7 +129,9 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
seed = random.nextInt(kRandMax);
if (rows.length == 1) {
setState(() {
rows = [kNameValueEmptyModel];
rows = [
kNameValueEmptyModel,
];
isRowEnabledList = [true];
});
} else {

View File

@ -74,6 +74,7 @@ Map<String, dynamic> requestModelToHARJsonRequest(
RequestModel requestModel, {
defaultUriScheme = kDefaultUriScheme,
bool exportMode = false,
bool useEnabled = false,
}) {
Map<String, dynamic> json = {};
bool hasBody = false;
@ -125,9 +126,12 @@ Map<String, dynamic> requestModelToHARJsonRequest(
}
}
var headersList = requestModel.enabledRequestHeaders;
var headersList = useEnabled
? requestModel.enabledRequestHeaders
: requestModel.requestHeaders;
if (headersList != null || hasBody) {
var headers = requestModel.enabledHeadersMap;
var headers =
useEnabled ? requestModel.enabledHeadersMap : requestModel.headersMap;
if (headers.isNotEmpty || hasBody) {
if (hasBody) {
var m = {

View File

@ -15,6 +15,7 @@ Map<String, String> headers = {
"Indicates the encoding transformations that have been applied to the entity body of the response.",
"Content-Security-Policy":
"Controls the sources from which content can be loaded on a web page to mitigate various types of attacks.",
"Content-Type": "Indicates the media type of the entity body.",
"Cookie": "Used to send previously stored cookies back to the server.",
"Cross-Origin-Embedder-Policy":
"Controls whether a document is allowed to be embedded in another document.",

View File

@ -100,6 +100,7 @@ void main() {
expect(curlCodeGen.getCode(requestModelPost3, "https"), expectedCode);
});
});
group('PUT Request', () {
test('PUT 1', () {
const expectedCode = r"""curl --request PUT \
@ -144,4 +145,40 @@ void main() {
expect(curlCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
});
});
group('Request with enabled Rows', () {
test('Enabled Params', () {
const expectedCode =
r"""curl --url 'https://api.foss42.com/humanize/social?num=8700000&add_space=true'""";
expect(curlCodeGen.getCode(requestModelEnabledParams, "https"),
expectedCode);
});
test('Enabled Headers', () {
const expectedCode =
r"""curl --url 'https://api.foss42.com/humanize/social' \
--header 'User-Agent: Test Agent'""";
expect(
curlCodeGen.getCode(
requestModelEnabledHeaders,
"https",
),
expectedCode);
});
test('Enabled Headers and Params', () {
const expectedCode =
r"""curl --url 'https://api.foss42.com/humanize/social?num=8700000&digits=3' \
--header 'User-Agent: Test Agent'""";
expect(
curlCodeGen.getCode(requestModelEnabledRows, "https"), expectedCode);
});
test('Disabled Headders and Params', () {
const expectedCode =
r"""curl --url 'https://api.foss42.com/humanize/social'""";
expect(
curlCodeGen.getCode(requestModelDisabledRows, "https"), expectedCode);
});
});
}

View File

@ -340,6 +340,7 @@ void main() async {
expect(dartDioCodeGen.getCode(requestModelPost3, "https"), expectedCode);
});
});
group('PUT Request', () {
test('PUT 1', () {
const expectedCode = r"""import 'package:dio/dio.dart' as dio;
@ -455,4 +456,118 @@ void main() async {
dartDioCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
});
});
group('Request with enabled Rows', () {
test('Enabled Params', () {
const expectedCode = r"""import 'package:dio/dio.dart' as dio;
void main() async {
try {
final queryParams = {
'num': '8700000',
'add_space': 'true',
};
final response = await dio.Dio.get(
'https://api.foss42.com/humanize/social',
queryParameters: queryParams,
);
print(response.statusCode);
print(response.data);
} on DioException catch (e, s) {
print(e.response?.statusCode);
print(e.response?.data);
print(s);
} catch (e, s) {
print(e);
print(s);
}
}
""";
expect(dartDioCodeGen.getCode(requestModelEnabledParams, "https"),
expectedCode);
});
test('Enabled Headers', () {
const expectedCode = r"""import 'package:dio/dio.dart' as dio;
void main() async {
try {
final headers = {'User-Agent': 'Test Agent'};
final response = await dio.Dio.get(
'https://api.foss42.com/humanize/social',
options: Options(headers: headers),
);
print(response.statusCode);
print(response.data);
} on DioException catch (e, s) {
print(e.response?.statusCode);
print(e.response?.data);
print(s);
} catch (e, s) {
print(e);
print(s);
}
}
""";
expect(
dartDioCodeGen.getCode(
requestModelEnabledHeaders,
"https",
),
expectedCode);
});
test('Enabled Headers and Params', () {
const expectedCode = r"""import 'package:dio/dio.dart' as dio;
void main() async {
try {
final queryParams = {
'num': '8700000',
'digits': '3',
};
final headers = {'User-Agent': 'Test Agent'};
final response = await dio.Dio.get(
'https://api.foss42.com/humanize/social',
queryParameters: queryParams,
options: Options(headers: headers),
);
print(response.statusCode);
print(response.data);
} on DioException catch (e, s) {
print(e.response?.statusCode);
print(e.response?.data);
print(s);
} catch (e, s) {
print(e);
print(s);
}
}
""";
expect(dartDioCodeGen.getCode(requestModelEnabledRows, "https"),
expectedCode);
});
test('Disabled Headders and Params', () {
const expectedCode = r"""import 'package:dio/dio.dart' as dio;
void main() async {
try {
final response = await dio.Dio.get('https://api.foss42.com/humanize/social');
print(response.statusCode);
print(response.data);
} on DioException catch (e, s) {
print(e.response?.statusCode);
print(e.response?.data);
print(s);
} catch (e, s) {
print(e);
print(s);
}
}
""";
expect(dartDioCodeGen.getCode(requestModelDisabledRows, "https"),
expectedCode);
});
});
}

View File

@ -356,6 +356,7 @@ void main() async {
expect(dartHttpCodeGen.getCode(requestModelPost3, "https"), expectedCode);
});
});
group('PUT Request', () {
test('PUT 1', () {
const expectedCode = r"""import 'package:http/http.dart' as http;
@ -481,4 +482,120 @@ void main() async {
dartHttpCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
});
});
group('Request with enabled Rows', () {
test('Enabled Params', () {
const expectedCode = r"""import 'package:http/http.dart' as http;
void main() async {
var uri = Uri.parse('https://api.foss42.com/humanize/social');
var queryParams = {
'num': '8700000',
'add_space': 'true',
};
uri = uri.replace(queryParameters: queryParams);
final response = await http.get(uri);
int statusCode = response.statusCode;
if (statusCode >= 200 && statusCode < 300) {
print('Status Code: $statusCode');
print('Response Body: ${response.body}');
} else {
print('Error Status Code: $statusCode');
print('Error Response Body: ${response.body}');
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelEnabledParams, "https"),
expectedCode);
});
test('Enabled Headers', () {
const expectedCode = r"""import 'package:http/http.dart' as http;
void main() async {
var uri = Uri.parse('https://api.foss42.com/humanize/social');
var headers = {'User-Agent': 'Test Agent'};
final response = await http.get(
uri,
headers: headers,
);
int statusCode = response.statusCode;
if (statusCode >= 200 && statusCode < 300) {
print('Status Code: $statusCode');
print('Response Body: ${response.body}');
} else {
print('Error Status Code: $statusCode');
print('Error Response Body: ${response.body}');
}
}
""";
expect(
dartHttpCodeGen.getCode(
requestModelEnabledHeaders,
"https",
),
expectedCode);
});
test('Enabled Headers and Params', () {
const expectedCode = r"""import 'package:http/http.dart' as http;
void main() async {
var uri = Uri.parse('https://api.foss42.com/humanize/social');
var queryParams = {
'num': '8700000',
'digits': '3',
};
uri = uri.replace(queryParameters: queryParams);
var headers = {'User-Agent': 'Test Agent'};
final response = await http.get(
uri,
headers: headers,
);
int statusCode = response.statusCode;
if (statusCode >= 200 && statusCode < 300) {
print('Status Code: $statusCode');
print('Response Body: ${response.body}');
} else {
print('Error Status Code: $statusCode');
print('Error Response Body: ${response.body}');
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelEnabledRows, "https"),
expectedCode);
});
test('Disabled Headders and Params', () {
const expectedCode = r"""import 'package:http/http.dart' as http;
void main() async {
var uri = Uri.parse('https://api.foss42.com/humanize/social');
final response = await http.get(uri);
int statusCode = response.statusCode;
if (statusCode >= 200 && statusCode < 300) {
print('Status Code: $statusCode');
print('Response Body: ${response.body}');
} else {
print('Error Status Code: $statusCode');
print('Error Response Body: ${response.body}');
}
}
""";
expect(dartHttpCodeGen.getCode(requestModelDisabledRows, "https"),
expectedCode);
});
});
}

View File

@ -240,6 +240,7 @@ void main() {
expect(harCodeGen.getCode(requestModelPost3, "https"), expectedCode);
});
});
group('PUT Request', () {
test('PUT 1', () {
const expectedCode = r"""{
@ -316,4 +317,86 @@ void main() {
expect(harCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
});
});
group('Request with enabled Rows', () {
test('Enabled Params', () {
const expectedCode = r"""{
"method": "GET",
"url": "https://api.foss42.com/humanize/social?num=8700000&add_space=true",
"httpVersion": "HTTP/1.1",
"queryString": [
{
"name": "num",
"value": "8700000"
},
{
"name": "add_space",
"value": "true"
}
],
"headers": []
}""";
expect(
harCodeGen.getCode(requestModelEnabledParams, "https"), expectedCode);
});
test('Enabled Headers', () {
const expectedCode = r"""{
"method": "GET",
"url": "https://api.foss42.com/humanize/social",
"httpVersion": "HTTP/1.1",
"queryString": [],
"headers": [
{
"name": "User-Agent",
"value": "Test Agent"
}
]
}""";
expect(
harCodeGen.getCode(
requestModelEnabledHeaders,
"https",
),
expectedCode);
});
test('Enabled Headers and Params', () {
const expectedCode = r"""{
"method": "GET",
"url": "https://api.foss42.com/humanize/social?num=8700000&digits=3",
"httpVersion": "HTTP/1.1",
"queryString": [
{
"name": "num",
"value": "8700000"
},
{
"name": "digits",
"value": "3"
}
],
"headers": [
{
"name": "User-Agent",
"value": "Test Agent"
}
]
}""";
expect(
harCodeGen.getCode(requestModelEnabledRows, "https"), expectedCode);
});
test('Disabled Headders and Params', () {
const expectedCode = r"""{
"method": "GET",
"url": "https://api.foss42.com/humanize/social",
"httpVersion": "HTTP/1.1",
"queryString": [],
"headers": []
}""";
expect(
harCodeGen.getCode(requestModelDisabledRows, "https"), expectedCode);
});
});
}

View File

@ -324,6 +324,7 @@ axios(config)
expect(axiosCodeGen.getCode(requestModelPost3, "https"), expectedCode);
});
});
group('PUT Request', () {
test('PUT 1', () {
const expectedCode = r"""let config = {
@ -425,4 +426,112 @@ axios(config)
expect(axiosCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
});
});
group('Request with enabled Rows', () {
test('Enabled Params', () {
const expectedCode = r"""let config = {
url: 'https://api.foss42.com/humanize/social',
method: 'get',
params: {
"num": "8700000",
"add_space": "true"
}
};
axios(config)
.then(function (response) {
// handle success
console.log(response.status);
console.log(response.data);
})
.catch(function (error) {
// handle error
console.log(error.response.status);
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelEnabledParams, "https"),
expectedCode);
});
test('Enabled Headers', () {
const expectedCode = r"""let config = {
url: 'https://api.foss42.com/humanize/social',
method: 'get',
headers: {
"User-Agent": "Test Agent"
}
};
axios(config)
.then(function (response) {
// handle success
console.log(response.status);
console.log(response.data);
})
.catch(function (error) {
// handle error
console.log(error.response.status);
console.log(error);
});
""";
expect(
axiosCodeGen.getCode(
requestModelEnabledHeaders,
"https",
),
expectedCode);
});
test('Enabled Headers and Params', () {
const expectedCode = r"""let config = {
url: 'https://api.foss42.com/humanize/social',
method: 'get',
params: {
"num": "8700000",
"digits": "3"
},
headers: {
"User-Agent": "Test Agent"
}
};
axios(config)
.then(function (response) {
// handle success
console.log(response.status);
console.log(response.data);
})
.catch(function (error) {
// handle error
console.log(error.response.status);
console.log(error);
});
""";
expect(
axiosCodeGen.getCode(requestModelEnabledRows, "https"), expectedCode);
});
test('Disabled Headders and Params', () {
const expectedCode = r"""let config = {
url: 'https://api.foss42.com/humanize/social',
method: 'get'
};
axios(config)
.then(function (response) {
// handle success
console.log(response.status);
console.log(response.data);
})
.catch(function (error) {
// handle error
console.log(error.response.status);
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelDisabledRows, "https"),
expectedCode);
});
});
}

View File

@ -366,6 +366,7 @@ fetch(url, options)
expect(fetchCodeGen.getCode(requestModelPost3, "https"), expectedCode);
});
});
group('PUT Request', () {
test('PUT 1', () {
const expectedCode = r"""let url = 'https://reqres.in/api/users/2';
@ -486,4 +487,124 @@ fetch(url, options)
expect(fetchCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
});
});
group('Request with enabled Rows', () {
test('Enabled Params', () {
const expectedCode =
r"""let url = 'https://api.foss42.com/humanize/social?num=8700000&add_space=true';
let options = {
method: 'GET'
};
let status;
fetch(url, options)
.then(res => {
status = res.status;
return res.json()
})
.then(body => {
console.log(status);
console.log(body);
})
.catch(err => {
console.log(status);
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelEnabledParams, "https"),
expectedCode);
});
test('Enabled Headers', () {
const expectedCode =
r"""let url = 'https://api.foss42.com/humanize/social';
let options = {
method: 'GET',
headers: {
"User-Agent": "Test Agent"
}
};
let status;
fetch(url, options)
.then(res => {
status = res.status;
return res.json()
})
.then(body => {
console.log(status);
console.log(body);
})
.catch(err => {
console.log(status);
console.error('error:' + err);
});
""";
expect(
fetchCodeGen.getCode(
requestModelEnabledHeaders,
"https",
),
expectedCode);
});
test('Enabled Headers and Params', () {
const expectedCode =
r"""let url = 'https://api.foss42.com/humanize/social?num=8700000&digits=3';
let options = {
method: 'GET',
headers: {
"User-Agent": "Test Agent"
}
};
let status;
fetch(url, options)
.then(res => {
status = res.status;
return res.json()
})
.then(body => {
console.log(status);
console.log(body);
})
.catch(err => {
console.log(status);
console.error('error:' + err);
});
""";
expect(
fetchCodeGen.getCode(requestModelEnabledRows, "https"), expectedCode);
});
test('Disabled Headders and Params', () {
const expectedCode =
r"""let url = 'https://api.foss42.com/humanize/social';
let options = {
method: 'GET'
};
let status;
fetch(url, options)
.then(res => {
status = res.status;
return res.json()
})
.then(body => {
console.log(status);
console.log(body);
})
.catch(err => {
console.log(status);
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelDisabledRows, "https"),
expectedCode);
});
});
}

View File

@ -369,6 +369,7 @@ fun main() {
expectedCode);
});
});
group('PUT Request', () {
test('PUT 1', () {
const expectedCode = r'''import okhttp3.OkHttpClient
@ -497,4 +498,116 @@ fun main() {
expectedCode);
});
});
group('Request with enabled Rows', () {
test('Enabled Params', () {
const expectedCode = r"""import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val client = OkHttpClient()
val url = "https://api.foss42.com/humanize/social".toHttpUrl().newBuilder()
.addQueryParameter("num", "8700000")
.addQueryParameter("add_space", "true")
.build()
val request = Request.Builder()
.url(url)
.get()
.build()
val response = client.newCall(request).execute()
println(response.code)
println(response.body?.string())
}
""";
expect(kotlinOkHttpCodeGen.getCode(requestModelEnabledParams, "https"),
expectedCode);
});
test('Enabled Headers', () {
const expectedCode = r"""import okhttp3.OkHttpClient
import okhttp3.Request
fun main() {
val client = OkHttpClient()
val url = "https://api.foss42.com/humanize/social"
val request = Request.Builder()
.url(url)
.addHeader("User-Agent", "Test Agent")
.get()
.build()
val response = client.newCall(request).execute()
println(response.code)
println(response.body?.string())
}
""";
expect(
kotlinOkHttpCodeGen.getCode(
requestModelEnabledHeaders,
"https",
),
expectedCode);
});
test('Enabled Headers and Params', () {
const expectedCode = r"""import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.HttpUrl.Companion.toHttpUrl
fun main() {
val client = OkHttpClient()
val url = "https://api.foss42.com/humanize/social".toHttpUrl().newBuilder()
.addQueryParameter("num", "8700000")
.addQueryParameter("digits", "3")
.build()
val request = Request.Builder()
.url(url)
.addHeader("User-Agent", "Test Agent")
.get()
.build()
val response = client.newCall(request).execute()
println(response.code)
println(response.body?.string())
}
""";
expect(kotlinOkHttpCodeGen.getCode(requestModelEnabledRows, "https"),
expectedCode);
});
test('Disabled Headders and Params', () {
const expectedCode = r"""import okhttp3.OkHttpClient
import okhttp3.Request
fun main() {
val client = OkHttpClient()
val url = "https://api.foss42.com/humanize/social"
val request = Request.Builder()
.url(url)
.get()
.build()
val response = client.newCall(request).execute()
println(response.code)
println(response.body?.string())
}
""";
expect(kotlinOkHttpCodeGen.getCode(requestModelDisabledRows, "https"),
expectedCode);
});
});
}

View File

@ -350,6 +350,7 @@ axios(config)
expect(axiosCodeGen.getCode(requestModelPost3, "https"), expectedCode);
});
});
group('PUT Request', () {
test('PUT 1', () {
const expectedCode = r"""import axios from 'axios';
@ -459,4 +460,120 @@ axios(config)
expect(axiosCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
});
});
group('Request with enabled Rows', () {
test('Enabled Params', () {
const expectedCode = r"""import axios from 'axios';
let config = {
url: 'https://api.foss42.com/humanize/social',
method: 'get',
params: {
"num": "8700000",
"add_space": "true"
}
};
axios(config)
.then(function (response) {
// handle success
console.log(response.status);
console.log(response.data);
})
.catch(function (error) {
// handle error
console.log(error.response.status);
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelEnabledParams, "https"),
expectedCode);
});
test('Enabled Headers', () {
const expectedCode = r"""import axios from 'axios';
let config = {
url: 'https://api.foss42.com/humanize/social',
method: 'get',
headers: {
"User-Agent": "Test Agent"
}
};
axios(config)
.then(function (response) {
// handle success
console.log(response.status);
console.log(response.data);
})
.catch(function (error) {
// handle error
console.log(error.response.status);
console.log(error);
});
""";
expect(
axiosCodeGen.getCode(
requestModelEnabledHeaders,
"https",
),
expectedCode);
});
test('Enabled Headers and Params', () {
const expectedCode = r"""import axios from 'axios';
let config = {
url: 'https://api.foss42.com/humanize/social',
method: 'get',
params: {
"num": "8700000",
"digits": "3"
},
headers: {
"User-Agent": "Test Agent"
}
};
axios(config)
.then(function (response) {
// handle success
console.log(response.status);
console.log(response.data);
})
.catch(function (error) {
// handle error
console.log(error.response.status);
console.log(error);
});
""";
expect(
axiosCodeGen.getCode(requestModelEnabledRows, "https"), expectedCode);
});
test('Disabled Headders and Params', () {
const expectedCode = r"""import axios from 'axios';
let config = {
url: 'https://api.foss42.com/humanize/social',
method: 'get'
};
axios(config)
.then(function (response) {
// handle success
console.log(response.status);
console.log(response.data);
})
.catch(function (error) {
// handle error
console.log(error.response.status);
console.log(error);
});
""";
expect(axiosCodeGen.getCode(requestModelDisabledRows, "https"),
expectedCode);
});
});
}

View File

@ -386,6 +386,7 @@ fetch(url, options)
expect(fetchCodeGen.getCode(requestModelPost3, "https"), expectedCode);
});
});
group('PUT Request', () {
test('PUT 1', () {
const expectedCode = r"""import fetch from 'node-fetch';
@ -514,4 +515,128 @@ fetch(url, options)
expect(fetchCodeGen.getCode(requestModelDelete2, "https"), expectedCode);
});
});
group('Request with enabled Rows', () {
test('Enabled Params', () {
const expectedCode = r"""import fetch from 'node-fetch';
let url = 'https://api.foss42.com/humanize/social?num=8700000&add_space=true';
let options = {
method: 'GET'
};
let status;
fetch(url, options)
.then(res => {
status = res.status;
return res.json()
})
.then(body => {
console.log(status);
console.log(body);
})
.catch(err => {
console.log(status);
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelEnabledParams, "https"),
expectedCode);
});
test('Enabled Headers', () {
const expectedCode = r"""import fetch from 'node-fetch';
let url = 'https://api.foss42.com/humanize/social';
let options = {
method: 'GET',
headers: {
"User-Agent": "Test Agent"
}
};
let status;
fetch(url, options)
.then(res => {
status = res.status;
return res.json()
})
.then(body => {
console.log(status);
console.log(body);
})
.catch(err => {
console.log(status);
console.error('error:' + err);
});
""";
expect(
fetchCodeGen.getCode(
requestModelEnabledHeaders,
"https",
),
expectedCode);
});
test('Enabled Headers and Params', () {
const expectedCode = r"""import fetch from 'node-fetch';
let url = 'https://api.foss42.com/humanize/social?num=8700000&digits=3';
let options = {
method: 'GET',
headers: {
"User-Agent": "Test Agent"
}
};
let status;
fetch(url, options)
.then(res => {
status = res.status;
return res.json()
})
.then(body => {
console.log(status);
console.log(body);
})
.catch(err => {
console.log(status);
console.error('error:' + err);
});
""";
expect(
fetchCodeGen.getCode(requestModelEnabledRows, "https"), expectedCode);
});
test('Disabled Headders and Params', () {
const expectedCode = r"""import fetch from 'node-fetch';
let url = 'https://api.foss42.com/humanize/social';
let options = {
method: 'GET'
};
let status;
fetch(url, options)
.then(res => {
status = res.status;
return res.json()
})
.then(body => {
console.log(status);
console.log(body);
})
.catch(err => {
console.log(status);
console.error('error:' + err);
});
""";
expect(fetchCodeGen.getCode(requestModelDisabledRows, "https"),
expectedCode);
});
});
}

View File

@ -285,6 +285,7 @@ print(data.decode("utf-8"))
expectedCode);
});
});
group('PUT Request', () {
test('PUT 1', () {
const expectedCode = r"""import http.client
@ -383,4 +384,95 @@ print(data.decode("utf-8"))
expectedCode);
});
});
group('Request with enabled Rows', () {
test('Enabled Params', () {
const expectedCode = r"""import http.client
from urllib.parse import urlencode
queryParams = {
"num": "8700000",
"add_space": "true"
}
queryParamsStr = '?' + urlencode(queryParams)
conn = http.client.HTTPSConnection("api.foss42.com")
conn.request("GET", "/humanize/social" + queryParamsStr)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
""";
expect(
pythonHttpClientCodeGen.getCode(requestModelEnabledParams, "https"),
expectedCode);
});
test('Enabled Headers', () {
const expectedCode = r"""import http.client
headers = {
"User-Agent": "Test Agent"
}
conn = http.client.HTTPSConnection("api.foss42.com")
conn.request("GET", "/humanize/social",
headers= headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
""";
expect(
pythonHttpClientCodeGen.getCode(
requestModelEnabledHeaders,
"https",
),
expectedCode);
});
test('Enabled Headers and Params', () {
const expectedCode = r"""import http.client
from urllib.parse import urlencode
queryParams = {
"num": "8700000",
"digits": "3"
}
queryParamsStr = '?' + urlencode(queryParams)
headers = {
"User-Agent": "Test Agent"
}
conn = http.client.HTTPSConnection("api.foss42.com")
conn.request("GET", "/humanize/social" + queryParamsStr,
headers= headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelEnabledRows, "https"),
expectedCode);
});
test('Disabled Headders and Params', () {
const expectedCode = r"""import http.client
conn = http.client.HTTPSConnection("api.foss42.com")
conn.request("GET", "/humanize/social")
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
""";
expect(pythonHttpClientCodeGen.getCode(requestModelDisabledRows, "https"),
expectedCode);
});
});
}

View File

@ -248,6 +248,7 @@ print('Response Body:', response.text)
expectedCode);
});
});
group('PUT Request', () {
test('PUT 1', () {
const expectedCode = r"""import requests
@ -324,4 +325,83 @@ print('Response Body:', response.text)
expectedCode);
});
});
group('Request with enabled Rows', () {
test('Enabled Params', () {
const expectedCode = r"""import requests
url = 'https://api.foss42.com/humanize/social'
params = {
"num": "8700000",
"add_space": "true"
}
response = requests.get(url, params=params)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelEnabledParams, "https"),
expectedCode);
});
test('Enabled Headers', () {
const expectedCode = r"""import requests
url = 'https://api.foss42.com/humanize/social'
headers = {
"User-Agent": "Test Agent"
}
response = requests.get(url, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(
pythonRequestsCodeGen.getCode(
requestModelEnabledHeaders,
"https",
),
expectedCode);
});
test('Enabled Headers and Params', () {
const expectedCode = r"""import requests
url = 'https://api.foss42.com/humanize/social'
params = {
"num": "8700000",
"digits": "3"
}
headers = {
"User-Agent": "Test Agent"
}
response = requests.get(url, params=params, headers=headers)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelEnabledRows, "https"),
expectedCode);
});
test('Disabled Headders and Params', () {
const expectedCode = r"""import requests
url = 'https://api.foss42.com/humanize/social'
response = requests.get(url)
print('Status Code:', response.status_code)
print('Response Body:', response.text)
""";
expect(pythonRequestsCodeGen.getCode(requestModelDisabledRows, "https"),
expectedCode);
});
});
}

View File

@ -180,3 +180,91 @@ const requestModelDelete2 = RequestModel(
}""",
requestBodyContentType: ContentType.json,
);
/// Request model with enabled params
const requestModelEnabledParams = RequestModel(
id: 'enabledParams',
url: 'https://api.foss42.com/humanize/social',
method: HTTPVerb.get,
requestParams: [
NameValueModel(name: 'num', value: '8700000'),
NameValueModel(name: 'digits', value: '3'),
NameValueModel(name: 'system', value: 'SS'),
NameValueModel(name: 'add_space', value: 'true'),
],
isParamEnabledList: [
true,
false,
false,
true,
],
);
/// Request model with enabled headers
const requestModelEnabledHeaders = RequestModel(
id: 'enabledParams',
url: 'https://api.foss42.com/humanize/social',
method: HTTPVerb.get,
requestHeaders: [
NameValueModel(name: 'User-Agent', value: 'Test Agent'),
NameValueModel(name: 'Content-Type', value: 'application/json'),
],
isHeaderEnabledList: [
true,
false,
],
);
/// Request model with enabled rows
const requestModelEnabledRows = RequestModel(
id: 'enabledRows',
url: 'https://api.foss42.com/humanize/social',
method: HTTPVerb.get,
requestParams: [
NameValueModel(name: 'num', value: '8700000'),
NameValueModel(name: 'digits', value: '3'),
NameValueModel(name: 'system', value: 'SS'),
NameValueModel(name: 'add_space', value: 'true'),
],
requestHeaders: [
NameValueModel(name: 'User-Agent', value: 'Test Agent'),
NameValueModel(name: 'Content-Type', value: 'application/json'),
],
isParamEnabledList: [
true,
true,
false,
false,
],
isHeaderEnabledList: [
true,
false,
],
);
/// Request model with disabled rows
const requestModelDisabledRows = RequestModel(
id: 'disabledRows',
url: 'https://api.foss42.com/humanize/social',
method: HTTPVerb.get,
requestParams: [
NameValueModel(name: 'num', value: '8700000'),
NameValueModel(name: 'digits', value: '3'),
NameValueModel(name: 'system', value: 'SS'),
NameValueModel(name: 'add_space', value: 'true'),
],
requestHeaders: [
NameValueModel(name: 'User-Agent', value: 'Test Agent'),
NameValueModel(name: 'Content-Type', value: 'application/json'),
],
isParamEnabledList: [
false,
false,
false,
false,
],
isHeaderEnabledList: [
false,
false,
],
);