From de7085249737f2d970b171fe080b4fad6a36d9f2 Mon Sep 17 00:00:00 2001 From: Will Bradley Date: Thu, 7 Nov 2024 09:17:43 -0700 Subject: [PATCH] Fix a test flake involving zeroed out group_intervals (#20328) Release Notes: - N/A --- crates/editor/src/editor_tests.rs | 8 ++++++-- crates/multi_buffer/src/multi_buffer.rs | 18 ++++++++++++++---- crates/text/src/tests.rs | 1 + crates/text/src/text.rs | 2 +- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/crates/editor/src/editor_tests.rs b/crates/editor/src/editor_tests.rs index 5c78567b57..020963c1c7 100644 --- a/crates/editor/src/editor_tests.rs +++ b/crates/editor/src/editor_tests.rs @@ -169,8 +169,12 @@ fn test_undo_redo_with_selection_restoration(cx: &mut TestAppContext) { init_test(cx, |_| {}); let mut now = Instant::now(); - let buffer = cx.new_model(|cx| language::Buffer::local("123456", cx)); - let group_interval = buffer.update(cx, |buffer, _| buffer.transaction_group_interval()); + let group_interval = Duration::from_millis(1); + let buffer = cx.new_model(|cx| { + let mut buf = language::Buffer::local("123456", cx); + buf.set_group_interval(group_interval); + buf + }); let buffer = cx.new_model(|cx| MultiBuffer::singleton(buffer, cx)); let editor = cx.add_window(|cx| build_editor(buffer.clone(), cx)); diff --git a/crates/multi_buffer/src/multi_buffer.rs b/crates/multi_buffer/src/multi_buffer.rs index 31a5b32300..b2e9826310 100644 --- a/crates/multi_buffer/src/multi_buffer.rs +++ b/crates/multi_buffer/src/multi_buffer.rs @@ -6482,11 +6482,21 @@ mod tests { fn test_history(cx: &mut AppContext) { let test_settings = SettingsStore::test(cx); cx.set_global(test_settings); - - let buffer_1 = cx.new_model(|cx| Buffer::local("1234", cx)); - let buffer_2 = cx.new_model(|cx| Buffer::local("5678", cx)); + let group_interval: Duration = Duration::from_millis(1); + let buffer_1 = cx.new_model(|cx| { + let mut buf = Buffer::local("1234", cx); + buf.set_group_interval(group_interval); + buf + }); + let buffer_2 = cx.new_model(|cx| { + let mut buf = Buffer::local("5678", cx); + buf.set_group_interval(group_interval); + buf + }); let multibuffer = cx.new_model(|_| MultiBuffer::new(Capability::ReadWrite)); - let group_interval = multibuffer.read(cx).history.group_interval; + multibuffer.update(cx, |this, _| { + this.history.group_interval = group_interval; + }); multibuffer.update(cx, |multibuffer, cx| { multibuffer.push_excerpts( buffer_1.clone(), diff --git a/crates/text/src/tests.rs b/crates/text/src/tests.rs index 8c5d7014ee..4debfa6292 100644 --- a/crates/text/src/tests.rs +++ b/crates/text/src/tests.rs @@ -608,6 +608,7 @@ fn test_history() { fn test_finalize_last_transaction() { let now = Instant::now(); let mut buffer = Buffer::new(0, BufferId::new(1).unwrap(), "123456".into()); + buffer.history.group_interval = Duration::from_millis(1); buffer.start_transaction_at(now); buffer.edit([(2..4, "cd")]); diff --git a/crates/text/src/text.rs b/crates/text/src/text.rs index 1d214fe0e1..b037327f7e 100644 --- a/crates/text/src/text.rs +++ b/crates/text/src/text.rs @@ -227,7 +227,7 @@ impl History { if let Some(mut entry) = entries.next_back() { while let Some(prev_entry) = entries.next_back() { if !prev_entry.suppress_grouping - && entry.first_edit_at - prev_entry.last_edit_at <= self.group_interval + && entry.first_edit_at - prev_entry.last_edit_at < self.group_interval { entry = prev_entry; count += 1;