All checks were successful
Release / meta (push) Successful in 3s
Release / linux-build (push) Successful in 1m1s
Release / web-build (push) Successful in 1m22s
Release / android-build (push) Successful in 6m49s
Release / release-master (push) Successful in 5s
Release / release-dev (push) Successful in 8s
65 lines
1.8 KiB
Dart
65 lines
1.8 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
import 'package:mileograph_flutter/components/pages/trips.dart';
|
|
import 'package:mileograph_flutter/services/distance_unit_service.dart';
|
|
|
|
import '../helpers/fake_services.dart';
|
|
import '../helpers/test_app.dart';
|
|
import '../helpers/test_data.dart';
|
|
|
|
void main() {
|
|
TestWidgetsFlutterBinding.ensureInitialized();
|
|
|
|
setUpAll(() {
|
|
SharedPreferences.setMockInitialValues({});
|
|
});
|
|
|
|
testWidgets('Trips page shows trip details', (tester) async {
|
|
final data = FakeDataService()
|
|
..tripDetailsValue = TestData.tripDetails
|
|
..tripListValue = TestData.tripSummaries;
|
|
final auth = FakeAuthService(api: FakeApiService());
|
|
final distanceUnits = FakeDistanceUnitService(
|
|
unitOverride: DistanceUnit.milesDecimal,
|
|
);
|
|
|
|
await tester.pumpWidget(
|
|
buildTestApp(
|
|
child: const TripsPage(),
|
|
dataService: data,
|
|
authService: auth,
|
|
distanceUnitService: distanceUnits,
|
|
),
|
|
);
|
|
await tester.pumpAndSettle();
|
|
|
|
expect(find.text('Trips'), findsOneWidget);
|
|
expect(find.text('North Run'), findsOneWidget);
|
|
expect(find.textContaining('mi'), findsWidgets);
|
|
});
|
|
|
|
testWidgets('Trips page shows empty state', (tester) async {
|
|
final data = FakeDataService()
|
|
..tripDetailsValue = []
|
|
..tripListValue = []
|
|
..isTripDetailsLoadingValue = false;
|
|
final auth = FakeAuthService(api: FakeApiService());
|
|
|
|
await tester.pumpWidget(
|
|
buildTestApp(
|
|
child: const TripsPage(),
|
|
dataService: data,
|
|
authService: auth,
|
|
),
|
|
);
|
|
await tester.pumpAndSettle();
|
|
|
|
expect(find.text('No trips yet'), findsOneWidget);
|
|
expect(
|
|
find.text('Use the Add entry flow to start grouping legs into trips.'),
|
|
findsOneWidget,
|
|
);
|
|
});
|
|
}
|