main
 1import 'package:blood_pressure_app/data_util/entry_context.dart';
 2import 'package:blood_pressure_app/model/storage/settings_store.dart';
 3import 'package:flutter/material.dart';
 4import 'package:flutter_bloc/flutter_bloc.dart';
 5import 'package:flutter_test/flutter_test.dart';
 6import 'package:health_data_store/health_data_store.dart';
 7import 'package:provider/provider.dart';
 8
 9import '../features/measurement_list/measurement_list_entry_test.dart';
10import '../model/export_import/record_formatter_test.dart';
11import '../util.dart';
12
13void main() {
14  testWidgets('fully deletes entries', (tester) async {
15    final entry = mockEntry(time: DateTime.now(), sys: 123, note: 'test', intake: mockIntake(mockMedicine()));
16
17    final BloodPressureRepository bpRepo = MockBloodPressureRepository() as BloodPressureRepository;
18    final NoteRepository noteRepo = MockNoteRepository() as NoteRepository;
19    final MedicineIntakeRepository intakeRepo = MockMedicineIntakeRepository() as MedicineIntakeRepository;
20    await bpRepo.add(entry.$1);
21    await noteRepo.add(entry.$2);
22    await intakeRepo.add(entry.$3.first);
23    
24    await tester.pumpWidget(materialApp(
25      settings: Settings(confirmDeletion: false),
26      MultiProvider(
27        providers: [
28          RepositoryProvider.value(value: bpRepo),
29          RepositoryProvider.value(value: noteRepo),
30          RepositoryProvider.value(value: intakeRepo),
31        ],
32        child: Builder(
33          builder: (context) => TextButton(
34            onPressed: () => context.deleteEntry(entry),
35            child: Text('X'),
36          ),
37        ),
38      ),
39    ));
40    
41    expect(await bpRepo.get(DateRange.all()), hasLength(1));
42    expect(await noteRepo.get(DateRange.all()), hasLength(1));
43    expect(await intakeRepo.get(DateRange.all()), hasLength(1));
44
45    await tester.tap(find.text('X'));
46    await tester.pumpAndSettle();
47
48    expect(await bpRepo.get(DateRange.all()), isEmpty);
49    expect(await noteRepo.get(DateRange.all()), isEmpty);
50    expect(await intakeRepo.get(DateRange.all()), isEmpty);
51  });
52}