Skip to content

Commit

Permalink
feat: add network error tests
Browse files Browse the repository at this point in the history
  • Loading branch information
SofiaRey committed Jan 6, 2025
1 parent f4a141d commit 6c51b3e
Showing 1 changed file with 68 additions and 0 deletions.
68 changes: 68 additions & 0 deletions flutter_news_example/test/network_error/network_error_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// ignore_for_file: prefer_const_constructors

import 'package:flutter/material.dart';
import 'package:flutter_news_example/network_error/network_error.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:go_router/go_router.dart';
import 'package:mocktail/mocktail.dart';

import '../helpers/helpers.dart';

class MockGoRouter extends Mock implements GoRouter {}

void main() {
const tapMeText = 'Tap Me';
late GoRouter goRouter;

setUpAll(() {
goRouter = MockGoRouter();
when(() => goRouter.goNamed(NetworkErrorPage.routePath)).thenAnswer((_) {});
});

group('NetworkError', () {
testWidgets('renders correctly', (tester) async {
await tester.pumpApp(NetworkError());

expect(find.byType(NetworkError), findsOneWidget);
});

testWidgets('navigates to network error page routePath', (tester) async {
await tester.pumpApp(
InheritedGoRouter(
goRouter: goRouter,
child: Scaffold(
body: Builder(
builder: (context) {
return ElevatedButton(
onPressed: () {
context.goNamed(NetworkErrorPage.routePath);
},
child: const Text(tapMeText),
);
},
),
),
),
);

await tester.tap(find.text(tapMeText));

verify(() => goRouter.goNamed(NetworkErrorPage.routePath)).called(1);
});
});

testWidgets('calls onRetry function when button pressed', (tester) async {
var retryPressed = false;
await tester.pumpApp(
NetworkError(
onRetry: () {
retryPressed = true;
},
),
);

await tester.tap(find.byType(ElevatedButton));

expect(retryPressed, isTrue);
});
}

0 comments on commit 6c51b3e

Please sign in to comment.