Skip to content

Commit

Permalink
Add logs tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tsutsu3 committed Jan 26, 2025
1 parent 9abab01 commit 1c8da83
Show file tree
Hide file tree
Showing 2 changed files with 122 additions and 0 deletions.
2 changes: 2 additions & 0 deletions test/widgets/helpers.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import 'package:pi_hole_client/providers/domains_list_provider.dart';
import 'package:pi_hole_client/providers/filters_provider.dart';
import 'package:pi_hole_client/providers/servers_provider.dart';
import 'package:pi_hole_client/providers/status_provider.dart';
import 'package:pi_hole_client/screens/logs/logs_filters_modal.dart';
import 'package:provider/provider.dart';

import './helpers.mocks.dart';
Expand Down Expand Up @@ -918,6 +919,7 @@ class TestSetupHelper {
when(mockFiltersProvider.statusAllowedAndRetried).thenReturn(
useApiGatewayVersion == 'v5' ? [2, 3, 12, 13, 14] : [3, 4, 13, 14, 15],
);
when(mockFiltersProvider.requestStatus).thenReturn(RequestStatus.all);
}

void _initStatusProviderMock(String useApiGatewayVersion) {
Expand Down
120 changes: 120 additions & 0 deletions test/widgets/logs/logs_test.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';
import 'package:pi_hole_client/screens/logs/logs.dart';
import 'package:pi_hole_client/screens/logs/logs_filters_modal.dart';

import '../helpers.dart';

Expand Down Expand Up @@ -38,6 +40,7 @@ void main() async {
expect(find.byType(Logs), findsOneWidget);
await tester.pumpAndSettle();
expect(find.text('Query logs'), findsOneWidget);
expect(find.text('white.example.com'), findsWidgets);
expect(
find.text('Choose a query log to see its details.'),
findsNothing,
Expand Down Expand Up @@ -85,6 +88,123 @@ void main() async {
expect(find.byType(Logs), findsOneWidget);
},
);

testWidgets(
'should search logs',
(WidgetTester tester) async {
tester.view.physicalSize = const Size(1080, 2400);
tester.view.devicePixelRatio = 2.0;

addTearDown(() {
tester.view.resetPhysicalSize();
tester.view.resetDevicePixelRatio();
});

await tester.pumpWidget(
testSetup.buildTestWidget(
const Logs(),
),
);

expect(find.byType(Logs), findsOneWidget);
expect(find.text('Query logs'), findsOneWidget);
await tester.pumpAndSettle();
expect(find.text('white.example.com'), findsWidgets);

expect(find.byIcon(Icons.search_rounded), findsOneWidget);
await tester.tap(find.byIcon(Icons.search_rounded));
await tester.pumpAndSettle();
expect(find.text('Search by URL...'), findsOneWidget);
await tester.enterText(find.byType(TextField), 'not.com');
await tester.pumpAndSettle();

expect(find.text('white.example.com'), findsNothing);
},
);

// testWidgets(
// 'should filter logs',
// (WidgetTester tester) async {
// tester.view.physicalSize = const Size(1080, 2400);
// tester.view.devicePixelRatio = 2.0;

// addTearDown(() {
// tester.view.resetPhysicalSize();
// tester.view.resetDevicePixelRatio();
// });

// await tester.pumpWidget(
// testSetup.buildTestWidget(
// const Logs(),
// ),
// );

// // show logs screen
// expect(find.byType(Logs), findsOneWidget);
// expect(find.text('Query logs'), findsOneWidget);
// await tester.pumpAndSettle();
// expect(find.text('white.example.com'), findsWidgets);

// // tap filter button
// expect(find.byIcon(Icons.filter_list_rounded), findsOneWidget);
// await tester.tap(find.byIcon(Icons.filter_list_rounded));
// await tester.pumpAndSettle();

// // show filter modal
// expect(find.byType(LogsFiltersModal), findsOneWidget);
// expect(find.text('Filters'), findsOneWidget);
// expect(find.text('Blocked'), findsOneWidget);
// expect(find.text('Apply'), findsOneWidget);

// // tap blocked filter
// await tester.tap(find.text('Blocked'));
// await tester.pumpAndSettle();

// // apply filter and close modal
// await tester.tap(find.text('Apply'));
// await tester.pumpAndSettle();
// // when(testSetup.mockFiltersProvider.requestStatus)
// // .thenReturn(RequestStatus.blocked);

// // expect(find.text('status selected'), findsOneWidget);
// // expect(find.text('white.example.com'), findsNothing);
// },
// );

// testWidgets(
// 'should sort logs',
// (WidgetTester tester) async {
// tester.view.physicalSize = const Size(1080, 2400);
// tester.view.devicePixelRatio = 2.0;

// addTearDown(() {
// tester.view.resetPhysicalSize();
// tester.view.resetDevicePixelRatio();
// });

// await tester.pumpWidget(
// testSetup.buildTestWidget(
// const Logs(),
// ),
// );

// expect(find.byType(Logs), findsOneWidget);
// expect(find.text('Query logs'), findsOneWidget);
// await tester.pumpAndSettle();
// expect(find.text('white.example.com'), findsWidgets);

// expect(find.byIcon(Icons.sort_rounded), findsOneWidget);
// await tester.tap(find.byIcon(Icons.sort_rounded));
// await tester.pump();
// await tester.pumpAndSettle();
// expect(find.text('From Latest to oldest'), findsOneWidget);
// expect(find.text('From oldest to latest'), findsOneWidget);
// await tester.tap(find.text('From oldest to latest'));
// await tester.pumpAndSettle();

// expect(find.byType(Logs), findsOneWidget);
// },
// );
},
);
}

0 comments on commit 1c8da83

Please sign in to comment.