Skip to content

Commit

Permalink
Add shared widgets tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bibash28 committed May 6, 2024
1 parent 3ac1f8c commit effc3a4
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 35 deletions.
File renamed without changes.
17 changes: 9 additions & 8 deletions test/app/shared/widget/back_leading_button_test.dart
Original file line number Diff line number Diff line change
@@ -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);
});
});
}
8 changes: 5 additions & 3 deletions test/app/shared/widget/base/markdown_page_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ void main() {
return MaterialApp(
home: MarkdownPage(
title: 'title',
file: 'assets/notices.md',
file: 'assets/notices/notices_en.md',
key: GlobalKey(),
),
);
Expand Down Expand Up @@ -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<MarkdownPage>(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<GlobalKey>());
});

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);
Expand Down Expand Up @@ -94,7 +96,7 @@ void main() {
final widget = MaterialApp(
home: MarkdownPage(
title: 'title',
file: 'assets1/notices.md',
file: 'assets/notices/notices_en.md',
),
);

Expand Down
20 changes: 11 additions & 9 deletions test/app/shared/widget/base/page_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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);
});

Expand Down
15 changes: 3 additions & 12 deletions test/app/shared/widget/display_terms_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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<List<String>>());
});
});
}
6 changes: 3 additions & 3 deletions test/app/shared/widget/image_from_network_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ void main() {
final imageFromNetwork = tester
.widget<CachedImageFromNetwork>(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<Image>(find.byType(Image));
Expand All @@ -49,7 +49,7 @@ void main() {
Object(),
StackTrace.fromString('stackTraceString'),
);
expect(result, isA<SizedBox>());
expect(result, isA<ColoredBox>());
});
});
}

0 comments on commit effc3a4

Please sign in to comment.