2022-10-20 14:38:42 +00:00
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
import 'package:mockito/annotations.dart';
|
|
|
|
import 'package:mockito/mockito.dart';
|
2023-05-12 20:02:04 +00:00
|
|
|
import 'package:stackwallet/models/isar/stack_theme.dart';
|
2022-10-20 14:38:42 +00:00
|
|
|
import 'package:stackwallet/models/send_view_auto_fill_data.dart';
|
|
|
|
import 'package:stackwallet/pages/send_view/send_view.dart';
|
|
|
|
import 'package:stackwallet/providers/providers.dart';
|
|
|
|
import 'package:stackwallet/services/coins/bitcoin/bitcoin_wallet.dart';
|
|
|
|
import 'package:stackwallet/services/coins/coin_service.dart';
|
|
|
|
import 'package:stackwallet/services/coins/manager.dart';
|
|
|
|
import 'package:stackwallet/services/locale_service.dart';
|
|
|
|
import 'package:stackwallet/services/node_service.dart';
|
|
|
|
import 'package:stackwallet/services/wallets.dart';
|
|
|
|
import 'package:stackwallet/services/wallets_service.dart';
|
2023-05-09 21:57:40 +00:00
|
|
|
import 'package:stackwallet/themes/stack_colors.dart';
|
2023-05-12 20:02:04 +00:00
|
|
|
import 'package:stackwallet/themes/theme_service.dart';
|
2022-10-20 14:38:42 +00:00
|
|
|
import 'package:stackwallet/utilities/enums/coin_enum.dart';
|
|
|
|
import 'package:stackwallet/utilities/prefs.dart';
|
2023-01-20 16:22:18 +00:00
|
|
|
|
2023-05-12 20:02:04 +00:00
|
|
|
import '../../sample_data/theme_json.dart';
|
2022-10-20 14:38:42 +00:00
|
|
|
import 'send_view_test.mocks.dart';
|
|
|
|
|
|
|
|
@GenerateMocks([
|
|
|
|
Wallets,
|
|
|
|
WalletsService,
|
|
|
|
NodeService,
|
|
|
|
BitcoinWallet,
|
|
|
|
LocaleService,
|
2023-05-12 20:02:04 +00:00
|
|
|
ThemeService,
|
2022-10-20 14:38:42 +00:00
|
|
|
Prefs,
|
|
|
|
], customMocks: [
|
|
|
|
MockSpec<Manager>(returnNullOnMissingStub: true),
|
|
|
|
MockSpec<CoinServiceAPI>(returnNullOnMissingStub: true),
|
|
|
|
])
|
|
|
|
void main() {
|
2023-06-05 22:35:00 +00:00
|
|
|
// testWidgets("Send to valid address", (widgetTester) async {
|
|
|
|
// final mockWallets = MockWallets();
|
|
|
|
// final mockWalletsService = MockWalletsService();
|
|
|
|
// final mockNodeService = MockNodeService();
|
|
|
|
// final CoinServiceAPI wallet = MockBitcoinWallet();
|
|
|
|
// final mockLocaleService = MockLocaleService();
|
|
|
|
// final mockThemeService = MockThemeService();
|
|
|
|
// final mockPrefs = MockPrefs();
|
|
|
|
//
|
|
|
|
// when(wallet.coin).thenAnswer((_) => Coin.bitcoin);
|
|
|
|
// when(wallet.walletName).thenAnswer((_) => "some wallet");
|
|
|
|
// when(wallet.walletId).thenAnswer((_) => "wallet id");
|
|
|
|
//
|
|
|
|
// final manager = Manager(wallet);
|
|
|
|
// when(mockWallets.getManagerProvider("wallet id")).thenAnswer(
|
|
|
|
// (realInvocation) => ChangeNotifierProvider((ref) => manager));
|
|
|
|
// when(mockWallets.getManager("wallet id"))
|
|
|
|
// .thenAnswer((realInvocation) => manager);
|
|
|
|
//
|
|
|
|
// when(mockLocaleService.locale).thenAnswer((_) => "en_US");
|
|
|
|
// when(mockThemeService.getTheme(themeId: "light")).thenAnswer(
|
|
|
|
// (_) => StackTheme.fromJson(
|
|
|
|
// json: lightThemeJsonMap,
|
|
|
|
// applicationThemesDirectoryPath: "test",
|
|
|
|
// ),
|
|
|
|
// );
|
|
|
|
// when(mockPrefs.currency).thenAnswer((_) => "USD");
|
|
|
|
// when(mockPrefs.enableCoinControl).thenAnswer((_) => false);
|
|
|
|
// when(wallet.validateAddress("send to address"))
|
|
|
|
// .thenAnswer((realInvocation) => true);
|
|
|
|
//
|
|
|
|
// await widgetTester.pumpWidget(
|
|
|
|
// ProviderScope(
|
|
|
|
// overrides: [
|
|
|
|
// walletsChangeNotifierProvider.overrideWithValue(mockWallets),
|
|
|
|
// walletsServiceChangeNotifierProvider
|
|
|
|
// .overrideWithValue(mockWalletsService),
|
|
|
|
// nodeServiceChangeNotifierProvider.overrideWithValue(mockNodeService),
|
|
|
|
// localeServiceChangeNotifierProvider
|
|
|
|
// .overrideWithValue(mockLocaleService),
|
|
|
|
// prefsChangeNotifierProvider.overrideWithValue(mockPrefs),
|
|
|
|
// pThemeService.overrideWithValue(mockThemeService),
|
|
|
|
// // previewTxButtonStateProvider
|
|
|
|
// ],
|
|
|
|
// child: MaterialApp(
|
|
|
|
// theme: ThemeData(
|
|
|
|
// extensions: [
|
|
|
|
// StackColors.fromStackColorTheme(
|
|
|
|
// StackTheme.fromJson(
|
|
|
|
// json: lightThemeJsonMap,
|
|
|
|
// applicationThemesDirectoryPath: "test",
|
|
|
|
// ),
|
|
|
|
// ),
|
|
|
|
// ],
|
|
|
|
// ),
|
|
|
|
// home: SendView(
|
|
|
|
// walletId: "wallet id",
|
|
|
|
// coin: Coin.bitcoin,
|
|
|
|
// autoFillData: SendViewAutoFillData(
|
|
|
|
// address: "send to address", contactLabel: "contact label"),
|
|
|
|
// ),
|
|
|
|
// ),
|
|
|
|
// ),
|
|
|
|
// );
|
|
|
|
//
|
|
|
|
// await widgetTester.pumpAndSettle();
|
|
|
|
//
|
|
|
|
// expect(find.text("Send to"), findsOneWidget);
|
|
|
|
// expect(find.text("Amount"), findsOneWidget);
|
|
|
|
// expect(find.text("Note (optional)"), findsOneWidget);
|
|
|
|
// expect(find.text("Transaction fee (estimated)"), findsOneWidget);
|
|
|
|
// verify(manager.validateAddress("send to address")).called(1);
|
|
|
|
// });
|
|
|
|
|
|
|
|
// testWidgets("Send to invalid address", (widgetTester) async {
|
|
|
|
// final mockWallets = MockWallets();
|
|
|
|
// final mockWalletsService = MockWalletsService();
|
|
|
|
// final mockNodeService = MockNodeService();
|
|
|
|
// final CoinServiceAPI wallet = MockBitcoinWallet();
|
|
|
|
// final mockLocaleService = MockLocaleService();
|
|
|
|
// final mockPrefs = MockPrefs();
|
|
|
|
// final mockThemeService = MockThemeService();
|
|
|
|
//
|
|
|
|
// when(wallet.coin).thenAnswer((_) => Coin.bitcoin);
|
|
|
|
// when(wallet.walletName).thenAnswer((_) => "some wallet");
|
|
|
|
// when(wallet.walletId).thenAnswer((_) => "wallet id");
|
|
|
|
//
|
|
|
|
// final manager = Manager(wallet);
|
|
|
|
// when(mockWallets.getManagerProvider("wallet id")).thenAnswer(
|
|
|
|
// (realInvocation) => ChangeNotifierProvider((ref) => manager));
|
|
|
|
// when(mockWallets.getManager("wallet id"))
|
|
|
|
// .thenAnswer((realInvocation) => manager);
|
|
|
|
//
|
|
|
|
// when(mockLocaleService.locale).thenAnswer((_) => "en_US");
|
|
|
|
// when(mockPrefs.currency).thenAnswer((_) => "USD");
|
|
|
|
// when(mockPrefs.enableCoinControl).thenAnswer((_) => false);
|
|
|
|
// when(wallet.validateAddress("send to address"))
|
|
|
|
// .thenAnswer((realInvocation) => false);
|
|
|
|
// when(mockThemeService.getTheme(themeId: "light")).thenAnswer(
|
|
|
|
// (_) => StackTheme.fromJson(
|
|
|
|
// json: lightThemeJsonMap,
|
|
|
|
// applicationThemesDirectoryPath: "test",
|
|
|
|
// ),
|
|
|
|
// );
|
|
|
|
//
|
|
|
|
// // when(manager.isOwnAddress("send to address"))
|
|
|
|
// // .thenAnswer((realInvocation) => Future(() => true));
|
|
|
|
//
|
|
|
|
// await widgetTester.pumpWidget(
|
|
|
|
// ProviderScope(
|
|
|
|
// overrides: [
|
|
|
|
// walletsChangeNotifierProvider.overrideWithValue(mockWallets),
|
|
|
|
// walletsServiceChangeNotifierProvider
|
|
|
|
// .overrideWithValue(mockWalletsService),
|
|
|
|
// nodeServiceChangeNotifierProvider.overrideWithValue(mockNodeService),
|
|
|
|
// localeServiceChangeNotifierProvider
|
|
|
|
// .overrideWithValue(mockLocaleService),
|
|
|
|
// prefsChangeNotifierProvider.overrideWithValue(mockPrefs),
|
|
|
|
// pThemeService.overrideWithValue(mockThemeService)
|
|
|
|
// // previewTxButtonStateProvider
|
|
|
|
// ],
|
|
|
|
// child: MaterialApp(
|
|
|
|
// theme: ThemeData(
|
|
|
|
// extensions: [
|
|
|
|
// StackColors.fromStackColorTheme(
|
|
|
|
// StackTheme.fromJson(
|
|
|
|
// json: lightThemeJsonMap,
|
|
|
|
// applicationThemesDirectoryPath: "test",
|
|
|
|
// ),
|
|
|
|
// ),
|
|
|
|
// ],
|
|
|
|
// ),
|
|
|
|
// home: SendView(
|
|
|
|
// walletId: "wallet id",
|
|
|
|
// coin: Coin.bitcoin,
|
|
|
|
// autoFillData: SendViewAutoFillData(
|
|
|
|
// address: "send to address", contactLabel: "contact label"),
|
|
|
|
// ),
|
|
|
|
// ),
|
|
|
|
// ),
|
|
|
|
// );
|
|
|
|
//
|
|
|
|
// await widgetTester.pumpAndSettle();
|
|
|
|
//
|
|
|
|
// expect(find.text("Send to"), findsOneWidget);
|
|
|
|
// expect(find.text("Amount"), findsOneWidget);
|
|
|
|
// expect(find.text("Note (optional)"), findsOneWidget);
|
|
|
|
// expect(find.text("Transaction fee (estimated)"), findsOneWidget);
|
|
|
|
// expect(find.text("Invalid address"), findsOneWidget);
|
|
|
|
// verify(manager.validateAddress("send to address")).called(1);
|
|
|
|
// });
|
2022-10-20 14:38:42 +00:00
|
|
|
}
|