Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions lib/db/record.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@ class Record {
DateTime date;
int systolic;
int diastolic;
int heartRate;
int pulse;

Record({this.id, required this.date, required this.systolic, required this.diastolic, required this.heartRate});
Record({this.id, required this.date, required this.systolic, required this.diastolic, required this.pulse});

Map<String, dynamic> toMap() {
return {
'id': id,
'date': date.millisecondsSinceEpoch,
'systolic': systolic,
'diastolic': diastolic,
'heartRate': heartRate,
'pulse': pulse,
};
}

Expand All @@ -23,12 +23,12 @@ class Record {
date: DateTime.fromMillisecondsSinceEpoch(map['date']),
systolic: map['systolic'],
diastolic: map['diastolic'],
heartRate: map['heartRate'],
pulse: map['pulse'],
);
}

@override
String toString() {
return 'Record{id: $id, date: $date, systolic: $systolic, diastolic: $diastolic, heartRate: $heartRate}';
return 'Record{id: $id, date: $date, systolic: $systolic, diastolic: $diastolic, pulse: $pulse}';
}
}
11 changes: 9 additions & 2 deletions lib/db/record_repository.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,19 @@ class RecordRepository {

return await openDatabase(
path!,
version: 1,
version: 2,
onCreate: (db, version) {
return db.execute(
'CREATE TABLE records(id INTEGER PRIMARY KEY, date INTEGER, systolic INTEGER, diastolic INTEGER, heartRate INTEGER)',
'CREATE TABLE records(id INTEGER PRIMARY KEY, date INTEGER, systolic INTEGER, diastolic INTEGER, pulse INTEGER)',
);
},
onUpgrade: (db, oldVersion, newVersion) => {
if (oldVersion < 2) {
db.execute(
'ALTER TABLE records RENAME COLUMN heartRate TO pulse',
)
}
},
);
}

Expand Down
4 changes: 2 additions & 2 deletions lib/record_input_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ class _RecordInputScreenState extends State<RecordInputScreen> {
),
systolic: _systolic!,
diastolic: _diastolic!,
heartRate: _pulse!,
pulse: _pulse!,
);
await recordRepository.insertRecord(record);

Expand Down Expand Up @@ -198,7 +198,7 @@ class _RecordInputScreenState extends State<RecordInputScreen> {
DateFormat('EEE, MMM d, y h:mm a').format(record.date),
),
subtitle: Text(
'Systolic: ${record.systolic}, Diastolic: ${record.diastolic}, Pulse: ${record.heartRate}',
'Systolic: ${record.systolic}, Diastolic: ${record.diastolic}, Pulse: ${record.pulse}',
),
);
}
Expand Down
2 changes: 1 addition & 1 deletion lib/widgets/records_line_chart.dart
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ class RecordsLineChart extends StatelessWidget {
final buffer = StringBuffer('');
buffer.write('\nSystolic: ${record.systolic}');
buffer.write('\nDiastolic: ${record.diastolic}');
buffer.write('\nPulse: ${record.heartRate}');
buffer.write('\nPulse: ${record.pulse}');
return buffer.toString();
}

Expand Down
2 changes: 1 addition & 1 deletion lib/widgets/records_table.dart
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class RecordsTable extends StatelessWidget {
),
DataCell(Text(record.systolic.toString())),
DataCell(Text(record.diastolic.toString())),
DataCell(Text(record.heartRate.toString())),
DataCell(Text(record.pulse.toString())),
],
),
)
Expand Down
28 changes: 14 additions & 14 deletions test/db/record_repository_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ void main() {
date: DateTime.now(),
systolic: 120,
diastolic: 80,
heartRate: 70,
pulse: 70,
);

