mirror of
https://github.com/foss42/apidash.git
synced 2025-06-03 16:27:06 +08:00
refactor: abstract to helper
This commit is contained in:
@ -1,16 +1,34 @@
|
||||
import 'package:apidash/app.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'package:apidash/widgets/widgets.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||
import 'package:integration_test/integration_test.dart';
|
||||
import 'package:apidash/main.dart' as app;
|
||||
|
||||
import 'env_helper.dart';
|
||||
import 'req_helper.dart';
|
||||
|
||||
class ApidashTestHelper {
|
||||
final WidgetTester tester;
|
||||
|
||||
ApidashTestHelper(this.tester);
|
||||
|
||||
ApidashTestRequestHelper? _reqHelper;
|
||||
ApidashTestEnvHelper? _envHelper;
|
||||
|
||||
ApidashTestRequestHelper get reqHelper {
|
||||
_reqHelper ??= ApidashTestRequestHelper(tester);
|
||||
return _reqHelper!;
|
||||
}
|
||||
|
||||
ApidashTestEnvHelper get envHelper {
|
||||
_envHelper ??= ApidashTestEnvHelper(tester);
|
||||
return _envHelper!;
|
||||
}
|
||||
|
||||
static Future<IntegrationTestWidgetsFlutterBinding> initialize(
|
||||
{Size? size}) async {
|
||||
final binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized();
|
||||
@ -30,6 +48,66 @@ class ApidashTestHelper {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> navigateToRequestEditor(
|
||||
{GlobalKey<ScaffoldState>? scaffoldKey}) async {
|
||||
if (scaffoldKey != null) {
|
||||
scaffoldKey.currentState!.openDrawer();
|
||||
await tester.pumpAndSettle();
|
||||
}
|
||||
await tester.tap(find.byIcon(Icons.auto_awesome_mosaic_outlined));
|
||||
await tester.pumpAndSettle();
|
||||
}
|
||||
|
||||
Future<void> navigateToEnvironmentManager(
|
||||
{GlobalKey<ScaffoldState>? scaffoldKey}) async {
|
||||
if (scaffoldKey != null) {
|
||||
scaffoldKey.currentState!.openDrawer();
|
||||
await tester.pumpAndSettle();
|
||||
}
|
||||
await tester.tap(find.byIcon(Icons.laptop_windows_outlined));
|
||||
await tester.pumpAndSettle();
|
||||
}
|
||||
|
||||
Future<void> navigateToHistory(
|
||||
{GlobalKey<ScaffoldState>? scaffoldKey}) async {
|
||||
if (scaffoldKey != null) {
|
||||
scaffoldKey.currentState!.openDrawer();
|
||||
await tester.pumpAndSettle();
|
||||
}
|
||||
await tester.tap(find.byIcon(Icons.history_outlined));
|
||||
await tester.pumpAndSettle();
|
||||
}
|
||||
|
||||
Future<void> navigateToSettings(
|
||||
{GlobalKey<ScaffoldState>? scaffoldKey}) async {
|
||||
if (scaffoldKey != null) {
|
||||
scaffoldKey.currentState!.openDrawer();
|
||||
await tester.pumpAndSettle();
|
||||
}
|
||||
await tester.tap(find.byIcon(Icons.settings_outlined));
|
||||
await tester.pumpAndSettle();
|
||||
}
|
||||
|
||||
Future<void> changeURIScheme(String scheme) async {
|
||||
await tester.tap(find.descendant(
|
||||
of: find.byType(URIPopupMenu),
|
||||
matching: find.byIcon(Icons.unfold_more)));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
await tester.tap(find.text(scheme).last);
|
||||
await tester.pumpAndSettle();
|
||||
}
|
||||
|
||||
Future<void> changeCodegenLanguage(CodegenLanguage language) async {
|
||||
await tester.tap(find.descendant(
|
||||
of: find.byType(CodegenPopupMenu),
|
||||
matching: find.byIcon(Icons.unfold_more)));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
await tester.tap(find.text(language.label).last);
|
||||
await tester.pumpAndSettle();
|
||||
}
|
||||
}
|
||||
|
||||
@isTest
|
||||
@ -46,8 +124,3 @@ void apidashWidgetTest(
|
||||
semanticsEnabled: false,
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> navigateByIcon(WidgetTester tester, IconData icon) async {
|
||||
await tester.tap(find.byIcon(icon));
|
||||
await tester.pumpAndSettle();
|
||||
}
|
||||
|
Reference in New Issue
Block a user