import 'package:fintracker_api/fintracker_api.dart'; import 'package:fintracker_app/core/cache/cached.dart'; import 'package:fintracker_app/features/rules/providers.dart'; import 'package:fintracker_app/features/rules/rules_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { testWidgets('the add-rule dialog requires a non-empty pattern', (tester) async { await tester.pumpWidget( ProviderScope( overrides: [ rulesListProvider.overrideWith((ref) => const Cached([])), rulesStaleProvider.overrideWith((ref) => const Cached([])), ], child: const MaterialApp(home: RulesPage()), ), ); await tester.pumpAndSettle(); await tester.tap(find.byIcon(Icons.add)); await tester.pumpAndSettle(); expect(find.text('Новое правило'), findsOneWidget); await tester.tap(find.text('Сохранить')); await tester.pumpAndSettle(); expect(find.text('Обязательное поле'), findsOneWidget); }); }