diff --git a/lib/codegen/codegen.dart b/lib/codegen/codegen.dart index 94041bd0..eb5bb0ef 100644 --- a/lib/codegen/codegen.dart +++ b/lib/codegen/codegen.dart @@ -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 { diff --git a/lib/screens/home_page/editor_pane/details_card/code_pane.dart b/lib/screens/home_page/editor_pane/details_card/code_pane.dart index 739fef61..f894eacf 100644 --- a/lib/screens/home_page/editor_pane/details_card/code_pane.dart +++ b/lib/screens/home_page/editor_pane/details_card/code_pane.dart @@ -39,23 +39,33 @@ class _CodePaneState extends ConsumerState { } 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 createState() => _ViewCodePaneState(); + State createState() => _ViewCodePaneState(); } -class _ViewCodePaneState extends ConsumerState { +class _ViewCodePaneState extends State { @override Widget build(BuildContext context) { var codeTheme = Theme.of(context).brightness == Brightness.light @@ -87,12 +97,8 @@ class _ViewCodePaneState extends ConsumerState { ), ), 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( diff --git a/test/codegen/kotlin_okhttp_codegen_test.dart b/test/codegen/kotlin_okhttp_codegen_test.dart index 8b9654a7..0dae2b22 100644 --- a/test/codegen/kotlin_okhttp_codegen_test.dart +++ b/test/codegen/kotlin_okhttp_codegen_test.dart @@ -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); diff --git a/test/widgets/codegen_previewer_test.dart b/test/widgets/codegen_previewer_test.dart index 70f0b56b..a5b8e03c 100644 --- a/test/widgets/codegen_previewer_test.dart +++ b/test/widgets/codegen_previewer_test.dart @@ -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) {}, ), ), ],