From 1c8da837ced145c2fce58099015a0d1e2f10d4bf Mon Sep 17 00:00:00 2001 From: tsutsu3 Date: Sun, 26 Jan 2025 18:55:48 +0900 Subject: [PATCH] Add logs tests --- test/widgets/helpers.dart | 2 + test/widgets/logs/logs_test.dart | 120 +++++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) diff --git a/test/widgets/helpers.dart b/test/widgets/helpers.dart index 51cfe6e6..f3d463ff 100644 --- a/test/widgets/helpers.dart +++ b/test/widgets/helpers.dart @@ -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'; @@ -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) { diff --git a/test/widgets/logs/logs_test.dart b/test/widgets/logs/logs_test.dart index bcc4bd99..29d64c0a 100644 --- a/test/widgets/logs/logs_test.dart +++ b/test/widgets/logs/logs_test.dart @@ -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'; @@ -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, @@ -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); + // }, + // ); }, ); }