Merge branch 'foss42:main' into add-doc-gsoc

This commit is contained in:
Ragul Raj
2024-08-25 12:50:27 +05:30
committed by GitHub
3 changed files with 132 additions and 0 deletions

View File

@ -0,0 +1,58 @@
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(kExpandedWindowWidth, kMinWindowSize.height));
apidashWidgetTest("Testing Request Editor in desktop 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)]);
await Future.delayed(const Duration(milliseconds: 200));
await helper.reqHelper.sendRequest();
/// Check if response is received
await act.tap(spotText(ResponseBodyView.raw.label));
await tester.pumpAndSettle();
spotText(expectedRawCode).existsOnce();
/// Check Response Headers
await act.tap(spot<ResponseTabView>().spotText(kLabelHeaders));
await tester.pumpAndSettle();
spotText("$kLabelRequestHeaders (1 $kLabelItems)").existsOnce();
/// Change codegen language to curl
await helper.navigateToSettings();
await helper.changeCodegenLanguage(CodegenLanguage.curl);
await helper.navigateToRequestEditor();
/// Check generated code
await helper.reqHelper.unCheckFirstHeader();
await act.tap(spot<RequestPane>().spotText(kLabelViewCode));
await tester.pumpAndSettle();
spot<CodeGenPreviewer>().spotText(expectedCurlCode).existsOnce();
});
}

View File

@ -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<SegmentedTabbar>().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<ResponseTabView>().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<SegmentedTabbar>().spotText(kLabelRequest));
await tester.pumpAndSettle();
await act.tap(spot<RequestPane>().spot<TabBar>().spotText(kLabelHeaders));
await tester.pumpAndSettle();
await helper.reqHelper.unCheckFirstHeader();
/// Check generated code
await act.tap(spot<SegmentedTabbar>().spotText(kLabelCode));
await tester.pumpAndSettle();
spot<CodeGenPreviewer>().spotText(expectedCurlCode).existsOnce();
});
}

View File

@ -100,6 +100,13 @@ class ApidashTestRequestHelper {
} }
} }
Future<void> unCheckFirstHeader() async {
final headerCells = find.descendant(
of: find.byType(EditRequestHeaders), matching: find.byType(CheckBox));
await tester.tap(headerCells.at(0));
await tester.pumpAndSettle();
}
Future<void> addRequest( Future<void> addRequest(
String url, { String url, {
String? name, String? name,