mirror of
https://github.com/foss42/apidash.git
synced 2025-06-28 03:19:40 +08:00
Merge branch 'main' into add-feature-http-headers-suggestions
This commit is contained in:
@ -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,
|
||||
);
|
||||
|
@ -20,8 +20,8 @@ class DartHttpCodeGen {
|
||||
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,
|
||||
);
|
||||
@ -55,8 +55,11 @@ class DartHttpCodeGen {
|
||||
final strContent = CodeExpression(Code('r\'\'\'$body\'\'\''));
|
||||
dataExp = declareVar('body', type: refer('String')).assign(strContent);
|
||||
|
||||
composeHeaders.putIfAbsent(HttpHeaders.contentTypeHeader,
|
||||
final hasContentTypeHeader = composeHeaders.keys.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
|
||||
if (!hasContentTypeHeader) {
|
||||
composeHeaders.putIfAbsent(HttpHeaders.contentTypeHeader,
|
||||
() => kContentTypeMap[contentType] ?? '');
|
||||
}
|
||||
}
|
||||
|
||||
Expression? queryParamExp;
|
||||
|
@ -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({
|
||||
|
@ -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({
|
||||
|
@ -77,7 +77,10 @@ import okhttp3.MediaType.Companion.toMediaType""";
|
||||
url = "$defaultUriScheme://$url";
|
||||
}
|
||||
|
||||
var rec = getValidRequestUri(url, requestModel.requestParams);
|
||||
var rec = getValidRequestUri(
|
||||
url,
|
||||
requestModel.enabledRequestParams,
|
||||
);
|
||||
Uri? uri = rec.$1;
|
||||
|
||||
if (uri != null) {
|
||||
@ -120,9 +123,9 @@ import okhttp3.MediaType.Companion.toMediaType""";
|
||||
result = stringStart + result;
|
||||
result += kStringRequestStart;
|
||||
|
||||
var headersList = requestModel.requestHeaders;
|
||||
var headersList = requestModel.enabledRequestHeaders;
|
||||
if (headersList != null) {
|
||||
var headers = requestModel.headersMap;
|
||||
var headers = requestModel.enabledHeadersMap;
|
||||
if (headers.isNotEmpty) {
|
||||
hasHeaders = true;
|
||||
result += getHeaders(headers);
|
||||
|
@ -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({
|
||||
|
@ -9,8 +9,10 @@ class HARCodeGen {
|
||||
) {
|
||||
try {
|
||||
var harString = kEncoder.convert(requestModelToHARJsonRequest(
|
||||
requestModel,
|
||||
defaultUriScheme: defaultUriScheme));
|
||||
requestModel,
|
||||
defaultUriScheme: defaultUriScheme,
|
||||
useEnabled: true,
|
||||
));
|
||||
return harString;
|
||||
} catch (e) {
|
||||
return null;
|
||||
|
@ -71,7 +71,10 @@ print(data.decode("utf-8"))
|
||||
}
|
||||
|
||||
result += kTemplateStart;
|
||||
var rec = getValidRequestUri(url, requestModel.requestParams);
|
||||
var rec = getValidRequestUri(
|
||||
url,
|
||||
requestModel.enabledRequestParams,
|
||||
);
|
||||
Uri? uri = rec.$1;
|
||||
|
||||
if (uri != null) {
|
||||
@ -97,12 +100,14 @@ print(data.decode("utf-8"))
|
||||
}
|
||||
}
|
||||
|
||||
var headersList = requestModel.requestHeaders;
|
||||
var headersList = requestModel.enabledRequestHeaders;
|
||||
if (headersList != null || hasBody) {
|
||||
var headers = requestModel.headersMap;
|
||||
var headers = requestModel.enabledHeadersMap;
|
||||
if (headers.isNotEmpty || hasBody) {
|
||||
hasHeaders = true;
|
||||
if (hasBody) {
|
||||
bool hasContentTypeHeader = headers.keys.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
|
||||
|
||||
if (hasBody && !hasContentTypeHeader) {
|
||||
headers[HttpHeaders.contentTypeHeader] =
|
||||
kContentTypeMap[requestModel.requestBodyContentType] ?? "";
|
||||
}
|
||||
|
@ -75,7 +75,10 @@ print('Response Body:', response.text)
|
||||
url = "$defaultUriScheme://$url";
|
||||
}
|
||||
|
||||
var rec = getValidRequestUri(url, requestModel.requestParams);
|
||||
var rec = getValidRequestUri(
|
||||
url,
|
||||
requestModel.enabledRequestParams,
|
||||
);
|
||||
Uri? uri = rec.$1;
|
||||
if (uri != null) {
|
||||
var templateStartUrl = jj.Template(kTemplateStart);
|
||||
@ -109,9 +112,9 @@ print('Response Body:', response.text)
|
||||
}
|
||||
}
|
||||
|
||||
var headersList = requestModel.requestHeaders;
|
||||
var headersList = requestModel.enabledRequestHeaders;
|
||||
if (headersList != null || hasBody) {
|
||||
var headers = requestModel.headersMap;
|
||||
var headers = requestModel.enabledHeadersMap;
|
||||
if (headers.isNotEmpty || hasBody) {
|
||||
hasHeaders = true;
|
||||
if (hasBody) {
|
||||
|
@ -1,6 +1,7 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'package:apidash/utils/utils.dart' show mapToRows, rowsToMap;
|
||||
import 'package:apidash/utils/utils.dart'
|
||||
show mapToRows, rowsToMap, getEnabledRows;
|
||||
import 'name_value_model.dart';
|
||||
import 'response_model.dart';
|
||||
|
||||
@ -15,6 +16,8 @@ class RequestModel {
|
||||
this.requestTabIndex = 0,
|
||||
this.requestHeaders,
|
||||
this.requestParams,
|
||||
this.isHeaderEnabledList,
|
||||
this.isParamEnabledList,
|
||||
this.requestBodyContentType = ContentType.json,
|
||||
this.requestBody,
|
||||
this.responseStatus,
|
||||
@ -30,12 +33,23 @@ class RequestModel {
|
||||
final int requestTabIndex;
|
||||
final List<NameValueModel>? requestHeaders;
|
||||
final List<NameValueModel>? requestParams;
|
||||
final List<bool>? isHeaderEnabledList;
|
||||
final List<bool>? isParamEnabledList;
|
||||
final ContentType requestBodyContentType;
|
||||
final String? requestBody;
|
||||
final int? responseStatus;
|
||||
final String? message;
|
||||
final ResponseModel? responseModel;
|
||||
|
||||
List<NameValueModel>? get enabledRequestHeaders =>
|
||||
getEnabledRows(requestHeaders, isHeaderEnabledList);
|
||||
List<NameValueModel>? get enabledRequestParams =>
|
||||
getEnabledRows(requestParams, isParamEnabledList);
|
||||
|
||||
Map<String, String> get enabledHeadersMap =>
|
||||
rowsToMap(enabledRequestHeaders) ?? {};
|
||||
Map<String, String> get enabledParamsMap =>
|
||||
rowsToMap(enabledRequestParams) ?? {};
|
||||
Map<String, String> get headersMap => rowsToMap(requestHeaders) ?? {};
|
||||
Map<String, String> get paramsMap => rowsToMap(requestParams) ?? {};
|
||||
|
||||
@ -50,6 +64,10 @@ class RequestModel {
|
||||
description: description,
|
||||
requestHeaders: requestHeaders != null ? [...requestHeaders!] : null,
|
||||
requestParams: requestParams != null ? [...requestParams!] : null,
|
||||
isHeaderEnabledList:
|
||||
isHeaderEnabledList != null ? [...isHeaderEnabledList!] : null,
|
||||
isParamEnabledList:
|
||||
isParamEnabledList != null ? [...isParamEnabledList!] : null,
|
||||
requestBodyContentType: requestBodyContentType,
|
||||
requestBody: requestBody,
|
||||
);
|
||||
@ -64,6 +82,8 @@ class RequestModel {
|
||||
int? requestTabIndex,
|
||||
List<NameValueModel>? requestHeaders,
|
||||
List<NameValueModel>? requestParams,
|
||||
List<bool>? isHeaderEnabledList,
|
||||
List<bool>? isParamEnabledList,
|
||||
ContentType? requestBodyContentType,
|
||||
String? requestBody,
|
||||
int? responseStatus,
|
||||
@ -72,6 +92,8 @@ class RequestModel {
|
||||
}) {
|
||||
var headers = requestHeaders ?? this.requestHeaders;
|
||||
var params = requestParams ?? this.requestParams;
|
||||
var enabledHeaders = isHeaderEnabledList ?? this.isHeaderEnabledList;
|
||||
var enabledParams = isParamEnabledList ?? this.isParamEnabledList;
|
||||
return RequestModel(
|
||||
id: id ?? this.id,
|
||||
method: method ?? this.method,
|
||||
@ -81,6 +103,8 @@ class RequestModel {
|
||||
requestTabIndex: requestTabIndex ?? this.requestTabIndex,
|
||||
requestHeaders: headers != null ? [...headers] : null,
|
||||
requestParams: params != null ? [...params] : null,
|
||||
isHeaderEnabledList: enabledHeaders != null ? [...enabledHeaders] : null,
|
||||
isParamEnabledList: enabledParams != null ? [...enabledParams] : null,
|
||||
requestBodyContentType:
|
||||
requestBodyContentType ?? this.requestBodyContentType,
|
||||
requestBody: requestBody ?? this.requestBody,
|
||||
@ -106,6 +130,8 @@ class RequestModel {
|
||||
final description = data["description"] as String?;
|
||||
final requestHeaders = data["requestHeaders"];
|
||||
final requestParams = data["requestParams"];
|
||||
final isHeaderEnabledList = data["isHeaderEnabledList"] as List<bool>?;
|
||||
final isParamEnabledList = data["isParamEnabledList"] as List<bool>?;
|
||||
try {
|
||||
requestBodyContentType =
|
||||
ContentType.values.byName(data["requestBodyContentType"] as String);
|
||||
@ -136,6 +162,8 @@ class RequestModel {
|
||||
requestParams: requestParams != null
|
||||
? mapToRows(Map<String, String>.from(requestParams))
|
||||
: null,
|
||||
isHeaderEnabledList: isHeaderEnabledList,
|
||||
isParamEnabledList: isParamEnabledList,
|
||||
requestBodyContentType: requestBodyContentType,
|
||||
requestBody: requestBody,
|
||||
responseStatus: responseStatus,
|
||||
@ -153,6 +181,8 @@ class RequestModel {
|
||||
"description": description,
|
||||
"requestHeaders": rowsToMap(requestHeaders),
|
||||
"requestParams": rowsToMap(requestParams),
|
||||
"isHeaderEnabledList": isHeaderEnabledList,
|
||||
"isParamEnabledList": isParamEnabledList,
|
||||
"requestBodyContentType": requestBodyContentType.name,
|
||||
"requestBody": requestBody,
|
||||
"responseStatus": includeResponse ? responseStatus : null,
|
||||
@ -171,7 +201,9 @@ class RequestModel {
|
||||
"Request Description: $description",
|
||||
"Request Tab Index: ${requestTabIndex.toString()}",
|
||||
"Request Headers: ${requestHeaders.toString()}",
|
||||
"Enabled Headers: ${isHeaderEnabledList.toString()}",
|
||||
"Request Params: ${requestParams.toString()}",
|
||||
"Enabled Params: ${isParamEnabledList.toString()}",
|
||||
"Request Body Content Type: ${requestBodyContentType.toString()}",
|
||||
"Request Body: ${requestBody.toString()}",
|
||||
"Response Status: $responseStatus",
|
||||
@ -192,6 +224,8 @@ class RequestModel {
|
||||
other.requestTabIndex == requestTabIndex &&
|
||||
listEquals(other.requestHeaders, requestHeaders) &&
|
||||
listEquals(other.requestParams, requestParams) &&
|
||||
listEquals(other.isHeaderEnabledList, isHeaderEnabledList) &&
|
||||
listEquals(other.isParamEnabledList, isParamEnabledList) &&
|
||||
other.requestBodyContentType == requestBodyContentType &&
|
||||
other.requestBody == requestBody &&
|
||||
other.responseStatus == responseStatus &&
|
||||
@ -211,6 +245,8 @@ class RequestModel {
|
||||
requestTabIndex,
|
||||
requestHeaders,
|
||||
requestParams,
|
||||
isHeaderEnabledList,
|
||||
isParamEnabledList,
|
||||
requestBodyContentType,
|
||||
requestBody,
|
||||
responseStatus,
|
||||
|
@ -123,6 +123,8 @@ class CollectionStateNotifier
|
||||
int? requestTabIndex,
|
||||
List<NameValueModel>? requestHeaders,
|
||||
List<NameValueModel>? requestParams,
|
||||
List<bool>? isHeaderEnabledList,
|
||||
List<bool>? isParamEnabledList,
|
||||
ContentType? requestBodyContentType,
|
||||
String? requestBody,
|
||||
int? responseStatus,
|
||||
@ -137,12 +139,13 @@ class CollectionStateNotifier
|
||||
requestTabIndex: requestTabIndex,
|
||||
requestHeaders: requestHeaders,
|
||||
requestParams: requestParams,
|
||||
isHeaderEnabledList: isHeaderEnabledList,
|
||||
isParamEnabledList: isParamEnabledList,
|
||||
requestBodyContentType: requestBodyContentType,
|
||||
requestBody: requestBody,
|
||||
responseStatus: responseStatus,
|
||||
message: message,
|
||||
responseModel: responseModel);
|
||||
//print(newModel);
|
||||
var map = {...state!};
|
||||
map[id] = newModel;
|
||||
state = map;
|
||||
@ -175,7 +178,6 @@ class CollectionStateNotifier
|
||||
responseModel: responseModel,
|
||||
);
|
||||
}
|
||||
//print(newRequestModel);
|
||||
ref.read(sentRequestIdStateProvider.notifier).state = null;
|
||||
var map = {...state!};
|
||||
map[id] = newRequestModel;
|
||||
|
@ -16,6 +16,7 @@ class EditRequestHeaders extends ConsumerStatefulWidget {
|
||||
|
||||
class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
late List<NameValueModel> rows;
|
||||
late List<bool> isRowEnabledList;
|
||||
final random = Random.secure();
|
||||
late int seed;
|
||||
|
||||
@ -26,9 +27,11 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
}
|
||||
|
||||
void _onFieldChange(String activeId) {
|
||||
ref
|
||||
.read(collectionStateNotifierProvider.notifier)
|
||||
.update(activeId, requestHeaders: rows);
|
||||
ref.read(collectionStateNotifierProvider.notifier).update(
|
||||
activeId,
|
||||
requestHeaders: rows,
|
||||
isHeaderEnabledList: isRowEnabledList,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
@ -42,10 +45,31 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
kNameValueEmptyModel,
|
||||
]
|
||||
: rH;
|
||||
isRowEnabledList =
|
||||
ref.read(activeRequestModelProvider)?.isHeaderEnabledList ??
|
||||
List.filled(rows.length, true, growable: true);
|
||||
|
||||
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
|
||||
rows: rows,
|
||||
columns: [
|
||||
DaviColumn(
|
||||
name: 'Checkbox',
|
||||
width: 36,
|
||||
cellBuilder: (_, row) {
|
||||
int idx = row.index;
|
||||
return CheckBox(
|
||||
keyId: "$activeId-$idx-headers-c-$seed",
|
||||
value: isRowEnabledList[idx],
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
isRowEnabledList[idx] = value!;
|
||||
});
|
||||
_onFieldChange(activeId!);
|
||||
},
|
||||
colorScheme: Theme.of(context).colorScheme,
|
||||
);
|
||||
},
|
||||
),
|
||||
DaviColumn(
|
||||
name: 'Header Name',
|
||||
grow: 1,
|
||||
@ -106,9 +130,11 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
rows = [
|
||||
kNameValueEmptyModel,
|
||||
];
|
||||
isRowEnabledList = [true];
|
||||
});
|
||||
} else {
|
||||
rows.removeAt(row.index);
|
||||
isRowEnabledList.removeAt(row.index);
|
||||
}
|
||||
_onFieldChange(activeId!);
|
||||
},
|
||||
@ -143,6 +169,7 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
child: ElevatedButton.icon(
|
||||
onPressed: () {
|
||||
rows.add(kNameValueEmptyModel);
|
||||
isRowEnabledList.add(true);
|
||||
_onFieldChange(activeId!);
|
||||
},
|
||||
icon: const Icon(Icons.add),
|
||||
|
@ -17,6 +17,7 @@ class EditRequestURLParams extends ConsumerStatefulWidget {
|
||||
|
||||
class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
late List<NameValueModel> rows;
|
||||
late List<bool> isRowEnabledList;
|
||||
final random = Random.secure();
|
||||
late int seed;
|
||||
|
||||
@ -27,9 +28,11 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
}
|
||||
|
||||
void _onFieldChange(String activeId) {
|
||||
ref
|
||||
.read(collectionStateNotifierProvider.notifier)
|
||||
.update(activeId, requestParams: rows);
|
||||
ref.read(collectionStateNotifierProvider.notifier).update(
|
||||
activeId,
|
||||
requestParams: rows,
|
||||
isParamEnabledList: isRowEnabledList,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
@ -43,10 +46,32 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
kNameValueEmptyModel,
|
||||
]
|
||||
: rP;
|
||||
isRowEnabledList =
|
||||
ref.read(activeRequestModelProvider)?.isParamEnabledList ??
|
||||
List.filled(rows.length, true, growable: true);
|
||||
|
||||
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
|
||||
rows: rows,
|
||||
columns: [
|
||||
DaviColumn(
|
||||
name: 'Checkbox',
|
||||
width: 36,
|
||||
cellBuilder: (_, row) {
|
||||
int idx = row.index;
|
||||
|
||||
return CheckBox(
|
||||
keyId: "$activeId-$idx-params-c-$seed",
|
||||
value: isRowEnabledList[idx],
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
isRowEnabledList[idx] = value!;
|
||||
});
|
||||
_onFieldChange(activeId!);
|
||||
},
|
||||
colorScheme: Theme.of(context).colorScheme,
|
||||
);
|
||||
},
|
||||
),
|
||||
DaviColumn(
|
||||
name: 'URL Parameter',
|
||||
grow: 1,
|
||||
@ -107,9 +132,11 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
rows = [
|
||||
kNameValueEmptyModel,
|
||||
];
|
||||
isRowEnabledList = [true];
|
||||
});
|
||||
} else {
|
||||
rows.removeAt(row.index);
|
||||
isRowEnabledList.removeAt(row.index);
|
||||
}
|
||||
_onFieldChange(activeId!);
|
||||
},
|
||||
@ -144,6 +171,7 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
child: ElevatedButton.icon(
|
||||
onPressed: () {
|
||||
rows.add(kNameValueEmptyModel);
|
||||
isRowEnabledList.add(true);
|
||||
_onFieldChange(activeId!);
|
||||
},
|
||||
icon: const Icon(Icons.add),
|
||||
|
@ -12,12 +12,12 @@ Future<(http.Response?, Duration?, String?)> request(
|
||||
}) async {
|
||||
(Uri?, String?) uriRec = getValidRequestUri(
|
||||
requestModel.url,
|
||||
requestModel.requestParams,
|
||||
requestModel.enabledRequestParams,
|
||||
defaultUriScheme: defaultUriScheme,
|
||||
);
|
||||
if (uriRec.$1 != null) {
|
||||
Uri requestUrl = uriRec.$1!;
|
||||
Map<String, String> headers = requestModel.headersMap;
|
||||
Map<String, String> headers = requestModel.enabledHeadersMap;
|
||||
http.Response response;
|
||||
String? body;
|
||||
try {
|
||||
@ -28,8 +28,11 @@ Future<(http.Response?, Duration?, String?)> request(
|
||||
if (contentLength > 0) {
|
||||
body = requestBody;
|
||||
headers[HttpHeaders.contentLengthHeader] = contentLength.toString();
|
||||
headers[HttpHeaders.contentTypeHeader] =
|
||||
final hasContentTypeHeader = headers.keys.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
|
||||
if (!hasContentTypeHeader) {
|
||||
headers[HttpHeaders.contentTypeHeader] =
|
||||
kContentTypeMap[requestModel.requestBodyContentType] ?? "";
|
||||
}
|
||||
}
|
||||
}
|
||||
Stopwatch stopwatch = Stopwatch()..start();
|
||||
|
@ -109,3 +109,13 @@ Uint8List jsonMapToBytes(Map<String, dynamic>? map) {
|
||||
return bytes;
|
||||
}
|
||||
}
|
||||
|
||||
List<NameValueModel>? getEnabledRows(
|
||||
List<NameValueModel>? rows, List<bool>? isRowEnabledList) {
|
||||
if (rows == null || isRowEnabledList == null) {
|
||||
return rows;
|
||||
}
|
||||
List<NameValueModel> finalRows =
|
||||
rows.where((element) => isRowEnabledList[rows.indexOf(element)]).toList();
|
||||
return finalRows == [] ? null : finalRows;
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'package:apidash/utils/utils.dart' show getValidRequestUri;
|
||||
import 'package:apidash/models/models.dart' show RequestModel;
|
||||
@ -74,13 +75,14 @@ Map<String, dynamic> requestModelToHARJsonRequest(
|
||||
RequestModel requestModel, {
|
||||
defaultUriScheme = kDefaultUriScheme,
|
||||
bool exportMode = false,
|
||||
bool useEnabled = false,
|
||||
}) {
|
||||
Map<String, dynamic> json = {};
|
||||
bool hasBody = false;
|
||||
|
||||
var rec = getValidRequestUri(
|
||||
requestModel.url,
|
||||
requestModel.requestParams,
|
||||
requestModel.enabledRequestParams,
|
||||
defaultUriScheme: defaultUriScheme,
|
||||
);
|
||||
|
||||
@ -125,11 +127,16 @@ Map<String, dynamic> requestModelToHARJsonRequest(
|
||||
}
|
||||
}
|
||||
|
||||
var headersList = requestModel.requestHeaders;
|
||||
var headersList = useEnabled
|
||||
? requestModel.enabledRequestHeaders
|
||||
: requestModel.requestHeaders;
|
||||
if (headersList != null || hasBody) {
|
||||
var headers = requestModel.headersMap;
|
||||
var headers =
|
||||
useEnabled ? requestModel.enabledHeadersMap : requestModel.headersMap;
|
||||
if (headers.isNotEmpty || hasBody) {
|
||||
if (hasBody) {
|
||||
bool hasContentTypeHeader = headers.keys.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
|
||||
|
||||
if (hasBody && !hasContentTypeHeader) {
|
||||
var m = {
|
||||
"name": "Content-Type",
|
||||
"value": kContentTypeMap[requestModel.requestBodyContentType] ?? ""
|
||||
|
@ -32,7 +32,7 @@ Map<String, String> headers = {
|
||||
"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 original media type of the resource before any content-encoding applied for sending.",
|
||||
"Indicates the original media type of the resource (prior to any content encoding applied for sending)",
|
||||
"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.",
|
||||
|
41
lib/widgets/checkbox.dart
Normal file
41
lib/widgets/checkbox.dart
Normal file
@ -0,0 +1,41 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class CheckBox extends StatelessWidget {
|
||||
final String keyId;
|
||||
final bool value;
|
||||
final ValueChanged<bool?> onChanged;
|
||||
final ColorScheme? colorScheme;
|
||||
const CheckBox({
|
||||
super.key,
|
||||
required this.keyId,
|
||||
required this.value,
|
||||
required this.onChanged,
|
||||
this.colorScheme,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var colorScheme = this.colorScheme ?? Theme.of(context).colorScheme;
|
||||
return Checkbox(
|
||||
key: Key(keyId),
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(3),
|
||||
),
|
||||
side: BorderSide(
|
||||
color: colorScheme.surfaceVariant,
|
||||
width: 1.5,
|
||||
),
|
||||
splashRadius: 0,
|
||||
value: value,
|
||||
onChanged: onChanged,
|
||||
checkColor: colorScheme.onPrimary,
|
||||
fillColor: MaterialStateProperty.resolveWith<Color?>(
|
||||
(Set<MaterialState> states) {
|
||||
if (states.contains(MaterialState.selected)) {
|
||||
return colorScheme.primary;
|
||||
}
|
||||
return null;
|
||||
},
|
||||
));
|
||||
}
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
export 'buttons.dart';
|
||||
export 'cards.dart';
|
||||
export 'checkbox.dart';
|
||||
export 'code_previewer.dart';
|
||||
export 'codegen_previewer.dart';
|
||||
export 'dropdowns.dart';
|
||||
|
@ -54,6 +54,37 @@ void main() {
|
||||
--header 'User-Agent: Test Agent'""";
|
||||
expect(curlCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 9', () {
|
||||
const expectedCode =
|
||||
r"""curl --url 'https://api.foss42.com/humanize/social?num=8700000&add_space=true'""";
|
||||
expect(curlCodeGen.getCode(requestModelGet9, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 10', () {
|
||||
const expectedCode =
|
||||
r"""curl --url 'https://api.foss42.com/humanize/social' \
|
||||
--header 'User-Agent: Test Agent'""";
|
||||
expect(
|
||||
curlCodeGen.getCode(
|
||||
requestModelGet10,
|
||||
"https",
|
||||
),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 11', () {
|
||||
const expectedCode =
|
||||
r"""curl --url 'https://api.foss42.com/humanize/social?num=8700000&digits=3' \
|
||||
--header 'User-Agent: Test Agent'""";
|
||||
expect(curlCodeGen.getCode(requestModelGet11, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 12', () {
|
||||
const expectedCode =
|
||||
r"""curl --url 'https://api.foss42.com/humanize/social'""";
|
||||
expect(curlCodeGen.getCode(requestModelGet12, "https"), expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('HEAD Request', () {
|
||||
@ -100,6 +131,7 @@ void main() {
|
||||
expect(curlCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('PUT Request', () {
|
||||
test('PUT 1', () {
|
||||
const expectedCode = r"""curl --request PUT \
|
||||
|
@ -208,6 +208,115 @@ void main() async {
|
||||
""";
|
||||
expect(dartDioCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 9', () {
|
||||
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(requestModelGet9, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 10', () {
|
||||
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(
|
||||
requestModelGet10,
|
||||
"https",
|
||||
),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 11', () {
|
||||
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(requestModelGet11, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 12', () {
|
||||
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(requestModelGet12, "https"), expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('HEAD Request', () {
|
||||
@ -340,6 +449,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;
|
||||
|
@ -213,6 +213,117 @@ void main() async {
|
||||
""";
|
||||
expect(dartHttpCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 9', () {
|
||||
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(requestModelGet9, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 10', () {
|
||||
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(
|
||||
requestModelGet10,
|
||||
"https",
|
||||
),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 11', () {
|
||||
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(requestModelGet11, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 12', () {
|
||||
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(requestModelGet12, "https"), expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('HEAD Request', () {
|
||||
@ -356,6 +467,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;
|
||||
|
@ -149,6 +149,83 @@ void main() {
|
||||
}""";
|
||||
expect(harCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 9', () {
|
||||
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(requestModelGet9, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 10', () {
|
||||
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(
|
||||
requestModelGet10,
|
||||
"https",
|
||||
),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 11', () {
|
||||
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(requestModelGet11, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 12', () {
|
||||
const expectedCode = r"""{
|
||||
"method": "GET",
|
||||
"url": "https://api.foss42.com/humanize/social",
|
||||
"httpVersion": "HTTP/1.1",
|
||||
"queryString": [],
|
||||
"headers": []
|
||||
}""";
|
||||
expect(harCodeGen.getCode(requestModelGet12, "https"), expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('HEAD Request', () {
|
||||
@ -240,6 +317,7 @@ void main() {
|
||||
expect(harCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('PUT Request', () {
|
||||
test('PUT 1', () {
|
||||
const expectedCode = r"""{
|
||||
|
@ -201,6 +201,109 @@ axios(config)
|
||||
""";
|
||||
expect(axiosCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 9', () {
|
||||
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(requestModelGet9, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 10', () {
|
||||
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(
|
||||
requestModelGet10,
|
||||
"https",
|
||||
),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 11', () {
|
||||
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(requestModelGet11, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 12', () {
|
||||
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(requestModelGet12, "https"), expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('HEAD Request', () {
|
||||
@ -324,6 +427,7 @@ axios(config)
|
||||
expect(axiosCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('PUT Request', () {
|
||||
test('PUT 1', () {
|
||||
const expectedCode = r"""let config = {
|
||||
|
@ -220,6 +220,121 @@ fetch(url, options)
|
||||
""";
|
||||
expect(fetchCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 9', () {
|
||||
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(requestModelGet9, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 10', () {
|
||||
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(
|
||||
requestModelGet10,
|
||||
"https",
|
||||
),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 11', () {
|
||||
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(requestModelGet11, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 12', () {
|
||||
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(requestModelGet12, "https"), expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('HEAD Request', () {
|
||||
@ -366,6 +481,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';
|
||||
|
@ -219,6 +219,116 @@ fun main() {
|
||||
expect(
|
||||
kotlinOkHttpCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 9', () {
|
||||
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(requestModelGet9, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 10', () {
|
||||
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(
|
||||
requestModelGet10,
|
||||
"https",
|
||||
),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 11', () {
|
||||
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(requestModelGet11, "https"),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 12', () {
|
||||
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(requestModelGet12, "https"),
|
||||
expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('HEAD Request', () {
|
||||
@ -369,6 +479,7 @@ fun main() {
|
||||
expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('PUT Request', () {
|
||||
test('PUT 1', () {
|
||||
const expectedCode = r'''import okhttp3.OkHttpClient
|
||||
|
@ -217,6 +217,117 @@ axios(config)
|
||||
""";
|
||||
expect(axiosCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 9', () {
|
||||
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(requestModelGet9, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 10', () {
|
||||
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(
|
||||
requestModelGet10,
|
||||
"https",
|
||||
),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 11', () {
|
||||
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(requestModelGet11, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 12', () {
|
||||
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(requestModelGet12, "https"), expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('HEAD Request', () {
|
||||
@ -350,6 +461,7 @@ axios(config)
|
||||
expect(axiosCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('PUT Request', () {
|
||||
test('PUT 1', () {
|
||||
const expectedCode = r"""import axios from 'axios';
|
||||
|
@ -230,6 +230,125 @@ fetch(url, options)
|
||||
""";
|
||||
expect(fetchCodeGen.getCode(requestModelGet8, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 9', () {
|
||||
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(requestModelGet9, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 10', () {
|
||||
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(
|
||||
requestModelGet10,
|
||||
"https",
|
||||
),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 11', () {
|
||||
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(requestModelGet11, "https"), expectedCode);
|
||||
});
|
||||
|
||||
test('GET 12', () {
|
||||
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(requestModelGet12, "https"), expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('HEAD Request', () {
|
||||
@ -386,6 +505,7 @@ fetch(url, options)
|
||||
expect(fetchCodeGen.getCode(requestModelPost3, "https"), expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('PUT Request', () {
|
||||
test('PUT 1', () {
|
||||
const expectedCode = r"""import fetch from 'node-fetch';
|
||||
|
@ -174,6 +174,94 @@ print(data.decode("utf-8"))
|
||||
expect(pythonHttpClientCodeGen.getCode(requestModelGet8, "https"),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 9', () {
|
||||
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(requestModelGet9, "https"),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 10', () {
|
||||
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(
|
||||
requestModelGet10,
|
||||
"https",
|
||||
),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 11', () {
|
||||
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(requestModelGet11, "https"),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 12', () {
|
||||
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(requestModelGet12, "https"),
|
||||
expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('HEAD Request', () {
|
||||
@ -285,6 +373,7 @@ print(data.decode("utf-8"))
|
||||
expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('PUT Request', () {
|
||||
test('PUT 1', () {
|
||||
const expectedCode = r"""import http.client
|
||||
|
@ -153,6 +153,84 @@ print('Response Body:', response.text)
|
||||
expect(pythonRequestsCodeGen.getCode(requestModelGet8, "https"),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 9', () {
|
||||
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(requestModelGet9, "https"),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 10', () {
|
||||
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(
|
||||
requestModelGet10,
|
||||
"https",
|
||||
),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 11', () {
|
||||
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(requestModelGet11, "https"),
|
||||
expectedCode);
|
||||
});
|
||||
|
||||
test('GET 12', () {
|
||||
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(requestModelGet12, "https"),
|
||||
expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('HEAD Request', () {
|
||||
@ -248,6 +326,7 @@ print('Response Body:', response.text)
|
||||
expectedCode);
|
||||
});
|
||||
});
|
||||
|
||||
group('PUT Request', () {
|
||||
test('PUT 1', () {
|
||||
const expectedCode = r"""import requests
|
||||
|
@ -106,7 +106,9 @@ void main() {
|
||||
'content-length': '18',
|
||||
'content-type': 'application/json; charset=utf-8'
|
||||
},
|
||||
'isHeaderEnabledList': null,
|
||||
'requestParams': null,
|
||||
'isParamEnabledList': null,
|
||||
"requestBodyContentType": 'json',
|
||||
"requestBody": '''{
|
||||
"text":"WORLD"
|
||||
@ -140,7 +142,9 @@ void main() {
|
||||
"Request Description: ",
|
||||
"Request Tab Index: 0",
|
||||
"Request Headers: [NameValueModel(name: content-length, value: 18), NameValueModel(name: content-type, value: application/json; charset=utf-8)]",
|
||||
"Enabled Headers: null",
|
||||
"Request Params: null",
|
||||
"Enabled Params: null",
|
||||
"Request Body Content Type: ContentType.json",
|
||||
'Request Body: {\n"text":"WORLD"\n}',
|
||||
"Response Status: null",
|
||||
|
@ -90,6 +90,94 @@ const requestModelGet8 = RequestModel(
|
||||
],
|
||||
);
|
||||
|
||||
/// GET request model with some params enabled
|
||||
const requestModelGet9 = 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,
|
||||
],
|
||||
);
|
||||
|
||||
/// GET Request model with some headers enabled
|
||||
const requestModelGet10 = 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,
|
||||
],
|
||||
);
|
||||
|
||||
/// GET Request model with some headers & URL parameters enabled
|
||||
const requestModelGet11 = 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 all headers & URL parameters disabled
|
||||
const requestModelGet12 = 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,
|
||||
],
|
||||
);
|
||||
|
||||
/// Basic HEAD request model
|
||||
const requestModelHead1 = RequestModel(
|
||||
id: 'head1',
|
||||
|
@ -127,4 +127,39 @@ Easily manipulate and play around with request inputs like headers, query parame
|
||||
expect(padMultilineString(text1, 10), text1FirstLineNotPaddedExpected);
|
||||
});
|
||||
});
|
||||
|
||||
group("Test getEnabledRows", () {
|
||||
test('Testing for null', () {
|
||||
expect(getEnabledRows(null, null), null);
|
||||
});
|
||||
test('Testing for empty list', () {
|
||||
expect(getEnabledRows([], []), []);
|
||||
});
|
||||
const kvRow1 = NameValueModel(name: "code", value: "IN");
|
||||
const kvRow2 = NameValueModel(name: "lang", value: "eng");
|
||||
const kvRow3 = NameValueModel(name: "version", value: 0.1);
|
||||
const kvRow4 = NameValueModel(name: "month", value: 4);
|
||||
test('Testing with isRowEnabledList null', () {
|
||||
expect(getEnabledRows([kvRow1, kvRow2, kvRow3, kvRow4], null),
|
||||
[kvRow1, kvRow2, kvRow3, kvRow4]);
|
||||
});
|
||||
test('Testing for list with all enabled', () {
|
||||
expect(
|
||||
getEnabledRows(
|
||||
[kvRow1, kvRow2, kvRow3, kvRow4], [true, true, true, true]),
|
||||
[kvRow1, kvRow2, kvRow3, kvRow4]);
|
||||
});
|
||||
test('Testing for list with all disabled', () {
|
||||
expect(
|
||||
getEnabledRows(
|
||||
[kvRow1, kvRow2, kvRow3, kvRow4], [false, false, false, false]),
|
||||
[]);
|
||||
});
|
||||
test('Testing for list with some disabled', () {
|
||||
expect(
|
||||
getEnabledRows(
|
||||
[kvRow1, kvRow2, kvRow3, kvRow4], [true, false, true, false]),
|
||||
[kvRow1, kvRow3]);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user