stack_wallet/test/widget_tests/emoji_select_sheet_test.dart

79 lines
2.2 KiB
Dart
Raw Normal View History

2022-10-17 10:15:32 +00:00
import 'package:emojis/emoji.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_test/flutter_test.dart';
2022-11-25 23:49:47 +00:00
import 'package:mockingjay/mockingjay.dart' as mockingjay;
2023-05-12 20:02:04 +00:00
import 'package:stackwallet/models/isar/stack_theme.dart';
import 'package:stackwallet/themes/stack_colors.dart';
2022-10-17 10:15:32 +00:00
import 'package:stackwallet/widgets/emoji_select_sheet.dart';
2023-05-12 20:02:04 +00:00
import '../sample_data/theme_json.dart';
2022-10-17 10:15:32 +00:00
void main() {
testWidgets("Widget displays correctly", (tester) async {
const emojiSelectSheet = EmojiSelectSheet();
await tester.pumpWidget(
MaterialApp(
theme: ThemeData(
extensions: [
2023-05-08 17:59:00 +00:00
StackColors.fromStackColorTheme(
StackTheme.fromJson(
2023-05-12 20:02:04 +00:00
json: lightThemeJsonMap,
applicationThemesDirectoryPath: "test",
2023-05-08 17:59:00 +00:00
),
),
2022-10-17 10:15:32 +00:00
],
),
home: const Material(
child: emojiSelectSheet,
),
),
);
expect(find.byWidget(emojiSelectSheet), findsOneWidget);
expect(find.text("Select emoji"), findsOneWidget);
});
testWidgets("Emoji tapped test", (tester) async {
const emojiSelectSheet = EmojiSelectSheet();
final navigator = mockingjay.MockNavigator();
await tester.pumpWidget(
ProviderScope(
overrides: [],
child: MaterialApp(
theme: ThemeData(
extensions: [
2023-05-08 17:59:00 +00:00
StackColors.fromStackColorTheme(
StackTheme.fromJson(
2023-05-12 20:02:04 +00:00
json: lightThemeJsonMap,
applicationThemesDirectoryPath: "test",
2023-05-08 17:59:00 +00:00
),
),
2022-10-17 10:15:32 +00:00
],
),
home: mockingjay.MockNavigatorProvider(
2022-11-25 23:49:47 +00:00
navigator: navigator,
child: Column(
children: const [
Expanded(child: emojiSelectSheet),
],
),
),
2022-10-17 10:15:32 +00:00
),
),
);
2022-11-25 23:49:47 +00:00
final gestureDetector = find.byType(GestureDetector).at(5);
2022-10-17 10:15:32 +00:00
expect(gestureDetector, findsOneWidget);
2022-11-25 23:49:47 +00:00
final emoji = Emoji.byChar("😅");
2022-10-17 10:15:32 +00:00
await tester.tap(gestureDetector);
await tester.pumpAndSettle();
mockingjay.verify(() => navigator.pop(emoji)).called(1);
});
}