Panics · P11 Motion: a buffer behind the value draws none
This commit is contained in:
1 parent
4c86e831bb
commit
c9f492d0b4
3 files changed
+11
-14
No files matched your search
@@ -75,14 +75,10 @@ impl ProgressBar {
|
||||
}
|
||||
}
|
||||
|
||||
/// What has loaded ahead of the value, drawn fainter.
|
||||
/// What has loaded ahead of the value, drawn fainter; none when it lies behind, as after a seek.
|
||||
pub fn buffer(mut self, buffer: f32) -> Self {
|
||||
let value = self.value.expect("an indeterminate bar has no buffer");
|
||||
assert!(
|
||||
checked(buffer, "buffer") >= value,
|
||||
"buffer {buffer} is behind {value}"
|
||||
);
|
||||
self.buffer = Some(buffer);
|
||||
self.buffer = (checked(buffer, "buffer") > value).then_some(buffer);
|
||||
self
|
||||
}
|
||||
|
||||
@@ -287,11 +283,17 @@ impl RenderOnce for ProgressRing {
|
||||
mod tests {
|
||||
use gpui::div;
|
||||
|
||||
use super::ProgressRing;
|
||||
use super::{ProgressBar, ProgressRing};
|
||||
|
||||
#[test]
|
||||
#[should_panic(expected = "a percent or content inside, not both")]
|
||||
fn a_ring_holds_a_percent_or_content_not_both() {
|
||||
let _ = ProgressRing::new("ring", 0.5).inside(div()).percent();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn a_buffer_ahead_shows_and_one_behind_does_not() {
|
||||
assert_eq!(ProgressBar::new("bar", 0.4).buffer(0.7).buffer, Some(0.7));
|
||||
assert_eq!(ProgressBar::new("bar", 0.6).buffer(0.4).buffer, None);
|
||||
}
|
||||
}
|
||||
@@ -98,12 +98,6 @@ fn a_lazy_row_builds_once_it_scrolls_into_view(cx: &mut TestAppContext) {
|
||||
assert!(built.get() >= 1, "the row was built");
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[should_panic(expected = "is behind")]
|
||||
fn a_buffer_behind_the_value_is_refused() {
|
||||
let _ = ProgressBar::new("bar", 0.6).buffer(0.4);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[should_panic(expected = "not 0..=1")]
|
||||
fn a_value_past_whole_is_refused() {
|
||||
|
||||
Reference in new issue
Block a user