Files
apidash/test/widgets/card_sidebar_request_test.dart
Ashita Prasad a3536b021b refactor
2024-10-22 07:06:06 +05:30

99 lines
3.1 KiB
Dart

import 'package:apidash_core/apidash_core.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:apidash/widgets/widgets.dart';
import '../test_consts.dart';
void main() {
testWidgets('Testing Sidebar Request Card', (tester) async {
dynamic changedValue;
await tester.pumpWidget(
MaterialApp(
title: 'Sidebar Request Card',
theme: kThemeDataLight,
home: Scaffold(
body: ListView(
children: [
SidebarRequestCard(
id: '23',
selectedId: '2',
url: 'https://api.apidash.dev',
method: HTTPVerb.get,
onTap: () {
changedValue = 'Single Tapped';
},
onDoubleTap: () {
changedValue = 'Double Tapped';
},
),
],
),
),
),
);
expect(find.byType(InkWell), findsOneWidget);
expect(find.text('api.apidash.dev'), findsOneWidget);
expect(find.widgetWithText(SizedBox, 'api.apidash.dev'), findsOneWidget);
expect(find.widgetWithText(Card, 'api.apidash.dev'), findsOneWidget);
await tester.pumpAndSettle();
var tappable = find.widgetWithText(Card, 'api.apidash.dev');
await tester.tap(tappable);
await tester.pumpAndSettle(const Duration(seconds: 2));
expect(changedValue, 'Single Tapped');
await tester.pumpAndSettle();
// await tester.tap(tappable);
// await tester.pump(const Duration(milliseconds: 100));
// await tester.tap(tappable);
// await tester.pumpAndSettle(const Duration(seconds: 2));
// expect(changedValue, 'Double Tapped');
});
testWidgets('Testing Sidebar Request Card dark mode', (tester) async {
dynamic changedValue;
await tester.pumpWidget(
MaterialApp(
title: 'Sidebar Request Card',
theme: kThemeDataDark,
home: Scaffold(
body: ListView(
children: [
SidebarRequestCard(
id: '2',
selectedId: '2',
editRequestId: '2',
url: 'https://api.apidash.dev',
method: HTTPVerb.get,
onTapOutsideNameEditor: () {
changedValue = 'Tapped Outside';
},
onChangedNameEditor: (value) {
changedValue = value;
},
),
],
),
),
),
);
expect(find.byType(InkWell), findsOneWidget);
await tester.pumpAndSettle();
var tappable = find.byType(TextFormField);
await tester.enterText(tappable, 'entering 123 for testing');
await tester.pump();
await tester.pumpAndSettle();
expect(changedValue, 'entering 123 for testing');
await tester.tapAt(const Offset(100, 100));
await tester.pumpAndSettle();
expect(changedValue, 'Tapped Outside');
await tester.enterText(tappable, 'New Name');
await tester.testTextInput.receiveAction(TextInputAction.done);
expect(changedValue, "Tapped Outside");
});
}