WIP: Desktop widget tests and update other tests

This commit is contained in:
Likho 2022-10-19 15:18:05 +02:00
parent 91606e03b6
commit 1c2cd82292
9 changed files with 198 additions and 15 deletions

View file

@ -1,3 +1,4 @@
import 'package:event_bus/event_bus.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:stackwallet/utilities/theme/light_colors.dart';
@ -6,8 +7,7 @@ import 'package:stackwallet/widgets/custom_loading_overlay.dart';
void main() {
testWidgets("Test wiget displays correct text", (widgetTester) async {
const customLoadingOverlay =
CustomLoadingOverlay(message: "Updating exchange rate", eventBus: null);
final eventBus = EventBus();
await widgetTester.pumpWidget(
MaterialApp(
theme: ThemeData(
@ -15,8 +15,9 @@ void main() {
StackColors.fromStackColorTheme(LightColors()),
],
),
home: const Material(
child: customLoadingOverlay,
home: Material(
child: CustomLoadingOverlay(
message: "Updating exchange rate", eventBus: eventBus),
),
),
);

View file

@ -0,0 +1,33 @@
import 'package:flutter/material.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/utilities/util.dart';
import 'package:stackwallet/widgets/desktop/custom_text_button.dart';
void main() {
testWidgets("Test text button ", (widgetTester) async {
final key = UniqueKey();
await widgetTester.pumpWidget(
MaterialApp(
theme: ThemeData(
extensions: [
StackColors.fromStackColorTheme(LightColors()),
],
),
home: Material(
child: CustomTextButtonBase(
key: key,
width: 200,
height: 300,
textButton:
const TextButton(onPressed: null, child: Text("Some Text")),
),
),
),
);
expect(find.byType(CustomTextButtonBase), findsOneWidget);
});
}

View file

@ -0,0 +1,34 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:stackwallet/pages_desktop_specific/home/my_stack_view/exit_to_my_stack_button.dart';
import 'package:stackwallet/utilities/theme/light_colors.dart';
import 'package:stackwallet/utilities/theme/stack_colors.dart';
import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart';
import 'package:stackwallet/widgets/desktop/desktop_app_bar.dart';
void main() {
testWidgets("Test DesktopAppBar widget", (widgetTester) async {
final key = UniqueKey();
await widgetTester.pumpWidget(
MaterialApp(
theme: ThemeData(
extensions: [
StackColors.fromStackColorTheme(LightColors()),
],
),
home: Material(
child: DesktopAppBar(
key: key,
isCompactHeight: false,
leading: const AppBarBackButton(),
trailing: const ExitToMyStackButton(),
center: const Text("Some Text"),
),
),
),
);
expect(find.byType(DesktopAppBar), findsOneWidget);
});
}

View file

@ -0,0 +1,40 @@
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/utilities/theme/light_colors.dart';
import 'package:stackwallet/utilities/theme/stack_colors.dart';
import 'package:stackwallet/widgets/custom_buttons/app_bar_icon_button.dart';
import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart';
void main() {
testWidgets("test DesktopDialog button pressed", (widgetTester) async {
final key = UniqueKey();
final navigator = mockingjay.MockNavigator();
await widgetTester.pumpWidget(
ProviderScope(
overrides: [],
child: MaterialApp(
theme: ThemeData(
extensions: [
StackColors.fromStackColorTheme(LightColors()),
],
),
home: mockingjay.MockNavigatorProvider(
navigator: navigator,
child: DesktopDialogCloseButton(
key: key,
onPressedOverride: null,
)),
),
),
);
await widgetTester.tap(find.byType(AppBarIconButton));
await widgetTester.pumpAndSettle();
mockingjay.verify(() => navigator.pop()).called(1);
});
}

View file

@ -0,0 +1,30 @@
import 'package:flutter/material.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/desktop/desktop_dialog.dart';
import 'package:stackwallet/widgets/desktop/desktop_dialog_close_button.dart';
void main() {
testWidgets("test DesktopDialog builds", (widgetTester) async {
final key = UniqueKey();
await widgetTester.pumpWidget(
MaterialApp(
theme: ThemeData(
extensions: [
StackColors.fromStackColorTheme(LightColors()),
],
),
home: Material(
child: DesktopDialog(
key: key,
child: const DesktopDialogCloseButton(),
),
),
),
);
expect(find.byType(DesktopDialog), findsOneWidget);
});
}

View file

@ -18,6 +18,7 @@ import 'package:stackwallet/widgets/managed_favorite.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';
import 'package:stackwallet/utilities/util.dart';
import 'managed_favorite_test.mocks.dart';

View file

@ -82,7 +82,7 @@ void main() {
(realInvocation) => NodeModel(
host: "127.0.0.1",
port: 2000,
name: "Stack Default",
name: "Some other node name",
id: "node id",
useSSL: true,
enabled: true,
@ -94,7 +94,7 @@ void main() {
NodeModel(
host: "127.0.0.1",
port: 2000,
name: "Stack Default",
name: "Some other node name",
id: "node id",
useSSL: true,
enabled: true,
@ -122,7 +122,7 @@ void main() {
);
await tester.pumpAndSettle();
expect(find.text("Stack Default"), findsOneWidget);
expect(find.text("Some other node name"), findsOneWidget);
expect(find.text("Connected"), findsOneWidget);
expect(find.byType(Text), findsNWidgets(2));
expect(find.byType(SvgPicture), findsWidgets);

View file

@ -29,7 +29,7 @@ void main() {
(realInvocation) => NodeModel(
host: "127.0.0.1",
port: 2000,
name: "Stack Default",
name: "Some other name",
id: "node id",
useSSL: true,
enabled: true,
@ -41,7 +41,7 @@ void main() {
(realInvocation) => NodeModel(
host: "127.0.0.1",
port: 2000,
name: "Stack Default",
name: "Some other name",
id: "node id",
useSSL: true,
enabled: true,
@ -72,7 +72,7 @@ void main() {
await tester.pumpAndSettle();
expect(find.text("Node options"), findsOneWidget);
expect(find.text("Stack Default"), findsOneWidget);
expect(find.text("Some other name"), findsOneWidget);
expect(find.text("Connected"), findsOneWidget);
expect(find.byType(SvgPicture), findsNWidgets(2));
expect(find.text("Details"), findsOneWidget);
@ -204,7 +204,6 @@ void main() {
await tester.pumpAndSettle();
expect(find.text("Node options"), findsOneWidget);
// expect(find.text("Stack Default"), findsOneWidget);
expect(find.text("Disconnected"), findsOneWidget);
await tester.tap(find.text("Connect"));

View file

@ -1,10 +1,55 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:mockito/annotations.dart';
import 'package:mockito/mockito.dart';
import 'package:stackwallet/models/exchange/response_objects/trade.dart';
import 'package:stackwallet/utilities/theme/light_colors.dart';
import 'package:stackwallet/utilities/theme/stack_colors.dart';
import 'package:stackwallet/widgets/trade_card.dart';
void main() {}
void main() {
testWidgets("Test Trade card builds", (widgetTester) async {
final trade = Trade(
uuid: "uuid",
tradeId: "trade id",
rateType: "Estimate rate",
direction: "",
timestamp: DateTime.parse("1662544771"),
updatedAt: DateTime.parse("1662544771"),
payInCurrency: "BTC",
payInAmount: "10",
payInAddress: "btc address",
payInNetwork: "",
payInExtraId: "",
payInTxid: "",
payOutCurrency: "xmr",
payOutAmount: "10",
payOutAddress: "xmr address",
payOutNetwork: "",
payOutExtraId: "",
payOutTxid: "",
refundAddress: "refund address",
refundExtraId: "",
status: "Failed",
exchangeName: "Some Exchange");
await widgetTester.pumpWidget(
ProviderScope(
overrides: [],
child: MaterialApp(
theme: ThemeData(
extensions: [
StackColors.fromStackColorTheme(
LightColors(),
),
],
),
home: TradeCard(trade: trade, onTap: () {}),
),
),
);
expect(find.byType(TradeCard), findsOneWidget);
expect(find.text("BTC → XMR"), findsOneWidget);
expect(find.text("Some Exchange"), findsOneWidget);
});
}