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( final next = generatedDartCode(
url: url, url: url,
method: requestModel.method, method: requestModel.method,
queryParams: requestModel.paramsMap, queryParams: requestModel.enabledParamsMap,
headers: requestModel.headersMap, headers: requestModel.enabledHeadersMap,
body: requestModel.requestBody, body: requestModel.requestBody,
contentType: requestModel.requestBodyContentType, contentType: requestModel.requestBodyContentType,
); );

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -74,6 +74,7 @@ Map<String, dynamic> requestModelToHARJsonRequest(
RequestModel requestModel, { RequestModel requestModel, {
defaultUriScheme = kDefaultUriScheme, defaultUriScheme = kDefaultUriScheme,
bool exportMode = false, bool exportMode = false,
bool useEnabled = false,
}) { }) {
Map<String, dynamic> json = {}; Map<String, dynamic> json = {};
bool hasBody = false; 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) { if (headersList != null || hasBody) {
var headers = requestModel.enabledHeadersMap; var headers =
useEnabled ? requestModel.enabledHeadersMap : requestModel.headersMap;
if (headers.isNotEmpty || hasBody) { if (headers.isNotEmpty || hasBody) {
if (hasBody) { if (hasBody) {
var m = { 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.", "Indicates the encoding transformations that have been applied to the entity body of the response.",
"Content-Security-Policy": "Content-Security-Policy":
"Controls the sources from which content can be loaded on a web page to mitigate various types of attacks.", "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.", "Cookie": "Used to send previously stored cookies back to the server.",
"Cross-Origin-Embedder-Policy": "Cross-Origin-Embedder-Policy":
"Controls whether a document is allowed to be embedded in another document.", "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); expect(curlCodeGen.getCode(requestModelPost3, "https"), expectedCode);
}); });
}); });
group('PUT Request', () { group('PUT Request', () {
test('PUT 1', () { test('PUT 1', () {
const expectedCode = r"""curl --request PUT \ const expectedCode = r"""curl --request PUT \
@ -144,4 +145,40 @@ void main() {
expect(curlCodeGen.getCode(requestModelDelete2, "https"), expectedCode); 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); expect(dartDioCodeGen.getCode(requestModelPost3, "https"), expectedCode);
}); });
}); });
group('PUT Request', () { group('PUT Request', () {
test('PUT 1', () { test('PUT 1', () {
const expectedCode = r"""import 'package:dio/dio.dart' as dio; const expectedCode = r"""import 'package:dio/dio.dart' as dio;
@ -455,4 +456,118 @@ void main() async {
dartDioCodeGen.getCode(requestModelDelete2, "https"), expectedCode); 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); expect(dartHttpCodeGen.getCode(requestModelPost3, "https"), expectedCode);
}); });
}); });
group('PUT Request', () { group('PUT Request', () {
test('PUT 1', () { test('PUT 1', () {
const expectedCode = r"""import 'package:http/http.dart' as http; const expectedCode = r"""import 'package:http/http.dart' as http;
@ -481,4 +482,120 @@ void main() async {
dartHttpCodeGen.getCode(requestModelDelete2, "https"), expectedCode); 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); expect(harCodeGen.getCode(requestModelPost3, "https"), expectedCode);
}); });
}); });
group('PUT Request', () { group('PUT Request', () {
test('PUT 1', () { test('PUT 1', () {
const expectedCode = r"""{ const expectedCode = r"""{
@ -316,4 +317,86 @@ void main() {
expect(harCodeGen.getCode(requestModelDelete2, "https"), expectedCode); 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); expect(axiosCodeGen.getCode(requestModelPost3, "https"), expectedCode);
}); });
}); });
group('PUT Request', () { group('PUT Request', () {
test('PUT 1', () { test('PUT 1', () {
const expectedCode = r"""let config = { const expectedCode = r"""let config = {
@ -425,4 +426,112 @@ axios(config)
expect(axiosCodeGen.getCode(requestModelDelete2, "https"), expectedCode); 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); expect(fetchCodeGen.getCode(requestModelPost3, "https"), expectedCode);
}); });
}); });
group('PUT Request', () { group('PUT Request', () {
test('PUT 1', () { test('PUT 1', () {
const expectedCode = r"""let url = 'https://reqres.in/api/users/2'; const expectedCode = r"""let url = 'https://reqres.in/api/users/2';
@ -486,4 +487,124 @@ fetch(url, options)
expect(fetchCodeGen.getCode(requestModelDelete2, "https"), expectedCode); 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); expectedCode);
}); });
}); });
group('PUT Request', () { group('PUT Request', () {
test('PUT 1', () { test('PUT 1', () {
const expectedCode = r'''import okhttp3.OkHttpClient const expectedCode = r'''import okhttp3.OkHttpClient
@ -497,4 +498,116 @@ fun main() {
expectedCode); 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); expect(axiosCodeGen.getCode(requestModelPost3, "https"), expectedCode);
}); });
}); });
group('PUT Request', () { group('PUT Request', () {
test('PUT 1', () { test('PUT 1', () {
const expectedCode = r"""import axios from 'axios'; const expectedCode = r"""import axios from 'axios';
@ -459,4 +460,120 @@ axios(config)
expect(axiosCodeGen.getCode(requestModelDelete2, "https"), expectedCode); 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); expect(fetchCodeGen.getCode(requestModelPost3, "https"), expectedCode);
}); });
}); });
group('PUT Request', () { group('PUT Request', () {
test('PUT 1', () { test('PUT 1', () {
const expectedCode = r"""import fetch from 'node-fetch'; const expectedCode = r"""import fetch from 'node-fetch';
@ -514,4 +515,128 @@ fetch(url, options)
expect(fetchCodeGen.getCode(requestModelDelete2, "https"), expectedCode); 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); expectedCode);
}); });
}); });
group('PUT Request', () { group('PUT Request', () {
test('PUT 1', () { test('PUT 1', () {
const expectedCode = r"""import http.client const expectedCode = r"""import http.client
@ -383,4 +384,95 @@ print(data.decode("utf-8"))
expectedCode); 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); expectedCode);
}); });
}); });
group('PUT Request', () { group('PUT Request', () {
test('PUT 1', () { test('PUT 1', () {
const expectedCode = r"""import requests const expectedCode = r"""import requests
@ -324,4 +325,83 @@ print('Response Body:', response.text)
expectedCode); 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, 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,
],
);