mirror of
https://github.com/chenasraf/pantry-flutter.git
synced 2026-05-17 17:28:03 +00:00
47 lines
1.5 KiB
Dart
47 lines
1.5 KiB
Dart
import 'package:flutter/material.dart';
|
||
import 'package:flutter_test/flutter_test.dart';
|
||
import 'package:pantry/widgets/note_sort_button.dart';
|
||
|
||
import '../helpers/fakes.dart';
|
||
import '../helpers/test_app.dart';
|
||
|
||
void main() {
|
||
testWidgets('renders sort icon button', (tester) async {
|
||
final controller = FakeNotesController();
|
||
await tester.pumpWidget(
|
||
wrapForTest(NoteSortButton(controller: controller)),
|
||
);
|
||
expect(find.byIcon(Icons.sort), findsOneWidget);
|
||
});
|
||
|
||
testWidgets('opens menu with all sort options', (tester) async {
|
||
final controller = FakeNotesController();
|
||
await tester.pumpWidget(
|
||
wrapForTest(NoteSortButton(controller: controller)),
|
||
);
|
||
|
||
await tester.tap(find.byIcon(Icons.sort));
|
||
await tester.pumpAndSettle();
|
||
|
||
expect(find.text('Newest first'), findsOneWidget);
|
||
expect(find.text('Oldest first'), findsOneWidget);
|
||
expect(find.text('Title A–Z'), findsOneWidget);
|
||
expect(find.text('Title Z–A'), findsOneWidget);
|
||
expect(find.text('Custom'), findsOneWidget);
|
||
});
|
||
|
||
testWidgets('selecting option calls setSortBy on controller', (tester) async {
|
||
final controller = FakeNotesController();
|
||
await tester.pumpWidget(
|
||
wrapForTest(NoteSortButton(controller: controller)),
|
||
);
|
||
|
||
await tester.tap(find.byIcon(Icons.sort));
|
||
await tester.pumpAndSettle();
|
||
await tester.tap(find.text('Title Z–A'));
|
||
await tester.pumpAndSettle();
|
||
|
||
expect(controller.lastSortBy, 'title_desc');
|
||
});
|
||
}
|