45
crates/domain/tests/metric/metric_kind_test.rs
Normal file
45
crates/domain/tests/metric/metric_kind_test.rs
Normal file
@@ -0,0 +1,45 @@
|
||||
use domain::metric::MetricKind;
|
||||
|
||||
const EVERY_KIND: [MetricKind; 8] = [
|
||||
MetricKind::Steps,
|
||||
MetricKind::SleepMinutes,
|
||||
MetricKind::AwakeMinutes,
|
||||
MetricKind::RestingHeartRate,
|
||||
MetricKind::Hrv,
|
||||
MetricKind::ExerciseMinutes,
|
||||
MetricKind::ScreenTimeMinutes,
|
||||
MetricKind::AlcoholicDrinks,
|
||||
];
|
||||
|
||||
fn wire_name(kind: MetricKind) -> &'static str {
|
||||
match kind {
|
||||
MetricKind::Steps => "steps",
|
||||
MetricKind::SleepMinutes => "sleepMinutes",
|
||||
MetricKind::AwakeMinutes => "awakeMinutes",
|
||||
MetricKind::RestingHeartRate => "restingHeartRate",
|
||||
MetricKind::Hrv => "hrv",
|
||||
MetricKind::ExerciseMinutes => "exerciseMinutes",
|
||||
MetricKind::ScreenTimeMinutes => "screenTimeMinutes",
|
||||
MetricKind::AlcoholicDrinks => "alcoholicDrinks",
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn every_kind_keeps_the_name_clients_and_rows_already_use() {
|
||||
for kind in EVERY_KIND {
|
||||
assert_eq!(kind.name(), wire_name(kind));
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn every_name_resolves_back_to_its_kind() {
|
||||
for kind in EVERY_KIND {
|
||||
assert_eq!(MetricKind::from_name(kind.name()), Some(kind));
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_name_this_build_does_not_know_resolves_to_nothing() {
|
||||
assert_eq!(MetricKind::from_name("telepathy"), None);
|
||||
assert_eq!(MetricKind::from_name("caffeine"), None);
|
||||
}
|
||||
Reference in New Issue
Block a user