mirror of
https://github.com/foss42/apidash.git
synced 2025-06-06 11:28:07 +08:00
Added Query, Header tests and Refactoring
This commit is contained in:
@ -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 {
|
||||
|
@ -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(
|
||||
|
@ -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);
|
||||
|
@ -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) {},
|
||||
),
|
||||
),
|
||||
],
|
||||
|
Reference in New Issue
Block a user