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}