mirror of
https://github.com/foss42/apidash.git
synced 2025-07-03 23:05:32 +08:00
Added Query, Header tests and Refactoring
This commit is contained in:
lib
test
@ -1,10 +1,7 @@
|
|||||||
import 'package:apidash/codegen/kotlin/pkg_okhttp.dart';
|
import 'package:apidash/codegen/kotlin/pkg_okhttp.dart';
|
||||||
import 'package:apidash/consts.dart';
|
import 'package:apidash/consts.dart';
|
||||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
||||||
|
|
||||||
import '../models/request_model.dart';
|
import 'package:apidash/models/models.dart' show RequestModel;
|
||||||
import '../providers/collection_providers.dart';
|
|
||||||
import '../providers/settings_providers.dart';
|
|
||||||
import 'dart/pkg_http.dart';
|
import 'dart/pkg_http.dart';
|
||||||
|
|
||||||
class Codegen {
|
class Codegen {
|
||||||
|
@ -39,23 +39,33 @@ class _CodePaneState extends ConsumerState<CodePane> {
|
|||||||
}
|
}
|
||||||
return ViewCodePane(
|
return ViewCodePane(
|
||||||
code: code,
|
code: code,
|
||||||
|
codegenLanguage: codegenLanguage,
|
||||||
|
onChangedCodegenLanguage: (CodegenLanguage? value) {
|
||||||
|
ref
|
||||||
|
.read(codegenLanguageStateProvider.notifier)
|
||||||
|
.update((state) => value!);
|
||||||
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ViewCodePane extends ConsumerStatefulWidget {
|
class ViewCodePane extends StatefulWidget {
|
||||||
const ViewCodePane({
|
const ViewCodePane({
|
||||||
super.key,
|
super.key,
|
||||||
required this.code,
|
required this.code,
|
||||||
|
required this.codegenLanguage,
|
||||||
|
required this.onChangedCodegenLanguage,
|
||||||
});
|
});
|
||||||
|
|
||||||
final String code;
|
final String code;
|
||||||
|
final CodegenLanguage codegenLanguage;
|
||||||
|
final Function(CodegenLanguage?) onChangedCodegenLanguage;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
ConsumerState<ConsumerStatefulWidget> createState() => _ViewCodePaneState();
|
State<ViewCodePane> createState() => _ViewCodePaneState();
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ViewCodePaneState extends ConsumerState<ViewCodePane> {
|
class _ViewCodePaneState extends State<ViewCodePane> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var codeTheme = Theme.of(context).brightness == Brightness.light
|
var codeTheme = Theme.of(context).brightness == Brightness.light
|
||||||
@ -87,12 +97,8 @@ class _ViewCodePaneState extends ConsumerState<ViewCodePane> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
DropdownButtonCodegenLanguage(
|
DropdownButtonCodegenLanguage(
|
||||||
codegenLanguage: ref.watch(codegenLanguageStateProvider),
|
codegenLanguage: widget.codegenLanguage,
|
||||||
onChanged: (CodegenLanguage? value) {
|
onChanged: widget.onChangedCodegenLanguage,
|
||||||
ref
|
|
||||||
.read(codegenLanguageStateProvider.notifier)
|
|
||||||
.update((state) => value!);
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
CopyButton(toCopy: widget.code),
|
CopyButton(toCopy: widget.code),
|
||||||
SaveInDownloadsButton(
|
SaveInDownloadsButton(
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:apidash/codegen/kotlin/pkg_okhttp.dart';
|
import 'package:apidash/codegen/kotlin/pkg_okhttp.dart';
|
||||||
|
import 'package:apidash/models/kvrow_model.dart';
|
||||||
import 'package:apidash/models/request_model.dart';
|
import 'package:apidash/models/request_model.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
import 'package:apidash/consts.dart';
|
import 'package:apidash/consts.dart';
|
||||||
@ -117,6 +118,44 @@ val request = Request.Builder()
|
|||||||
.build()
|
.build()
|
||||||
val response = client.newCall(request).execute()
|
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())
|
println(response.body!!.string())
|
||||||
""";
|
""";
|
||||||
expect(kotlinOkHttpCodeGen.getCode(requestModel), expectedCode);
|
expect(kotlinOkHttpCodeGen.getCode(requestModel), expectedCode);
|
||||||
|
@ -59,6 +59,8 @@ void main() async {
|
|||||||
Expanded(
|
Expanded(
|
||||||
child: ViewCodePane(
|
child: ViewCodePane(
|
||||||
code: code,
|
code: code,
|
||||||
|
codegenLanguage: CodegenLanguage.dartHttp,
|
||||||
|
onChangedCodegenLanguage: (p0) {},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@ -85,6 +87,8 @@ void main() async {
|
|||||||
Expanded(
|
Expanded(
|
||||||
child: ViewCodePane(
|
child: ViewCodePane(
|
||||||
code: code,
|
code: code,
|
||||||
|
codegenLanguage: CodegenLanguage.dartHttp,
|
||||||
|
onChangedCodegenLanguage: (p0) {},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
Reference in New Issue
Block a user