await recordRepository!.insertRecord(record);
Expand All @@ -50,23 +50,23 @@ void main() {
expect(mostRecent, isNotNull);
expect(mostRecent!.systolic, 120);
expect(mostRecent.diastolic, 80);
expect(mostRecent.heartRate, 70);
expect(mostRecent.pulse, 70);
expect(mostRecent.id, isNotNull);

final List<Record> mostRecentRecords = await recordRepository!
.getMostRecentRecords(2);
expect(mostRecentRecords.length, 1);
expect(mostRecentRecords[0].systolic, 120);
expect(mostRecentRecords[0].diastolic, 80);
expect(mostRecentRecords[0].heartRate, 70);
expect(mostRecentRecords[0].pulse, 70);
expect(mostRecentRecords[0].id, isNotNull);

final List<Record> monthRecords = await recordRepository!
.getRecordsForMonth(record.date.year, record.date.month);
expect(monthRecords.length, 1);
expect(monthRecords[0].systolic, 120);
expect(monthRecords[0].diastolic, 80);
expect(monthRecords[0].heartRate, 70);
expect(monthRecords[0].pulse, 70);
});

test('insert and retrieve multiple records', () async {
Expand All @@ -79,29 +79,29 @@ void main() {
date: DateTime(2025, 12, 15, 11, 08),
systolic: 120,
diastolic: 80,
heartRate: 70,
pulse: 70,
);

Record record2 = Record(
date: DateTime(2025, 12, 14, 14, 30),
systolic: 130,
diastolic: 90,
heartRate: 80,
pulse: 80,
);

Record record3 = Record(
date: DateTime(2025, 12, 13, 10, 15),
systolic: 125,
diastolic: 85,
heartRate: 75,
pulse: 75,
);

// Different month than previous 3 records
Record record4 = Record(
date: DateTime(2025, 11, 13, 8, 02),
systolic: 125,
diastolic: 85,
heartRate: 75,
pulse: 75,
);

await recordRepository!.insertRecord(record1);
Expand All @@ -114,35 +114,35 @@ void main() {
expect(mostRecent, isNotNull);
expect(mostRecent!.systolic, record1.systolic);
expect(mostRecent.diastolic, record1.diastolic);
expect(mostRecent.heartRate, record1.heartRate);
expect(mostRecent.pulse, record1.pulse);
expect(mostRecent.id, isNotNull);

final List<Record> mostRecentRecords = await recordRepository!
.getMostRecentRecords(2);
expect(mostRecentRecords.length, 2);
expect(mostRecentRecords[0].systolic, record1.systolic);
expect(mostRecentRecords[0].diastolic, record1.diastolic);
expect(mostRecentRecords[0].heartRate, record1.heartRate);
expect(mostRecentRecords[0].pulse, record1.pulse);
expect(mostRecentRecords[0].id, isNotNull);

expect(mostRecentRecords[1].systolic, record2.systolic);
expect(mostRecentRecords[1].diastolic, record2.diastolic);
expect(mostRecentRecords[1].heartRate, record2.heartRate);
expect(mostRecentRecords[1].pulse, record2.pulse);
expect(mostRecentRecords[1].id, isNotNull);

final List<Record> monthRecords = await recordRepository!
.getRecordsForMonth(record1.date.year, record1.date.month);
expect(monthRecords.length, 3);
expect(monthRecords[0].systolic, record1.systolic);
expect(monthRecords[0].diastolic, record1.diastolic);
expect(monthRecords[0].heartRate, record1.heartRate);
expect(monthRecords[0].pulse, record1.pulse);

expect(monthRecords[1].systolic, record2.systolic);
expect(monthRecords[1].diastolic, record2.diastolic);
expect(monthRecords[1].heartRate, record2.heartRate);
expect(monthRecords[1].pulse, record2.pulse);

expect(monthRecords[2].systolic, record3.systolic);
expect(monthRecords[2].diastolic, record3.diastolic);
expect(monthRecords[2].heartRate, record3.heartRate);
expect(monthRecords[2].pulse, record3.pulse);
});
}
10 changes: 5 additions & 5 deletions test/db/record_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ void main() {
date: DateTime(2025, 1, 1),
systolic: 120,
diastolic: 80,
heartRate: 70,
pulse: 70,
);

