mirror of
https://github.com/foss42/apidash.git
synced 2025-06-17 20:16:27 +08:00
test: history widgets
This commit is contained in:
71
test/widgets/button_form_data_file_test.dart
Normal file
71
test/widgets/button_form_data_file_test.dart
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
import 'package:apidash/consts.dart';
|
||||||
|
import 'package:apidash/widgets/button_form_data_file.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
testWidgets('Testing FormDataFileButton for default label',
|
||||||
|
(WidgetTester tester) async {
|
||||||
|
await tester.pumpWidget(
|
||||||
|
const MaterialApp(
|
||||||
|
home: Scaffold(
|
||||||
|
body: FormDataFileButton(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
final icon = find.byIcon(Icons.snippet_folder_rounded);
|
||||||
|
Finder button = find.ancestor(
|
||||||
|
of: icon,
|
||||||
|
matching: find.byWidgetPredicate((widget) => widget is ElevatedButton));
|
||||||
|
|
||||||
|
expect(button, findsOneWidget);
|
||||||
|
expect(find.text(kLabelSelectFile), findsOneWidget);
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets('Testing FormDataFileButton with provided label',
|
||||||
|
(WidgetTester tester) async {
|
||||||
|
const testValue = 'test_file.txt';
|
||||||
|
await tester.pumpWidget(
|
||||||
|
const MaterialApp(
|
||||||
|
home: Scaffold(
|
||||||
|
body: FormDataFileButton(initialValue: testValue),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
final icon = find.byIcon(Icons.snippet_folder_rounded);
|
||||||
|
Finder button = find.ancestor(
|
||||||
|
of: icon,
|
||||||
|
matching: find.byWidgetPredicate((widget) => widget is ElevatedButton));
|
||||||
|
|
||||||
|
expect(button, findsOneWidget);
|
||||||
|
expect(find.text(testValue), findsOneWidget);
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets('Testing FormDataFileButton triggers onPressed callback',
|
||||||
|
(WidgetTester tester) async {
|
||||||
|
bool pressed = false;
|
||||||
|
await tester.pumpWidget(
|
||||||
|
MaterialApp(
|
||||||
|
home: Scaffold(
|
||||||
|
body: FormDataFileButton(
|
||||||
|
onPressed: () {
|
||||||
|
pressed = true;
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
final icon = find.byIcon(Icons.snippet_folder_rounded);
|
||||||
|
Finder button = find.ancestor(
|
||||||
|
of: icon,
|
||||||
|
matching: find.byWidgetPredicate((widget) => widget is ElevatedButton));
|
||||||
|
|
||||||
|
await tester.tap(button);
|
||||||
|
await tester.pump();
|
||||||
|
|
||||||
|
expect(pressed, isTrue);
|
||||||
|
});
|
||||||
|
}
|
102
test/widgets/button_group_filled_test.dart
Normal file
102
test/widgets/button_group_filled_test.dart
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
import 'package:apidash/consts.dart';
|
||||||
|
import 'package:apidash/widgets/button_group_filled.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
testWidgets('Testing FilledButtonGroup', (WidgetTester tester) async {
|
||||||
|
final buttons = [
|
||||||
|
ButtonData(
|
||||||
|
icon: Icons.add,
|
||||||
|
label: 'Add',
|
||||||
|
tooltip: 'Add Item',
|
||||||
|
onPressed: () {},
|
||||||
|
),
|
||||||
|
ButtonData(
|
||||||
|
icon: Icons.remove,
|
||||||
|
label: 'Remove',
|
||||||
|
tooltip: 'Remove Item',
|
||||||
|
onPressed: () {},
|
||||||
|
),
|
||||||
|
];
|
||||||
|
|
||||||
|
await tester.pumpWidget(
|
||||||
|
MaterialApp(
|
||||||
|
home: Scaffold(
|
||||||
|
body: FilledButtonGroup(buttons: buttons),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.byType(FilledButtonWidget), findsNWidgets(2));
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets('Testing FilledButtonWidget with label',
|
||||||
|
(WidgetTester tester) async {
|
||||||
|
final buttonData = ButtonData(
|
||||||
|
icon: Icons.add,
|
||||||
|
label: 'Add',
|
||||||
|
tooltip: 'Add Item',
|
||||||
|
onPressed: () {},
|
||||||
|
);
|
||||||
|
|
||||||
|
await tester.pumpWidget(
|
||||||
|
MaterialApp(
|
||||||
|
home: Scaffold(
|
||||||
|
body: FilledButtonWidget(buttonData: buttonData, showLabel: true),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.byIcon(Icons.add), findsOneWidget);
|
||||||
|
expect(find.text('Add'), findsOneWidget);
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets('Testing FilledButtonWidget without label',
|
||||||
|
(WidgetTester tester) async {
|
||||||
|
final buttonData = ButtonData(
|
||||||
|
icon: Icons.add,
|
||||||
|
label: 'Add',
|
||||||
|
tooltip: 'Add Item',
|
||||||
|
onPressed: () {},
|
||||||
|
);
|
||||||
|
|
||||||
|
await tester.pumpWidget(
|
||||||
|
MaterialApp(
|
||||||
|
home: Scaffold(
|
||||||
|
body: FilledButtonWidget(buttonData: buttonData, showLabel: false),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.byIcon(Icons.add), findsOneWidget);
|
||||||
|
expect(find.text('Add'), findsNothing);
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets('Testing FilledButtonWidget with onPressed callback',
|
||||||
|
(WidgetTester tester) async {
|
||||||
|
bool pressed = false;
|
||||||
|
|
||||||
|
final buttonData = ButtonData(
|
||||||
|
icon: Icons.add,
|
||||||
|
label: 'Add',
|
||||||
|
tooltip: 'Add Item',
|
||||||
|
onPressed: () {
|
||||||
|
pressed = true;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
await tester.pumpWidget(
|
||||||
|
MaterialApp(
|
||||||
|
home: Scaffold(
|
||||||
|
body: FilledButtonWidget(buttonData: buttonData, showLabel: true),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
await tester.tap(find.byType(FilledButtonWidget));
|
||||||
|
await tester.pump();
|
||||||
|
|
||||||
|
expect(pressed, isTrue);
|
||||||
|
});
|
||||||
|
}
|
@ -22,23 +22,12 @@ void main() {
|
|||||||
expect(icon, findsOneWidget);
|
expect(icon, findsOneWidget);
|
||||||
|
|
||||||
Finder button;
|
Finder button;
|
||||||
if (tester.any(find.ancestor(
|
expect(find.text(kLabelDownload), findsOneWidget);
|
||||||
|
button = find.ancestor(
|
||||||
of: icon,
|
of: icon,
|
||||||
matching: find.byWidgetPredicate((widget) => widget is TextButton)))) {
|
matching: find.byWidgetPredicate((widget) => widget is TextButton));
|
||||||
expect(find.text(kLabelDownload), findsOneWidget);
|
expect(button, findsOneWidget);
|
||||||
button = find.ancestor(
|
expect(tester.widget<TextButton>(button).enabled, isFalse);
|
||||||
of: icon,
|
|
||||||
matching: find.byWidgetPredicate((widget) => widget is TextButton));
|
|
||||||
expect(button, findsOneWidget);
|
|
||||||
expect(tester.widget<TextButton>(button).enabled, isFalse);
|
|
||||||
} else if (tester
|
|
||||||
.any(find.ancestor(of: icon, matching: find.byType(IconButton)))) {
|
|
||||||
button = find.byType(IconButton);
|
|
||||||
expect(button, findsOneWidget);
|
|
||||||
expect(tester.widget<IconButton>(button).onPressed == null, isFalse);
|
|
||||||
} else {
|
|
||||||
fail('No TextButton or IconButton found');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
testWidgets('Testing for Save in Downloads button 2', (tester) async {
|
testWidgets('Testing for Save in Downloads button 2', (tester) async {
|
||||||
@ -48,6 +37,7 @@ void main() {
|
|||||||
theme: kThemeDataLight,
|
theme: kThemeDataLight,
|
||||||
home: Scaffold(
|
home: Scaffold(
|
||||||
body: SaveInDownloadsButton(
|
body: SaveInDownloadsButton(
|
||||||
|
showLabel: false,
|
||||||
content: Uint8List.fromList([1]),
|
content: Uint8List.fromList([1]),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@ -58,22 +48,8 @@ void main() {
|
|||||||
expect(icon, findsOneWidget);
|
expect(icon, findsOneWidget);
|
||||||
|
|
||||||
Finder button;
|
Finder button;
|
||||||
if (tester.any(find.ancestor(
|
button = find.byType(IconButton);
|
||||||
of: icon,
|
expect(button, findsOneWidget);
|
||||||
matching: find.byWidgetPredicate((widget) => widget is TextButton)))) {
|
expect(tester.widget<IconButton>(button).onPressed == null, isFalse);
|
||||||
expect(find.text(kLabelDownload), findsOneWidget);
|
|
||||||
button = find.ancestor(
|
|
||||||
of: icon,
|
|
||||||
matching: find.byWidgetPredicate((widget) => widget is TextButton));
|
|
||||||
expect(button, findsOneWidget);
|
|
||||||
expect(tester.widget<TextButton>(button).enabled, isTrue);
|
|
||||||
} else if (tester
|
|
||||||
.any(find.ancestor(of: icon, matching: find.byType(IconButton)))) {
|
|
||||||
button = find.byType(IconButton);
|
|
||||||
expect(button, findsOneWidget);
|
|
||||||
expect(tester.widget<IconButton>(button).onPressed == null, isTrue);
|
|
||||||
} else {
|
|
||||||
fail('No TextButton or IconButton found');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
47
test/widgets/card_history_request_test.dart
Normal file
47
test/widgets/card_history_request_test.dart
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
import 'package:apidash/models/models.dart';
|
||||||
|
import 'package:apidash/widgets/texts.dart';
|
||||||
|
import 'package:apidash/utils/utils.dart';
|
||||||
|
import 'package:apidash/consts.dart';
|
||||||
|
import 'package:apidash/widgets/card_history_request.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
testWidgets(
|
||||||
|
'HistoryRequestCard displays correct information and handles onTap',
|
||||||
|
(WidgetTester tester) async {
|
||||||
|
final mockModel = HistoryMetaModel(
|
||||||
|
historyId: 'historyId',
|
||||||
|
requestId: 'requestId',
|
||||||
|
url: 'https://api.apidash.dev',
|
||||||
|
method: HTTPVerb.get,
|
||||||
|
timeStamp: DateTime.now(),
|
||||||
|
responseStatus: 200,
|
||||||
|
);
|
||||||
|
|
||||||
|
bool wasTapped = false;
|
||||||
|
void mockOnTap() {
|
||||||
|
wasTapped = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
await tester.pumpWidget(
|
||||||
|
MaterialApp(
|
||||||
|
home: Scaffold(
|
||||||
|
body: HistoryRequestCard(
|
||||||
|
id: '1',
|
||||||
|
model: mockModel,
|
||||||
|
isSelected: true,
|
||||||
|
onTap: mockOnTap,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.text(humanizeTime(mockModel.timeStamp)), findsOneWidget);
|
||||||
|
|
||||||
|
expect(find.byType(StatusCode), findsOneWidget);
|
||||||
|
|
||||||
|
await tester.tap(find.byType(InkWell));
|
||||||
|
expect(wasTapped, isTrue);
|
||||||
|
});
|
||||||
|
}
|
97
test/widgets/card_sidebar_history_test.dart
Normal file
97
test/widgets/card_sidebar_history_test.dart
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
import 'package:apidash/widgets/widgets.dart';
|
||||||
|
import 'package:apidash/consts.dart';
|
||||||
|
import 'package:apidash/models/models.dart';
|
||||||
|
|
||||||
|
import '../test_consts.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
final List<HistoryMetaModel> sampleModels = [
|
||||||
|
HistoryMetaModel(
|
||||||
|
historyId: 'historyId',
|
||||||
|
requestId: 'requestId',
|
||||||
|
url: 'https://api.apidash.dev',
|
||||||
|
method: HTTPVerb.get,
|
||||||
|
timeStamp: DateTime.now(),
|
||||||
|
responseStatus: 200,
|
||||||
|
)
|
||||||
|
];
|
||||||
|
testWidgets('Testing Sidebar History Card', (tester) async {
|
||||||
|
dynamic changedValue;
|
||||||
|
|
||||||
|
await tester.pumpWidget(
|
||||||
|
MaterialApp(
|
||||||
|
title: 'Sidebar History Card',
|
||||||
|
theme: kThemeDataLight,
|
||||||
|
home: Scaffold(
|
||||||
|
body: ListView(
|
||||||
|
children: [
|
||||||
|
SidebarHistoryCard(
|
||||||
|
id: '1',
|
||||||
|
models: sampleModels,
|
||||||
|
method: HTTPVerb.get,
|
||||||
|
onTap: () {
|
||||||
|
changedValue = 'Tapped';
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.byType(InkWell), findsOneWidget);
|
||||||
|
|
||||||
|
expect(find.text('https://api.apidash.dev'), findsOneWidget);
|
||||||
|
expect(find.widgetWithText(SizedBox, 'https://api.apidash.dev'),
|
||||||
|
findsOneWidget);
|
||||||
|
expect(
|
||||||
|
find.widgetWithText(Card, 'https://api.apidash.dev'), findsOneWidget);
|
||||||
|
await tester.pumpAndSettle();
|
||||||
|
var tappable = find.widgetWithText(Card, 'https://api.apidash.dev');
|
||||||
|
await tester.tap(tappable);
|
||||||
|
await tester.pumpAndSettle(const Duration(seconds: 2));
|
||||||
|
expect(changedValue, 'Tapped');
|
||||||
|
await tester.pumpAndSettle();
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets('Testing Sidebar History Card dark mode', (tester) async {
|
||||||
|
dynamic changedValue;
|
||||||
|
|
||||||
|
await tester.pumpWidget(
|
||||||
|
MaterialApp(
|
||||||
|
title: 'Sidebar History Card',
|
||||||
|
theme: kThemeDataDark,
|
||||||
|
home: Scaffold(
|
||||||
|
body: ListView(
|
||||||
|
children: [
|
||||||
|
SidebarHistoryCard(
|
||||||
|
id: '1',
|
||||||
|
models: sampleModels,
|
||||||
|
method: HTTPVerb.get,
|
||||||
|
onTap: () {
|
||||||
|
changedValue = 'Tapped';
|
||||||
|
},
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.byType(InkWell), findsOneWidget);
|
||||||
|
|
||||||
|
expect(find.text('https://api.apidash.dev'), findsOneWidget);
|
||||||
|
expect(find.widgetWithText(SizedBox, 'https://api.apidash.dev'),
|
||||||
|
findsOneWidget);
|
||||||
|
expect(
|
||||||
|
find.widgetWithText(Card, 'https://api.apidash.dev'), findsOneWidget);
|
||||||
|
await tester.pumpAndSettle();
|
||||||
|
var tappable = find.widgetWithText(Card, 'https://api.apidash.dev');
|
||||||
|
await tester.tap(tappable);
|
||||||
|
await tester.pumpAndSettle(const Duration(seconds: 2));
|
||||||
|
expect(changedValue, 'Tapped');
|
||||||
|
await tester.pumpAndSettle();
|
||||||
|
});
|
||||||
|
}
|
44
test/widgets/popup_menu_history_test.dart
Normal file
44
test/widgets/popup_menu_history_test.dart
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
import 'package:apidash/widgets/widgets.dart';
|
||||||
|
import 'package:apidash/consts.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
testWidgets('Testing HistoryRetentionPopupMenu widget',
|
||||||
|
(WidgetTester tester) async {
|
||||||
|
const historyPeriod1 = HistoryRetentionPeriod.oneMonth;
|
||||||
|
const historyPeriod2 = HistoryRetentionPeriod.threeMonths;
|
||||||
|
const HistoryRetentionPeriod initialValue = HistoryRetentionPeriod.oneWeek;
|
||||||
|
HistoryRetentionPeriod? selectedValue;
|
||||||
|
|
||||||
|
await tester.pumpWidget(
|
||||||
|
MaterialApp(
|
||||||
|
home: Scaffold(
|
||||||
|
body: HistoryRetentionPopupMenu(
|
||||||
|
value: initialValue,
|
||||||
|
onChanged: (value) {
|
||||||
|
selectedValue = value;
|
||||||
|
},
|
||||||
|
items: const [historyPeriod1, historyPeriod2],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.byType(HistoryRetentionPopupMenu), findsOneWidget);
|
||||||
|
|
||||||
|
expect(find.text(initialValue.label), findsOneWidget);
|
||||||
|
|
||||||
|
await tester.tap(find.byType(HistoryRetentionPopupMenu));
|
||||||
|
await tester.pumpAndSettle();
|
||||||
|
|
||||||
|
for (var item in [historyPeriod1, historyPeriod2]) {
|
||||||
|
expect(find.text(item.label), findsOneWidget);
|
||||||
|
}
|
||||||
|
|
||||||
|
await tester.tap(find.text(historyPeriod2.label));
|
||||||
|
await tester.pumpAndSettle();
|
||||||
|
|
||||||
|
expect(selectedValue, historyPeriod2);
|
||||||
|
});
|
||||||
|
}
|
@ -3,7 +3,8 @@ import 'package:flutter_test/flutter_test.dart';
|
|||||||
import 'package:apidash/widgets/splitview_drawer.dart';
|
import 'package:apidash/widgets/splitview_drawer.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
testWidgets('DrawerSplitView displays main components', (tester) async {
|
testWidgets('Testing DrawerSplitView displays main components',
|
||||||
|
(tester) async {
|
||||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
final scaffoldKey = GlobalKey<ScaffoldState>();
|
||||||
|
|
||||||
await tester.pumpWidget(
|
await tester.pumpWidget(
|
||||||
@ -18,20 +19,16 @@ void main() {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Verify the main content is displayed
|
|
||||||
expect(find.text('Main Content'), findsOneWidget);
|
expect(find.text('Main Content'), findsOneWidget);
|
||||||
|
|
||||||
// Verify the title is displayed
|
|
||||||
expect(find.text('Title'), findsOneWidget);
|
expect(find.text('Title'), findsOneWidget);
|
||||||
|
|
||||||
// Verify the left drawer content is not displayed initially
|
|
||||||
expect(find.text('Left Drawer Content'), findsNothing);
|
expect(find.text('Left Drawer Content'), findsNothing);
|
||||||
|
|
||||||
// Verify the right drawer content is not displayed initially
|
|
||||||
expect(find.text('Right Drawer Content'), findsNothing);
|
expect(find.text('Right Drawer Content'), findsNothing);
|
||||||
});
|
});
|
||||||
|
|
||||||
testWidgets('DrawerSplitView opens left drawer', (tester) async {
|
testWidgets('Testing DrawerSplitView opens left drawer', (tester) async {
|
||||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
final scaffoldKey = GlobalKey<ScaffoldState>();
|
||||||
|
|
||||||
await tester.pumpWidget(
|
await tester.pumpWidget(
|
||||||
@ -45,15 +42,13 @@ void main() {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Tap the leading icon to open the left drawer
|
|
||||||
await tester.tap(find.byIcon(Icons.format_list_bulleted_rounded));
|
await tester.tap(find.byIcon(Icons.format_list_bulleted_rounded));
|
||||||
await tester.pumpAndSettle();
|
await tester.pumpAndSettle();
|
||||||
|
|
||||||
// Verify the left drawer content is displayed
|
|
||||||
expect(find.text('Left Drawer Content'), findsOneWidget);
|
expect(find.text('Left Drawer Content'), findsOneWidget);
|
||||||
});
|
});
|
||||||
|
|
||||||
testWidgets('DrawerSplitView opens right drawer', (tester) async {
|
testWidgets('Testing DrawerSplitView opens right drawer', (tester) async {
|
||||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
final scaffoldKey = GlobalKey<ScaffoldState>();
|
||||||
|
|
||||||
await tester.pumpWidget(
|
await tester.pumpWidget(
|
||||||
@ -67,15 +62,13 @@ void main() {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Tap the right drawer icon to open the right drawer
|
|
||||||
await tester.tap(find.byIcon(Icons.arrow_forward));
|
await tester.tap(find.byIcon(Icons.arrow_forward));
|
||||||
await tester.pumpAndSettle();
|
await tester.pumpAndSettle();
|
||||||
|
|
||||||
// Verify the right drawer content is displayed
|
|
||||||
expect(find.text('Right Drawer Content'), findsOneWidget);
|
expect(find.text('Right Drawer Content'), findsOneWidget);
|
||||||
});
|
});
|
||||||
|
|
||||||
testWidgets('DrawerSplitView displays actions', (tester) async {
|
testWidgets('Testing DrawerSplitView displays actions', (tester) async {
|
||||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
final scaffoldKey = GlobalKey<ScaffoldState>();
|
||||||
|
|
||||||
await tester.pumpWidget(
|
await tester.pumpWidget(
|
||||||
@ -91,7 +84,6 @@ void main() {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Verify the action icon is displayed
|
|
||||||
expect(find.byIcon(Icons.search), findsOneWidget);
|
expect(find.byIcon(Icons.search), findsOneWidget);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
25
test/widgets/splitview_history_test.dart
Normal file
25
test/widgets/splitview_history_test.dart
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
import 'package:multi_split_view/multi_split_view.dart';
|
||||||
|
import 'package:apidash/widgets/widgets.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
testWidgets('Testing for History Splitview', (tester) async {
|
||||||
|
await tester.pumpWidget(
|
||||||
|
const MaterialApp(
|
||||||
|
title: 'History Splitview',
|
||||||
|
home: Scaffold(
|
||||||
|
body: HistorySplitView(
|
||||||
|
sidebarWidget: Column(children: [Text("Pane")]),
|
||||||
|
mainWidget: Column(children: [Text("Viewer")]),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.text("Pane"), findsOneWidget);
|
||||||
|
expect(find.text("Viewer"), findsOneWidget);
|
||||||
|
expect(find.byType(MultiSplitViewTheme), findsOneWidget);
|
||||||
|
});
|
||||||
|
//TODO: Divider not visible on flutter run. Investigate.
|
||||||
|
}
|
36
test/widgets/table_request_form_test.dart
Normal file
36
test/widgets/table_request_form_test.dart
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
import 'package:data_table_2/data_table_2.dart';
|
||||||
|
import 'package:apidash/widgets/widgets.dart';
|
||||||
|
import 'package:apidash/models/models.dart';
|
||||||
|
import 'package:apidash/consts.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
testWidgets('Testing RequestFormDataTable', (WidgetTester tester) async {
|
||||||
|
const List<FormDataModel> sampleData = [
|
||||||
|
FormDataModel(name: 'Key1', value: 'Value1', type: FormDataType.file),
|
||||||
|
FormDataModel(name: 'Key2', value: 'Value2', type: FormDataType.text),
|
||||||
|
];
|
||||||
|
|
||||||
|
await tester.pumpWidget(
|
||||||
|
const MaterialApp(
|
||||||
|
home: Scaffold(
|
||||||
|
body: RequestFormDataTable(
|
||||||
|
rows: sampleData,
|
||||||
|
keyName: 'Key',
|
||||||
|
valueName: 'Value',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(find.byType(DataTable2), findsOneWidget);
|
||||||
|
expect(find.byType(ReadOnlyTextField), findsNWidgets(3));
|
||||||
|
expect(find.byType(FormDataFileButton), findsOneWidget);
|
||||||
|
|
||||||
|
expect(find.text('Key1'), findsOneWidget);
|
||||||
|
expect(find.text('Value1'), findsOneWidget);
|
||||||
|
expect(find.text('Key2'), findsOneWidget);
|
||||||
|
expect(find.text('Value2'), findsOneWidget);
|
||||||
|
});
|
||||||
|
}
|
32
test/widgets/table_request_test.dart
Normal file
32
test/widgets/table_request_test.dart
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import 'package:apidash/widgets/widgets.dart';
|
||||||
|
import 'package:data_table_2/data_table_2.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
testWidgets('Testing RequestDataTable', (WidgetTester tester) async {
|
||||||
|
final Map<String, String> sampleData = {
|
||||||
|
'Key1': 'Value1',
|
||||||
|
'Key2': 'Value2',
|
||||||
|
};
|
||||||
|
|
||||||
|
await tester.pumpWidget(
|
||||||
|
MaterialApp(
|
||||||
|
home: Scaffold(
|
||||||
|
body: RequestDataTable(
|
||||||
|
rows: sampleData,
|
||||||
|
keyName: 'Key',
|
||||||
|
valueName: 'Value',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
expect(find.byType(DataTable2), findsOneWidget);
|
||||||
|
expect(find.byType(ReadOnlyTextField), findsNWidgets(4));
|
||||||
|
|
||||||
|
expect(find.text('Key1'), findsOneWidget);
|
||||||
|
expect(find.text('Value1'), findsOneWidget);
|
||||||
|
expect(find.text('Key2'), findsOneWidget);
|
||||||
|
expect(find.text('Value2'), findsOneWidget);
|
||||||
|
});
|
||||||
|
}
|
@ -24,6 +24,7 @@ void main() {
|
|||||||
widget is Text && widget.style!.color == kColorHttpMethodGet);
|
widget is Text && widget.style!.color == kColorHttpMethodGet);
|
||||||
expect(getTextWithColor, findsOneWidget);
|
expect(getTextWithColor, findsOneWidget);
|
||||||
});
|
});
|
||||||
|
|
||||||
testWidgets('Testing when method is DELETE', (tester) async {
|
testWidgets('Testing when method is DELETE', (tester) async {
|
||||||
var methodDel = HTTPVerb.delete;
|
var methodDel = HTTPVerb.delete;
|
||||||
await tester.pumpWidget(
|
await tester.pumpWidget(
|
||||||
@ -44,4 +45,25 @@ void main() {
|
|||||||
(widget) => widget is Text && widget.style!.color == colDelDarkMode);
|
(widget) => widget is Text && widget.style!.color == colDelDarkMode);
|
||||||
expect(delTextWithColor, findsOneWidget);
|
expect(delTextWithColor, findsOneWidget);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testWidgets('Testing StatusCode', (WidgetTester tester) async {
|
||||||
|
const int testStatusCode = 200;
|
||||||
|
const TextStyle testStyle = TextStyle(fontSize: 20);
|
||||||
|
|
||||||
|
await tester.pumpWidget(
|
||||||
|
const MaterialApp(
|
||||||
|
home: Scaffold(
|
||||||
|
body: StatusCode(
|
||||||
|
statusCode: testStatusCode,
|
||||||
|
style: testStyle,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
Finder code = find.text(testStatusCode.toString());
|
||||||
|
expect(code, findsOneWidget);
|
||||||
|
final Text textWidget = tester.widget(code);
|
||||||
|
expect(textWidget.style?.fontSize, testStyle.fontSize);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user