From feef7d2b75383cada73d3940245a281f3a442532 Mon Sep 17 00:00:00 2001 From: DenserMeerkat Date: Sun, 25 Aug 2024 05:12:53 +0530 Subject: [PATCH] test: req_editor_test mobile --- integration_test/desktop/req_editor_test.dart | 4 +- integration_test/mobile/req_editor_test.dart | 67 +++++++++++++++++++ 2 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 integration_test/mobile/req_editor_test.dart diff --git a/integration_test/desktop/req_editor_test.dart b/integration_test/desktop/req_editor_test.dart index 3c37824a..146732da 100644 --- a/integration_test/desktop/req_editor_test.dart +++ b/integration_test/desktop/req_editor_test.dart @@ -1,11 +1,9 @@ -import 'dart:ui'; - -import 'package:apidash/widgets/widgets.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:spot/spot.dart'; import 'package:apidash/app.dart'; import 'package:apidash/consts.dart'; +import 'package:apidash/widgets/widgets.dart'; import '../../test/extensions/widget_tester_extensions.dart'; import '../test_helper.dart'; diff --git a/integration_test/mobile/req_editor_test.dart b/integration_test/mobile/req_editor_test.dart new file mode 100644 index 00000000..032c1818 --- /dev/null +++ b/integration_test/mobile/req_editor_test.dart @@ -0,0 +1,67 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:spot/spot.dart'; +import 'package:apidash/app.dart'; +import 'package:apidash/consts.dart'; +import 'package:apidash/widgets/widgets.dart'; +import '../../test/extensions/widget_tester_extensions.dart'; +import '../test_helper.dart'; + +void main() async { + const reqName = "test-req-name"; + const testEndpoint = "https://api.apidash.dev/humanize/social"; + const paramKey = "num"; + const paramValue = "870000"; + const headerKey = "Content-Type"; + const headerValue = "application/json"; + const expectedCurlCode = "curl --url '$testEndpoint?$paramKey=$paramValue'"; + const expectedRawCode = '''{ + "data": "870K" +}'''; + + await ApidashTestHelper.initialize( + size: Size(kCompactWindowWidth, kMinWindowSize.height)); + apidashWidgetTest("Testing Request Editor in mobile end-to-end", + (WidgetTester tester, helper) async { + await tester.pumpUntilFound(find.byType(DashApp)); + await Future.delayed(const Duration(seconds: 1)); + + /// Create New Request + await helper.reqHelper.addRequest(testEndpoint, + name: reqName, + params: [(paramKey, paramValue)], + headers: [(headerKey, headerValue)], + isMobile: true); + await Future.delayed(const Duration(milliseconds: 200)); + await helper.reqHelper.sendRequest(); + + /// Check if response is received + await act.tap(spot().spotText(kLabelResponse)); + await tester.pumpAndSettle(); + await act.tap(spotText(ResponseBodyView.raw.label)); + await tester.pumpAndSettle(); + spotText(expectedRawCode).existsOnce(); + + /// Check Response Headers + await act.tap(spot().spotText(kLabelHeaders)); + await tester.pumpAndSettle(); + spotText("$kLabelRequestHeaders (1 $kLabelItems)").existsOnce(); + + /// Change codegen language to curl + await helper.navigateToSettings(scaffoldKey: kHomeScaffoldKey); + await helper.changeCodegenLanguage(CodegenLanguage.curl); + await helper.navigateToRequestEditor(); + + /// Uncheck first header + await act.tap(spot().spotText(kLabelRequest)); + await tester.pumpAndSettle(); + await act.tap(spot().spot().spotText(kLabelHeaders)); + await tester.pumpAndSettle(); + await helper.reqHelper.unCheckFirstHeader(); + + /// Check generated code + await act.tap(spot().spotText(kLabelCode)); + await tester.pumpAndSettle(); + spot().spotText(expectedCurlCode).existsOnce(); + }); +}