// import 'package:decimal/decimal.dart'; // import 'package:flutter/material.dart'; // import 'package:flutter_feather_icons/flutter_feather_icons.dart'; // import 'package:flutter_test/flutter_test.dart'; // import 'package:mockingjay/mockingjay.dart' as mockingjay; import 'package:mockito/annotations.dart'; // import 'package:mockito/mockito.dart'; // import 'package:stackwallet/models/models.dart'; import 'package:stackwallet/services/coins/manager.dart'; import 'package:stackwallet/services/locale_service.dart'; import 'package:stackwallet/services/notes_service.dart'; // import 'package:stackwallet/widgets/transaction_card.dart'; // import 'transaction_card_test.mocks.dart'; @GenerateMocks([], customMocks: [ MockSpec(returnNullOnMissingStub: true), MockSpec(returnNullOnMissingStub: true), MockSpec(returnNullOnMissingStub: true), ]) void main() { // testWidgets("Sent confirmed tx displays correctly", (tester) async { // final mockManager = MockManager(); // final mockNotesService = MockNotesService(); // final mockLocaleService = MockLocaleService(); // // final tx = Transaction( // txid: "some txid", // confirmedStatus: true, // timestamp: 1648595998, // txType: "Sent", // amount: 100000000, // aliens: [], // worthNow: "0.01", // worthAtBlockTimestamp: "0.01", // fees: 3794, // inputSize: 1, // outputSize: 1, // inputs: [], // outputs: [], // address: "", // height: 450123, // subType: "mint", // ); // // when(mockManager.coinTicker).thenAnswer((_) => "FIRO"); // when(mockManager.fiatPrice).thenAnswer((_) async => Decimal.ten); // when(mockManager.fiatCurrency).thenAnswer((_) => "USD"); // // when(mockLocaleService.locale).thenAnswer((_) => "en_US"); // // await tester.pumpWidget( // MaterialApp( // home: MultiProvider( // providers: [ // ChangeNotifierProvider( // create: (context) => mockNotesService, // ), // ChangeNotifierProvider( // create: (context) => mockManager, // ), // ChangeNotifierProvider( // create: (context) => mockLocaleService, // ), // ], // child: TransactionCard(transaction: tx), // ), // ), // ); // // final title = find.text("Sent"); // final price1 = find.text("0.00"); // final amount = find.text("1.00000000 FIRO"); // // final icon = find.byIcon(FeatherIcons.arrowUp); // // expect(title, findsOneWidget); // expect(price1, findsOneWidget); // expect(amount, findsOneWidget); // expect(icon, findsOneWidget); // // await tester.pumpAndSettle(Duration(seconds: 2)); // // final price2 = find.text("\$10.00"); // expect(price2, findsOneWidget); // // verify(mockManager.addListener(any)).called(1); // verify(mockLocaleService.addListener(any)).called(1); // verify(mockNotesService.addListener(any)).called(1); // // verify(mockManager.fiatCurrency).called(1); // verify(mockManager.fiatPrice).called(1); // verify(mockManager.coinTicker).called(1); // // verify(mockLocaleService.locale).called(2); // // verifyNoMoreInteractions(mockNotesService); // verifyNoMoreInteractions(mockManager); // verifyNoMoreInteractions(mockLocaleService); // }); // // testWidgets("Received unconfirmed tx displays correctly", (tester) async { // final mockManager = MockManager(); // final mockNotesService = MockNotesService(); // final mockLocaleService = MockLocaleService(); // // final tx = Transaction( // txid: "some txid", // confirmedStatus: false, // timestamp: 1648595998, // txType: "Received", // amount: 100000000, // aliens: [], // worthNow: "0.01", // worthAtBlockTimestamp: "0.01", // fees: 3794, // inputSize: 1, // outputSize: 1, // inputs: [], // outputs: [], // address: "", // height: null, // subType: null, // ); // // when(mockManager.coinTicker).thenAnswer((_) => "FIRO"); // when(mockManager.fiatPrice).thenAnswer((_) async => Decimal.ten); // when(mockManager.fiatCurrency).thenAnswer((_) => "USD"); // // when(mockLocaleService.locale).thenAnswer((_) => "en_US"); // // await tester.pumpWidget( // MaterialApp( // home: MultiProvider( // providers: [ // ChangeNotifierProvider( // create: (context) => mockNotesService, // ), // ChangeNotifierProvider( // create: (context) => mockManager, // ), // ChangeNotifierProvider( // create: (context) => mockLocaleService, // ), // ], // child: TransactionCard(transaction: tx), // ), // ), // ); // // final title = find.text("Receiving"); // final price1 = find.text("0.00"); // final amount = find.text("1.00000000 FIRO"); // // final icon = find.byIcon(FeatherIcons.arrowDown); // // expect(title, findsOneWidget); // expect(price1, findsOneWidget); // expect(amount, findsOneWidget); // expect(icon, findsOneWidget); // // await tester.pumpAndSettle(Duration(seconds: 2)); // // final price2 = find.text("\$10.00"); // expect(price2, findsOneWidget); // // verify(mockManager.addListener(any)).called(1); // verify(mockLocaleService.addListener(any)).called(1); // verify(mockNotesService.addListener(any)).called(1); // // verify(mockManager.fiatCurrency).called(1); // verify(mockManager.fiatPrice).called(1); // verify(mockManager.coinTicker).called(1); // // verify(mockLocaleService.locale).called(2); // // verifyNoMoreInteractions(mockNotesService); // verifyNoMoreInteractions(mockManager); // verifyNoMoreInteractions(mockLocaleService); // }); // // testWidgets("bad tx displays correctly", (tester) async { // final mockManager = MockManager(); // final mockNotesService = MockNotesService(); // final mockLocaleService = MockLocaleService(); // // final tx = Transaction( // txid: "some txid", // confirmedStatus: false, // timestamp: 1648595998, // txType: "ahhhhhh", // amount: 100000000, // aliens: [], // worthNow: "0.01", // worthAtBlockTimestamp: "0.01", // fees: 3794, // inputSize: 1, // outputSize: 1, // inputs: [], // outputs: [], // address: "", // height: null, // subType: null, // ); // // when(mockManager.coinTicker).thenAnswer((_) => "FIRO"); // when(mockManager.fiatPrice).thenAnswer((_) async => Decimal.ten); // when(mockManager.fiatCurrency).thenAnswer((_) => "USD"); // // when(mockLocaleService.locale).thenAnswer((_) => "en_US"); // // await tester.pumpWidget( // MaterialApp( // home: MultiProvider( // providers: [ // ChangeNotifierProvider( // create: (context) => mockNotesService, // ), // ChangeNotifierProvider( // create: (context) => mockManager, // ), // ChangeNotifierProvider( // create: (context) => mockLocaleService, // ), // ], // child: TransactionCard(transaction: tx), // ), // ), // ); // // final title = find.text("Unknown"); // final price1 = find.text("0.00"); // final amount = find.text("1.00000000 FIRO"); // // final icon = find.byIcon(Icons.warning_rounded); // // expect(title, findsOneWidget); // expect(price1, findsOneWidget); // expect(amount, findsOneWidget); // expect(icon, findsOneWidget); // // await tester.pumpAndSettle(Duration(seconds: 2)); // // final price2 = find.text("\$10.00"); // expect(price2, findsOneWidget); // // verify(mockManager.addListener(any)).called(1); // verify(mockLocaleService.addListener(any)).called(1); // verify(mockNotesService.addListener(any)).called(1); // // verify(mockManager.fiatCurrency).called(1); // verify(mockManager.fiatPrice).called(1); // verify(mockManager.coinTicker).called(1); // // verify(mockLocaleService.locale).called(2); // // verifyNoMoreInteractions(mockNotesService); // verifyNoMoreInteractions(mockManager); // verifyNoMoreInteractions(mockLocaleService); // }); // // testWidgets("Tap gesture", (tester) async { // final mockManager = MockManager(); // final mockNotesService = MockNotesService(); // final mockLocaleService = MockLocaleService(); // final navigator = mockingjay.MockNavigator(); // // final tx = Transaction( // txid: "some txid", // confirmedStatus: false, // timestamp: 1648595998, // txType: "Received", // amount: 100000000, // aliens: [], // worthNow: "0.01", // worthAtBlockTimestamp: "0.01", // fees: 3794, // inputSize: 1, // outputSize: 1, // inputs: [], // outputs: [], // address: "", // height: null, // subType: null, // ); // // when(mockNotesService.getNoteFor(txid: "some txid")) // .thenAnswer((_) async => "some note"); // // when(mockManager.coinTicker).thenAnswer((_) => "FIRO"); // when(mockManager.fiatPrice).thenAnswer((_) async => Decimal.ten); // when(mockManager.fiatCurrency).thenAnswer((_) => "USD"); // // when(mockLocaleService.locale).thenAnswer((_) => "en_US"); // // mockingjay // .when(() => navigator.push(mockingjay.any( // that: mockingjay.isRoute( // whereName: equals("/transactiondetailsview"))))) // .thenAnswer((_) async => {}); // // await tester.pumpWidget( // MaterialApp( // home: mockingjay.MockNavigatorProvider( // navigator: navigator, // child: MultiProvider( // providers: [ // ChangeNotifierProvider( // create: (context) => mockNotesService, // ), // ChangeNotifierProvider( // create: (context) => mockManager, // ), // ChangeNotifierProvider( // create: (context) => mockLocaleService, // ), // ], // child: TransactionCard(transaction: tx), // ), // ), // ), // ); // // expect(find.byType(GestureDetector), findsOneWidget); // // await tester.tap(find.byType(GestureDetector)); // await tester.pump(); // // verify(mockManager.addListener(any)).called(1); // verify(mockLocaleService.addListener(any)).called(1); // verify(mockNotesService.addListener(any)).called(1); // // verify(mockNotesService.getNoteFor(txid: "some txid")).called(1); // // verify(mockManager.fiatCurrency).called(1); // verify(mockManager.fiatPrice).called(1); // verify(mockManager.coinTicker).called(1); // // verify(mockLocaleService.locale).called(2); // // verifyNoMoreInteractions(mockNotesService); // verifyNoMoreInteractions(mockManager); // verifyNoMoreInteractions(mockLocaleService); // // mockingjay // .verify(() => navigator.push(mockingjay.any( // that: mockingjay.isRoute( // whereName: equals("/transactiondetailsview"))))) // .called(1); // // mockingjay.verifyNoMoreInteractions(navigator); // }); }