import 'package:emojis/emoji.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockingjay/mockingjay.dart' as mockingjay;
import 'package:stackwallet/models/isar/stack_theme.dart';
import 'package:stackwallet/themes/stack_colors.dart';
import 'package:stackwallet/widgets/emoji_select_sheet.dart';

import '../sample_data/theme_json.dart';

void main() {
  testWidgets("Widget displays correctly", (tester) async {
    const emojiSelectSheet = EmojiSelectSheet();

    await tester.pumpWidget(
      MaterialApp(
        theme: ThemeData(
          extensions: [
            StackColors.fromStackColorTheme(
              StackTheme.fromJson(
                json: lightThemeJsonMap,
              ),
            ),
          ],
        ),
        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: [
  //             StackColors.fromStackColorTheme(
  //               StackTheme.fromJson(
  //                 json: lightThemeJsonMap,
  //               ),
  //             ),
  //           ],
  //         ),
  //         home: mockingjay.MockNavigatorProvider(
  //           navigator: navigator,
  //           child: Column(
  //             children: const [
  //               Expanded(child: emojiSelectSheet),
  //             ],
  //           ),
  //         ),
  //       ),
  //     ),
  //   );
  //
  //   final gestureDetector = find.byType(GestureDetector).at(5);
  //   expect(gestureDetector, findsOneWidget);
  //
  //   final emoji = Emoji.byChar("😅");
  //
  //   await tester.tap(gestureDetector);
  //   await tester.pumpAndSettle();
  //   mockingjay.verify(() => navigator.pop(emoji)).called(1);
  // });
}