Commit 9e19b57

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2024-06-14 15:28:07
implement utility entry
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent f0cc661
Changed files (3)
health_data_store
health_data_store/lib/src/types/full_entry.dart
@@ -0,0 +1,4 @@
+import 'package:health_data_store/health_data_store.dart';
+
+/// Entry that contains data of all supported types.
+typedef FullEntry = (BloodPressureRecord, Note, List<MedicineIntake>);
health_data_store/lib/health_data_store.dart
@@ -34,6 +34,7 @@ export 'src/repositories/repository.dart';
 // types
 export 'src/types/blood_pressure_record.dart';
 export 'src/types/date_range.dart';
+export 'src/types/full_entry.dart';
 export 'src/types/medicine.dart';
 export 'src/types/medicine_intake.dart';
 export 'src/types/note.dart';
health_data_store/test/src/types/full_entry_test.dart
@@ -0,0 +1,32 @@
+import 'package:health_data_store/src/types/full_entry.dart';
+import 'package:test/test.dart';
+
+import 'blood_pressure_record_test.dart';
+import 'medicine_intake_test.dart';
+import 'medicine_test.dart';
+import 'note_test.dart';
+
+void main() {
+  test('describes all types', () {
+    final record = mockRecord();
+    final note = mockNote();
+    final intake1 = mockIntake(mockMedicine());
+    final intake2 = mockIntake(mockMedicine());
+
+    final FullEntry entry = (record, note, [intake1, intake2]);
+
+    expect(entry.$1, record);
+    expect(entry.$2, note);
+    expect(entry.$3, containsAll([intake1, intake2]));
+  });
+  test('works without intake', () {
+    final record = mockRecord();
+    final note = mockNote();
+
+    final FullEntry entry = (record, note, []);
+
+    expect(entry.$1, record);
+    expect(entry.$2, note);
+    expect(entry.$3, isEmpty);
+  });
+}