Added Query, Header tests and Refactoring

This commit is contained in:
mmjsmohit
2023-06-04 15:42:47 +05:30
parent 2691003884
commit 8235d208c3
4 changed files with 59 additions and 13 deletions

View File

@ -1,10 +1,7 @@
import 'package:apidash/codegen/kotlin/pkg_okhttp.dart';
import 'package:apidash/consts.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../models/request_model.dart';
import '../providers/collection_providers.dart';
import '../providers/settings_providers.dart';
import 'package:apidash/models/models.dart' show RequestModel;
import 'dart/pkg_http.dart';
class Codegen {

View File

@ -39,23 +39,33 @@ class _CodePaneState extends ConsumerState<CodePane> {
}
return ViewCodePane(
code: code,
codegenLanguage: codegenLanguage,
onChangedCodegenLanguage: (CodegenLanguage? value) {
ref
.read(codegenLanguageStateProvider.notifier)
.update((state) => value!);
},
);
}
}
class ViewCodePane extends ConsumerStatefulWidget {
class ViewCodePane extends StatefulWidget {
const ViewCodePane({
super.key,
required this.code,
required this.codegenLanguage,
required this.onChangedCodegenLanguage,
});
final String code;
final CodegenLanguage codegenLanguage;
final Function(CodegenLanguage?) onChangedCodegenLanguage;
@override
ConsumerState<ConsumerStatefulWidget> createState() => _ViewCodePaneState();
State<ViewCodePane> createState() => _ViewCodePaneState();
}
class _ViewCodePaneState extends ConsumerState<ViewCodePane> {
class _ViewCodePaneState extends State<ViewCodePane> {
@override
Widget build(BuildContext context) {
var codeTheme = Theme.of(context).brightness == Brightness.light
@ -87,12 +97,8 @@ class _ViewCodePaneState extends ConsumerState<ViewCodePane> {
),
),
DropdownButtonCodegenLanguage(
codegenLanguage: ref.watch(codegenLanguageStateProvider),
onChanged: (CodegenLanguage? value) {
ref
.read(codegenLanguageStateProvider.notifier)
.update((state) => value!);
},
codegenLanguage: widget.codegenLanguage,
onChanged: widget.onChangedCodegenLanguage,
),
CopyButton(toCopy: widget.code),
SaveInDownloadsButton(

View File

@ -1,4 +1,5 @@
import 'package:apidash/codegen/kotlin/pkg_okhttp.dart';
import 'package:apidash/models/kvrow_model.dart';
import 'package:apidash/models/request_model.dart';
import 'package:test/test.dart';
import 'package:apidash/consts.dart';
@ -117,6 +118,44 @@ val request = Request.Builder()
.build()
val response = client.newCall(request).execute()
println(response.body!!.string())
""";
expect(kotlinOkHttpCodeGen.getCode(requestModel), expectedCode);
});
test(
'getCode returns valid code for requests with headers and query parameters',
() {
const requestModel = RequestModel(
url: 'https://jsonplaceholder.typicode.com/posts',
method: HTTPVerb.get,
requestParams: [
KVRow('userId', 1),
],
requestHeaders: [
KVRow('Custom-Header-1', 'Value-1'),
KVRow('Custom-Header-2', 'Value-2')
],
id: '1',
);
const expectedCode = """import okhttp3.MediaType.Companion.toMediaType
import okhttp3.MultipartBody
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.RequestBody.Companion.asRequestBody
import java.io.File
import java.util.concurrent.TimeUnit
val client = OkHttpClient()
val request = Request.Builder()
.url("https://jsonplaceholder.typicode.com/posts")
.addQueryParameter("userId", "1")
.addHeader("Custom-Header-1", "Value-1")
.addHeader("Custom-Header-2", "Value-2")
.build()
val response = client.newCall(request).execute()
println(response.body!!.string())
""";
expect(kotlinOkHttpCodeGen.getCode(requestModel), expectedCode);

View File

@ -59,6 +59,8 @@ void main() async {
Expanded(
child: ViewCodePane(
code: code,
codegenLanguage: CodegenLanguage.dartHttp,
onChangedCodegenLanguage: (p0) {},
),
),
],
@ -85,6 +87,8 @@ void main() async {
Expanded(
child: ViewCodePane(
code: code,
codegenLanguage: CodegenLanguage.dartHttp,
onChangedCodegenLanguage: (p0) {},
),
),
],