From effc3a482b9ed3fa75ef0bedb361b9f00282f58d Mon Sep 17 00:00:00 2001 From: Bibash Shrestha Date: Mon, 6 May 2024 15:09:59 +0545 Subject: [PATCH] Add shared widgets tests --- ...unction.dart => helper_function_test.dart} | 0 .../widget/back_leading_button_test.dart | 17 ++++++++-------- .../widget/base/markdown_page_test.dart | 8 +++++--- test/app/shared/widget/base/page_test.dart | 20 ++++++++++--------- .../app/shared/widget/display_terms_test.dart | 15 +++----------- .../widget/image_from_network_test.dart | 6 +++--- 6 files changed, 31 insertions(+), 35 deletions(-) rename test/app/shared/{helper_function.dart => helper_function_test.dart} (100%) diff --git a/test/app/shared/helper_function.dart b/test/app/shared/helper_function_test.dart similarity index 100% rename from test/app/shared/helper_function.dart rename to test/app/shared/helper_function_test.dart diff --git a/test/app/shared/widget/back_leading_button_test.dart b/test/app/shared/widget/back_leading_button_test.dart index 9d4440f4b..d007827aa 100644 --- a/test/app/shared/widget/back_leading_button_test.dart +++ b/test/app/shared/widget/back_leading_button_test.dart @@ -1,24 +1,25 @@ import 'package:altme/app/app.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:mockingjay/mockingjay.dart'; import '../../../helpers/helpers.dart'; void main() { group('BackLeadingButton', () { testWidgets('pops when IconButton is tapped', (tester) async { - final MockNavigator navigator = MockNavigator(); + bool popTriggered = false; + await tester.pumpApp( - MockNavigatorProvider( - navigator: navigator, - child: const Material( - child: BackLeadingButton(), - ), + BackLeadingButton( + onPressed: () { + popTriggered = true; + }, ), ); await tester.tap(find.byType(IconButton)); - verify(navigator.pop).called(1); + await tester.pump(); + + expect(popTriggered, isTrue); }); }); } diff --git a/test/app/shared/widget/base/markdown_page_test.dart b/test/app/shared/widget/base/markdown_page_test.dart index 067f70fa1..ffa0eb1b7 100644 --- a/test/app/shared/widget/base/markdown_page_test.dart +++ b/test/app/shared/widget/base/markdown_page_test.dart @@ -13,7 +13,7 @@ void main() { return MaterialApp( home: MarkdownPage( title: 'title', - file: 'assets/notices.md', + file: 'assets/notices/notices_en.md', key: GlobalKey(), ), ); @@ -45,16 +45,18 @@ void main() { testWidgets('verify property set correctly', (WidgetTester tester) async { await tester.pumpWidget(widget); + await tester.pumpAndSettle(); expect(find.byType(MarkdownPage), findsOneWidget); final markdownWidget = tester.widget(find.byType(MarkdownPage)); - expect(markdownWidget.file, 'assets/notices.md'); + expect(markdownWidget.file, 'assets/notices/notices_en.md'); expect(markdownWidget.title, 'title'); expect(markdownWidget.key, isA()); }); testWidgets('sub widget founded', (WidgetTester tester) async { await tester.pumpWidget(widget); + await tester.pumpAndSettle(); expect(find.byType(MarkdownPage), findsOneWidget); expect(find.byType(BasePage), findsOneWidget); expect(find.byType(BackLeadingButton), findsOneWidget); @@ -94,7 +96,7 @@ void main() { final widget = MaterialApp( home: MarkdownPage( title: 'title', - file: 'assets1/notices.md', + file: 'assets/notices/notices_en.md', ), ); diff --git a/test/app/shared/widget/base/page_test.dart b/test/app/shared/widget/base/page_test.dart index 45491dc0c..b71d975f4 100644 --- a/test/app/shared/widget/base/page_test.dart +++ b/test/app/shared/widget/base/page_test.dart @@ -7,15 +7,17 @@ import '../../../../helpers/helpers.dart'; void main() { group('BasePage', () { group('CustomAppBar', () { - testWidgets('does not renders CustomAppBar when title is null', - (tester) async { - await tester.pumpApp(BasePage(body: Container(), title: '')); - expect(find.byType(CustomAppBar), findsNothing); - }); - - testWidgets('does not renders CustomAppBar when title is empty', - (tester) async { - await tester.pumpApp(BasePage(body: Container(), title: '')); + testWidgets( + 'does not renders CustomAppBar when title, titleTrailing and' + ' titleLeading are null', (tester) async { + await tester.pumpApp( + BasePage( + body: Container(), + title: null, + titleTrailing: null, + titleLeading: null, + ), + ); expect(find.byType(CustomAppBar), findsNothing); }); diff --git a/test/app/shared/widget/display_terms_test.dart b/test/app/shared/widget/display_terms_test.dart index 599668ba8..11e263fb2 100644 --- a/test/app/shared/widget/display_terms_test.dart +++ b/test/app/shared/widget/display_terms_test.dart @@ -16,21 +16,12 @@ void main() { expect(appState.log, isNotNull); }); - /// we disabled display of privacy asset in phone language for now - testWidgets('path of privacy policy matches with device language', + testWidgets('returns privacy policies and terms for empty string', (tester) async { await tester.pumpApp(const DisplayTermsofUse()); final dynamic appState = tester.state(find.byType(DisplayTermsofUse)); - appState.setPath('it'); - expect(appState.path, 'assets/privacy/privacy_en.md'); - }); - - testWidgets('returns english privacy policy for empty string', - (tester) async { - await tester.pumpApp(const DisplayTermsofUse()); - final dynamic appState = tester.state(find.byType(DisplayTermsofUse)); - appState.setPath(''); - expect(appState.path, 'assets/privacy/privacy_en.md'); + final list = await appState.getBodyData(''); + expect(list, isA>()); }); }); } diff --git a/test/app/shared/widget/image_from_network_test.dart b/test/app/shared/widget/image_from_network_test.dart index 738b1a902..174719839 100644 --- a/test/app/shared/widget/image_from_network_test.dart +++ b/test/app/shared/widget/image_from_network_test.dart @@ -34,12 +34,12 @@ void main() { final imageFromNetwork = tester .widget(find.byType(CachedImageFromNetwork)); expect(imageFromNetwork.url, networkImageUrl); - expect(imageFromNetwork.fit, null); + expect(imageFromNetwork.fit, BoxFit.cover); expect(imageFromNetwork.key, widgetKey); }); }); - testWidgets('get SizedBox on errorBuilder', (tester) async { + testWidgets('get ColoredBox on errorBuilder', (tester) async { await mockNetworkImagesFor(() async { await tester.pumpWidget(makeTestableWidget()); final image = tester.widget(find.byType(Image)); @@ -49,7 +49,7 @@ void main() { Object(), StackTrace.fromString('stackTraceString'), ); - expect(result, isA()); + expect(result, isA()); }); }); }