mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2024-12-25 04:49:36 +00:00
353 lines
12 KiB
Dart
353 lines
12 KiB
Dart
// 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<Manager>(returnNullOnMissingStub: true),
|
|
MockSpec<NotesService>(returnNullOnMissingStub: true),
|
|
MockSpec<LocaleService>(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<NotesService>(
|
|
// create: (context) => mockNotesService,
|
|
// ),
|
|
// ChangeNotifierProvider<Manager>(
|
|
// create: (context) => mockManager,
|
|
// ),
|
|
// ChangeNotifierProvider<LocaleService>(
|
|
// 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<NotesService>(
|
|
// create: (context) => mockNotesService,
|
|
// ),
|
|
// ChangeNotifierProvider<Manager>(
|
|
// create: (context) => mockManager,
|
|
// ),
|
|
// ChangeNotifierProvider<LocaleService>(
|
|
// 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<NotesService>(
|
|
// create: (context) => mockNotesService,
|
|
// ),
|
|
// ChangeNotifierProvider<Manager>(
|
|
// create: (context) => mockManager,
|
|
// ),
|
|
// ChangeNotifierProvider<LocaleService>(
|
|
// 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<NotesService>(
|
|
// create: (context) => mockNotesService,
|
|
// ),
|
|
// ChangeNotifierProvider<Manager>(
|
|
// create: (context) => mockManager,
|
|
// ),
|
|
// ChangeNotifierProvider<LocaleService>(
|
|
// 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);
|
|
// });
|
|
}
|