final recordMap = record.toMap();
Expand All @@ -21,15 +21,15 @@ void main() {
);
expect(recordMap['systolic'], equals(120));
expect(recordMap['diastolic'], equals(80));
expect(recordMap['heartRate'], equals(70));
expect(recordMap['pulse'], equals(70));

final newRecord = r.Record.fromMap(recordMap);

expect(newRecord.id, equals(record.id));
expect(newRecord.date, equals(record.date));
expect(newRecord.systolic, equals(record.systolic));
expect(newRecord.diastolic, equals(record.diastolic));
expect(newRecord.heartRate, equals(record.heartRate));
expect(newRecord.pulse, equals(record.pulse));
});

test('toString', () {
Expand All @@ -38,14 +38,14 @@ void main() {
date: DateTime(2025, 2, 2),
systolic: 130,
diastolic: 85,
heartRate: 75,
pulse: 75,
);

final recordString = record.toString();
expect(
recordString,
equals(
'Record{id: 2, date: 2025-02-02 00:00:00.000, systolic: 130, diastolic: 85, heartRate: 75}',
'Record{id: 2, date: 2025-02-02 00:00:00.000, systolic: 130, diastolic: 85, pulse: 75}',
),
);
});
Expand Down
12 changes: 6 additions & 6 deletions test/widgets/records_line_chart_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ void main() {
date: DateTime(2025, 5, 15, 14, 30),
systolic: 120,
diastolic: 80,
heartRate: 70,
pulse: 70,
),
Record(
date: DateTime(2025, 5, 16, 9, 15),
systolic: 130,
diastolic: 85,
heartRate: 75,
pulse: 75,
),
];

Expand Down Expand Up @@ -51,13 +51,13 @@ void main() {
date: DateTime(2025, 5, 15, 14, 30),
systolic: 120,
diastolic: 80,
heartRate: 70,
pulse: 70,
),
Record(
date: DateTime(2025, 5, 16, 9, 15),
systolic: 130,
diastolic: 85,
heartRate: 75,
pulse: 75,
),
];
final recordsLineChart = RecordsLineChart(
Expand Down Expand Up @@ -85,13 +85,13 @@ void main() {
date: DateTime(2025, 5, 16, 14, 30),
systolic: 120,
diastolic: 80,
heartRate: 70,
pulse: 70,
),
Record(
date: DateTime(2025, 5, 16, 9, 15),
systolic: 130,
diastolic: 85,
heartRate: 75,
pulse: 75,
),
];
final recordsLineChart = RecordsLineChart(
Expand Down
8 changes: 4 additions & 4 deletions test/widgets/records_table_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ void main() {
date: DateTime(2025, 5, 15, 14, 30),
systolic: 120,
diastolic: 80,
heartRate: 70,
pulse: 70,
),
Record(
date: DateTime(2025, 5, 16, 9, 15),
systolic: 130,
diastolic: 85,
heartRate: 75,
pulse: 75,
),
];

Expand All @@ -46,7 +46,7 @@ void main() {
);
expect(find.text(records[0].systolic.toString()), findsOneWidget);
expect(find.text(records[0].diastolic.toString()), findsOneWidget);
expect(find.text(records[0].heartRate.toString()), findsOneWidget);
expect(find.text(records[0].pulse.toString()), findsOneWidget);

// Verify that the 2nd record is displayed
expect(
Expand All @@ -55,7 +55,7 @@ void main() {
);
expect(find.text(records[1].systolic.toString()), findsOneWidget);
expect(find.text(records[1].diastolic.toString()), findsOneWidget);
expect(find.text(records[1].heartRate.toString()), findsOneWidget);
expect(find.text(records[1].pulse.toString()), findsOneWidget);
});
});
}