mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2025-03-15 16:12:16 +00:00
Add more widget tests
This commit is contained in:
parent
7e5b149079
commit
decbf0989a
3 changed files with 171 additions and 0 deletions
47
test/notifications/notification_card_test.dart
Normal file
47
test/notifications/notification_card_test.dart
Normal file
|
@ -0,0 +1,47 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:stackwallet/models/notification_model.dart';
|
||||
import 'package:stackwallet/notifications/notification_card.dart';
|
||||
import 'package:stackwallet/utilities/assets.dart';
|
||||
import 'package:stackwallet/utilities/enums/coin_enum.dart';
|
||||
import 'package:stackwallet/utilities/theme/light_colors.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
|
||||
void main() {
|
||||
testWidgets("test notification card", (widgetTester) async {
|
||||
final key = UniqueKey();
|
||||
final notificationCard = NotificationCard(
|
||||
key: key,
|
||||
notification: NotificationModel(
|
||||
id: 1,
|
||||
title: "notification title",
|
||||
description: "notification description",
|
||||
iconAssetName: Assets.svg.iconFor(coin: Coin.bitcoin),
|
||||
date: DateTime.parse("1662544771"),
|
||||
walletId: "wallet id",
|
||||
read: true,
|
||||
shouldWatchForUpdates: true,
|
||||
coinName: "Bitcoin"),
|
||||
);
|
||||
|
||||
await widgetTester.pumpWidget(
|
||||
MaterialApp(
|
||||
theme: ThemeData(
|
||||
extensions: [
|
||||
StackColors.fromStackColorTheme(LightColors()),
|
||||
],
|
||||
),
|
||||
home: Material(
|
||||
child: notificationCard,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
expect(find.byWidget(notificationCard), findsOneWidget);
|
||||
expect(find.text("notification title"), findsOneWidget);
|
||||
expect(find.text("notification description"), findsOneWidget);
|
||||
expect(find.byType(SvgPicture), findsOneWidget);
|
||||
});
|
||||
}
|
31
test/widget_tests/icon_widgets/addressbook_icon_test.dart
Normal file
31
test/widget_tests/icon_widgets/addressbook_icon_test.dart
Normal file
|
@ -0,0 +1,31 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:stackwallet/utilities/theme/light_colors.dart';
|
||||
import 'package:stackwallet/utilities/theme/stack_colors.dart';
|
||||
import 'package:stackwallet/widgets/icon_widgets/addressbook_icon.dart';
|
||||
|
||||
void main() {
|
||||
testWidgets("test address book icon widget", (widgetTester) async {
|
||||
final key = UniqueKey();
|
||||
final addressBookIcon = AddressBookIcon(
|
||||
key: key,
|
||||
);
|
||||
|
||||
await widgetTester.pumpWidget(
|
||||
MaterialApp(
|
||||
theme: ThemeData(
|
||||
extensions: [
|
||||
StackColors.fromStackColorTheme(LightColors()),
|
||||
],
|
||||
),
|
||||
home: Material(
|
||||
child: addressBookIcon,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
expect(find.byWidget(addressBookIcon), findsOneWidget);
|
||||
expect(find.byType(SvgPicture), findsOneWidget);
|
||||
});
|
||||
}
|
|
@ -131,6 +131,99 @@ void main() {
|
|||
verifyNoMoreInteractions(mockLocaleService);
|
||||
});
|
||||
|
||||
testWidgets("Anonymized confirmed tx displays correctly", (tester) async {
|
||||
final mockManager = MockManager();
|
||||
final mockLocaleService = MockLocaleService();
|
||||
final wallets = MockWallets();
|
||||
final mockPrefs = MockPrefs();
|
||||
final mockPriceService = MockPriceService();
|
||||
|
||||
final tx = Transaction(
|
||||
txid: "some txid",
|
||||
confirmedStatus: true,
|
||||
timestamp: 1648595998,
|
||||
txType: "Anonymized",
|
||||
amount: 100000000,
|
||||
aliens: [],
|
||||
worthNow: "0.01",
|
||||
worthAtBlockTimestamp: "0.01",
|
||||
fees: 3794,
|
||||
inputSize: 1,
|
||||
outputSize: 1,
|
||||
inputs: [],
|
||||
outputs: [],
|
||||
address: "",
|
||||
height: 450123,
|
||||
subType: "mint",
|
||||
confirmations: 10,
|
||||
isCancelled: false);
|
||||
|
||||
final CoinServiceAPI wallet = MockFiroWallet();
|
||||
|
||||
when(wallet.coin.ticker).thenAnswer((_) => "FIRO");
|
||||
when(mockLocaleService.locale).thenAnswer((_) => "en_US");
|
||||
when(mockPrefs.currency).thenAnswer((_) => "USD");
|
||||
when(mockPrefs.externalCalls).thenAnswer((_) => true);
|
||||
when(mockPriceService.getPrice(Coin.firo))
|
||||
.thenAnswer((realInvocation) => Tuple2(Decimal.ten, 0.00));
|
||||
|
||||
when(wallet.coin).thenAnswer((_) => Coin.firo);
|
||||
|
||||
when(wallets.getManager("wallet-id"))
|
||||
.thenAnswer((realInvocation) => Manager(wallet));
|
||||
//
|
||||
await tester.pumpWidget(
|
||||
ProviderScope(
|
||||
overrides: [
|
||||
walletsChangeNotifierProvider.overrideWithValue(wallets),
|
||||
localeServiceChangeNotifierProvider
|
||||
.overrideWithValue(mockLocaleService),
|
||||
prefsChangeNotifierProvider.overrideWithValue(mockPrefs),
|
||||
priceAnd24hChangeNotifierProvider.overrideWithValue(mockPriceService)
|
||||
],
|
||||
child: MaterialApp(
|
||||
theme: ThemeData(
|
||||
extensions: [
|
||||
StackColors.fromStackColorTheme(
|
||||
LightColors(),
|
||||
),
|
||||
],
|
||||
),
|
||||
home: TransactionCard(transaction: tx, walletId: "wallet-id"),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
//
|
||||
final title = find.text("Anonymized");
|
||||
// final price1 = find.text("0.00 USD");
|
||||
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(mockPrefs.currency).called(1);
|
||||
verify(mockPriceService.getPrice(Coin.firo)).called(1);
|
||||
verify(wallet.coin.ticker).called(1);
|
||||
|
||||
verify(mockLocaleService.locale).called(1);
|
||||
|
||||
verifyNoMoreInteractions(mockManager);
|
||||
verifyNoMoreInteractions(mockLocaleService);
|
||||
});
|
||||
|
||||
testWidgets("Received unconfirmed tx displays correctly", (tester) async {
|
||||
final mockManager = MockManager();
|
||||
final mockLocaleService = MockLocaleService();
|
||||
|
|
Loading…
Reference in a new issue